summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2018-09-17 19:57:26 -0700
committerPatrick Steinhardt <ps@pks.im>2018-10-19 13:48:54 +0200
commitf19a9870356005379c9db945c904b6a52f0cae3a (patch)
treeb94f1e8156d9d0862de1716239928609b8a5fe16
parente12ecd032bffe385862a4e6412395099513ceaee (diff)
downloadlibgit2-f19a9870356005379c9db945c904b6a52f0cae3a.tar.gz
ci: append -r flag to clar on windows
Similar to the way we parse the ctest output on POSIX systems, do the same on Windows. This allows us to append the `-r` flag to clar after we've identified the command to run. (cherry picked from commit 7c9769d94799c7bc6341d64e18bbd13bc8993ad6)
-rw-r--r--ci/test.ps131
1 files changed, 24 insertions, 7 deletions
diff --git a/ci/test.ps1 b/ci/test.ps1
index 89301d45a..5f75c0b62 100644
--- a/ci/test.ps1
+++ b/ci/test.ps1
@@ -5,8 +5,28 @@ $PSDefaultParameterValues['*:ErrorAction'] = 'Stop'
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
+$SourceDir = Split-Path (Split-Path (Get-Variable MyInvocation).Value.MyCommand.Path)
+$BuildDir = Get-Location
+
if ($Env:SKIP_TESTS) { exit }
+# Ask ctest what it would run if we were to invoke it directly. This lets
+# us manage the test configuration in a single place (tests/CMakeLists.txt)
+# instead of running clar here as well. But it allows us to wrap our test
+# harness with a leak checker like valgrind. Append the option to write
+# JUnit-style XML files.
+function run_test {
+ $TestName = $args[0]
+
+ $TestCommand = (ctest -N -V -R "^$TestName$") -join "`n" -replace "(?ms).*\n^[0-9]*: Test command: ","" -replace "\n.*",""
+ $TestCommand += " -r${BuildDir}\results_${TestName}.xml"
+
+ Write-Host $TestCommand
+ Invoke-Expression $TestCommand
+
+ if ($LastExitCode -ne 0) { [Environment]::Exit($LastExitCode) }
+}
+
Write-Host "##############################################################################"
Write-Host "## Configuring test environment"
Write-Host "##############################################################################"
@@ -23,8 +43,7 @@ Write-Host "####################################################################
Write-Host "## Running (offline) tests"
Write-Host "##############################################################################"
-ctest -V -R offline
-if ($LastExitCode -ne 0) { [Environment]::Exit($LastExitCode) }
+run_test offline
if (-not $Env:SKIP_ONLINE_TESTS) {
Write-Host ""
@@ -32,8 +51,7 @@ if (-not $Env:SKIP_ONLINE_TESTS) {
Write-Host "## Running (online) tests"
Write-Host "##############################################################################"
- ctest -V -R online
- if ($LastExitCode -ne 0) { [Environment]::Exit($LastExitCode) }
+ run_test online
}
if (-not $Env:SKIP_PROXY_TESTS) {
@@ -44,9 +62,8 @@ if (-not $Env:SKIP_PROXY_TESTS) {
$Env:GITTEST_REMOTE_PROXY_URL="localhost:8080"
$Env:GITTEST_REMOTE_PROXY_USER="foo"
$Env:GITTEST_REMOTE_PROXY_PASS="bar"
- ctest -V -R proxy
- if ($LastExitCode -ne 0) { [Environment]::Exit($LastExitCode) }
+
+ run_test proxy
taskkill /F /IM javaw.exe
}
-