From 2d1edbc9ad32681ee0cd3f696cdb095df4c33d5f Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sun, 8 Dec 2019 06:37:25 +0300 Subject: add AppVeyor config --- .appveyor/test.ps1 | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .appveyor/test.ps1 (limited to '.appveyor/test.ps1') diff --git a/.appveyor/test.ps1 b/.appveyor/test.ps1 new file mode 100644 index 0000000..7701645 --- /dev/null +++ b/.appveyor/test.ps1 @@ -0,0 +1,73 @@ +param( + [string] $BuildDir = $null, + [string] $Platform = $null +) + +$ErrorActionPreference = "Stop"; +Set-PSDebug -Strict + +function Invoke-Exe { + param( + [ScriptBlock] $Cmd, + [int[]] $AllowedExitCodes = @(0) + ) + + $backupErrorActionPreference = $script:ErrorActionPreference + $script:ErrorActionPreference = 'Continue' + + try { + & $Cmd + if ($AllowedExitCodes -notcontains $LastExitCode) { + throw "External command failed with exit code ${LastExitCode}: $Cmd" + } + } finally { + $script:ErrorActionPreference = $backupErrorActionPreference + } +} + +function Test-AppVeyor { + return Test-Path env:APPVEYOR +} + +function Get-AppVeyorBuildDir { + return 'C:\Projects\build' +} + +function Set-AppVeyorDefaults { + $script:BuildDir = Get-AppVeyorBuildDir + $script:Configuration = $env:CONFIGURATION +} + +function Run-ProjectTests { + param( + [Parameter(Mandatory=$true)] + [string] $BuildDir, + [Parameter(Mandatory=$true)] + [string] $Configuration + ) + + $unit_tests_dir = "$BuildDir\test\unit_tests\$Configuration" + cd $unit_tests_dir + + Invoke-Exe { .\unit_tests.exe --log_level=all } +} + +function Run-ProjectTestsAppVeyor { + if (Test-AppVeyor) { + Set-AppVeyorDefaults + $appveyor_cwd = pwd + } + + try { + Run-ProjectTests ` + -BuildDir $script:BuildDir ` + -Configuration $script:Configuration + } finally { + if (Test-AppVeyor) { + cd $appveyor_cwd + Set-PSDebug -Off + } + } +} + +Run-ProjectTestsAppVeyor -- cgit v1.2.3