Blame ci/test.ps1

Packit Service 20376f
Set-StrictMode -Version Latest
Packit Service 20376f
Packit Service 20376f
$ErrorActionPreference = "Stop"
Packit Service 20376f
$PSDefaultParameterValues['*:ErrorAction'] = 'Stop'
Packit Service 20376f
Packit Service 20376f
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Packit Service 20376f
Packit Service 20376f
$SourceDir = Split-Path (Split-Path (Get-Variable MyInvocation).Value.MyCommand.Path)
Packit Service 20376f
$BuildDir = Get-Location
Packit Service 20376f
$global:Success = $true
Packit Service 20376f
Packit Service 20376f
if ($Env:SKIP_TESTS) { exit }
Packit Service 20376f
Packit Service 20376f
# Ask ctest what it would run if we were to invoke it directly.  This lets
Packit Service 20376f
# us manage the test configuration in a single place (tests/CMakeLists.txt)
Packit Service 20376f
# instead of running clar here as well.  But it allows us to wrap our test
Packit Service 20376f
# harness with a leak checker like valgrind.  Append the option to write
Packit Service 20376f
# JUnit-style XML files.
Packit Service 20376f
function run_test {
Packit Service 20376f
	$TestName = $args[0]
Packit Service 20376f
Packit Service 20376f
	$TestCommand = (ctest -N -V -R "^$TestName$") -join "`n" -replace "(?ms).*\n^[0-9]*: Test command: ","" -replace "\n.*",""
Packit Service 20376f
	$TestCommand += " -r${BuildDir}\results_${TestName}.xml"
Packit Service 20376f
Packit Service 20376f
	Write-Host $TestCommand
Packit Service 20376f
	Invoke-Expression $TestCommand
Packit Service 20376f
Packit Service 20376f
	if ($LastExitCode -ne 0) { $global:Success = $false }
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
Write-Host "##############################################################################"
Packit Service 20376f
Write-Host "## Configuring test environment"
Packit Service 20376f
Write-Host "##############################################################################"
Packit Service 20376f
Packit Service 20376f
if (-not $Env:SKIP_PROXY_TESTS) {
Packit Service 20376f
	Write-Host ""
Packit Service 20376f
	Write-Host "Starting HTTP proxy..."
Packit Service 20376f
	Invoke-WebRequest -Method GET -Uri https://github.com/ethomson/poxyproxy/releases/download/v0.1.0/poxyproxy-0.1.0.jar -OutFile poxyproxy.jar
Packit Service 20376f
	javaw -jar poxyproxy.jar -d --port 8080 --credentials foo:bar
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
Write-Host ""
Packit Service 20376f
Write-Host "##############################################################################"
Packit Service 20376f
Write-Host "## Running (offline) tests"
Packit Service 20376f
Write-Host "##############################################################################"
Packit Service 20376f
Packit Service 20376f
run_test offline
Packit Service 20376f
Packit Service 20376f
if (-not $Env:SKIP_ONLINE_TESTS) {
Packit Service 20376f
	Write-Host ""
Packit Service 20376f
	Write-Host "##############################################################################"
Packit Service 20376f
	Write-Host "## Running (online) tests"
Packit Service 20376f
	Write-Host "##############################################################################"
Packit Service 20376f
Packit Service 20376f
	run_test online
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
if (-not $Env:SKIP_PROXY_TESTS) {
Packit Service 20376f
	Write-Host ""
Packit Service 20376f
	Write-Host "Running proxy tests"
Packit Service 20376f
	Write-Host ""
Packit Service 20376f
Packit Service 20376f
	$Env:GITTEST_REMOTE_PROXY_URL="localhost:8080"
Packit Service 20376f
	$Env:GITTEST_REMOTE_PROXY_USER="foo"
Packit Service 20376f
	$Env:GITTEST_REMOTE_PROXY_PASS="bar"
Packit Service 20376f
Packit Service 20376f
	run_test proxy
Packit Service 20376f
Packit Service 20376f
	taskkill /F /IM javaw.exe
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
if (-Not $global:Success) { exit 1 }