diff options
-rw-r--r-- | .appveyor/build.ps1 | 10 | ||||
-rw-r--r-- | .appveyor/test.ps1 | 144 | ||||
-rw-r--r-- | appveyor.yml | 2 |
3 files changed, 27 insertions, 129 deletions
diff --git a/.appveyor/build.ps1 b/.appveyor/build.ps1 index 40233af..432bca3 100644 --- a/.appveyor/build.ps1 +++ b/.appveyor/build.ps1 @@ -1,4 +1,6 @@ param( + [Parameter(Mandatory=$true)] + [string] $InstallDir = $null, [string] $ProjectDir = $null, [string] $Platform = $null, [string] $Configuration = $null, @@ -78,6 +80,8 @@ function Build-Driver { [Parameter(Mandatory=$true)] [string] $ProjectDir, [Parameter(Mandatory=$true)] + [string] $InstallDir, + [Parameter(Mandatory=$true)] [string] $DriverSpec, [Parameter(Mandatory=$true)] [string] $Platform, @@ -91,7 +95,7 @@ function Build-Driver { $solution_path = Get-DriverSolutionPath -ProjectDir $ProjectDir -DriverSpec $DriverSpec $Configuration = Get-DriverConfiguration -Configuration $Configuration -DriverTargetOS $DriverTargetOS - $msbuild_params = "/p:Platform=$Platform;Configuration=$Configuration;SignMode=TestSign" + $msbuild_params = "/p:Platform=$Platform;Configuration=$Configuration;SignMode=TestSign;OutDir=$InstallDir\lib" cd $build_dir Invoke-Exe { msbuild.exe $msbuild_params $solution_path } @@ -102,6 +106,8 @@ function Build-ProjectKernelMode { [Parameter(Mandatory=$true)] [string] $ProjectDir, [Parameter(Mandatory=$true)] + [string] $InstallDir, + [Parameter(Mandatory=$true)] [string] $Platform, [Parameter(Mandatory=$true)] [string] $Configuration, @@ -114,6 +120,7 @@ function Build-ProjectKernelMode { foreach ($driver in $drivers) { Build-Driver ` -ProjectDir $ProjectDir ` + -InstallDir $InstallDir ` -DriverSpec $driver ` -Platform $Platform ` -Configuration $Configuration ` @@ -130,6 +137,7 @@ function Build-ProjectAppVeyor { try { Build-ProjectKernelMode ` -ProjectDir $script:ProjectDir ` + -InstallDir $script:InstallDir ` -Platform $script:Platform ` -Configuration $script:Configuration ` -DriverTargetOS $script:DriverTargetOS diff --git a/.appveyor/test.ps1 b/.appveyor/test.ps1 index ece8dbe..c17e99e 100644 --- a/.appveyor/test.ps1 +++ b/.appveyor/test.ps1 @@ -1,10 +1,6 @@ param( [Parameter(Mandatory=$true)] - [string] $InstallDir = $null, - [string] $ProjectDir = $null, - [string] $Configuration = $null, - [string] $Platform = $null, - [string] $DriverTargetOS = $null + [string] $InstallDir = $null ) $ErrorActionPreference = "Stop"; @@ -34,117 +30,28 @@ function Test-AppVeyor { return Test-Path env:APPVEYOR } -function Set-AppVeyorDefaults { - $script:ProjectDir = $env:APPVEYOR_BUILD_FOLDER - $script:Platform = $env:PLATFORM - $script:Configuration = $env:CONFIGURATION - $script:DriverTargetOS = $env:appveyor_driver_target_os -} - -function Get-DriverName { - param( - [Parameter(Mandatory=$true)] - [string] $DriverSpec - ) - - return Split-Path -Path $DriverSpec -Leaf -} - -function Get-DriverBinDir { - param( - [Parameter(Mandatory=$true)] - [string] $ProjectDir, - [Parameter(Mandatory=$true)] - [string] $DriverSpec, - [Parameter(Mandatory=$true)] - [string] $Platform, - [Parameter(Mandatory=$true)] - [string] $Configuration, - [Parameter(Mandatory=$true)] - [string] $DriverTargetOS - ) - - $Platform = switch ($Platform) { - 'Win32' { 'x86' } - 'x64' { 'x64' } - default { throw "Unsupported platform: $Platform" } - } - - $DriverTargetOS = switch ($DriverTargetOS) { - 'Win7' { 'Windows7' } - 'Win8' { 'Windows8' } - 'Win8.1' { 'WindowsV6.3' } - default { throw "Unsupported target OS: $DriverTargetOS" } - } - - $driver_name = Get-DriverName -DriverSpec $DriverSpec - - return "$ProjectDir\km\build\wdk8.1update\$DriverSpec\bin\$DriverTargetOS\$Platform\$Configuration" -} - -function Get-DriverSysPath { - param( - [Parameter(Mandatory=$true)] - [string] $ProjectDir, - [Parameter(Mandatory=$true)] - [string] $DriverSpec, - [Parameter(Mandatory=$true)] - [string] $Platform, - [Parameter(Mandatory=$true)] - [string] $Configuration, - [Parameter(Mandatory=$true)] - [string] $DriverTargetOS - ) - - $bin_dir = Get-DriverBinDir ` - -ProjectDir $ProjectDir ` - -DriverSpec $DriverSpec ` - -Platform $Platform ` - -Configuration $Configuration ` - -DriverTargetOS $DriverTargetOS - $driver_name = Get-DriverName -DriverSpec $DriverSpec - - return "$bin_dir\$driver_name.vs12.sys" -} - function Start-Driver { param( [Parameter(Mandatory=$true)] - [string] $ProjectDir, - [Parameter(Mandatory=$true)] - [string] $DriverSpec, - [Parameter(Mandatory=$true)] - [string] $Platform, - [Parameter(Mandatory=$true)] - [string] $Configuration, + [string] $InstallDir, [Parameter(Mandatory=$true)] - [string] $DriverTargetOS + [string] $DriverName ) - $service_name = Get-DriverName -DriverSpec $DriverSpec - $sys_path = Get-DriverSysPath ` - -ProjectDir $ProjectDir ` - -DriverSpec $DriverSpec ` - -Platform $Platform ` - -Configuration $Configuration ` - -DriverTargetOS $DriverTargetOS - - Write-Host "Starting driver $service_name..." - Invoke-Exe { install_service.exe $service_name $sys_path } - Invoke-Exe { start_service.exe $service_name } + Write-Host "Starting driver $DriverName..." + Invoke-Exe { install_service.exe $DriverName "$InstallDir\lib\$DriverName.vs12.sys" } + Invoke-Exe { start_service.exe $DriverName } } function Stop-Driver { param( [Parameter(Mandatory=$true)] - [string] $DriverSpec + [string] $DriverName ) - $service_name = Get-DriverName -DriverSpec $DriverSpec - - Write-Host "Stopping driver $service_name..." - Invoke-Exe { stop_service.exe $service_name } - Invoke-Exe { uninstall_service.exe $service_name } + Write-Host "Stopping driver $DriverName..." + Invoke-Exe { stop_service.exe $DriverName } + Invoke-Exe { uninstall_service.exe $DriverName } } function Exchange-Ints { @@ -175,51 +82,34 @@ function Verify-ExchangeInts { function Run-ProjectTests { param( [Parameter(Mandatory=$true)] - [string] $ProjectDir, - [Parameter(Mandatory=$true)] - [string] $InstallDir, - [Parameter(Mandatory=$true)] - [string] $Platform, - [Parameter(Mandatory=$true)] - [string] $Configuration, - [Parameter(Mandatory=$true)] - [string] $DriverTargetOS + [string] $InstallDir ) $env:PATH = "$InstallDir\bin;${env:PATH}" - $drivers = 'minimal', 'simple', 'special\nt_namespace' + $drivers = 'minimal', 'simple', 'nt_namespace' foreach ($driver in $drivers) { - Start-Driver ` - -ProjectDir $ProjectDir ` - -DriverSpec $driver ` - -Platform $Platform ` - -Configuration $Configuration ` - -DriverTargetOS $DriverTargetOS + Start-Driver ` + -InstallDir $InstallDir ` + -DriverName $driver } Verify-ExchangeInts -NewInt 69 -OldInt 42 Verify-ExchangeInts -NewInt 100500 -OldInt 69 foreach ($driver in $drivers) { - Stop-Driver -DriverSpec $driver + Stop-Driver -DriverName $driver } } function Run-ProjectTestsAppVeyor { if (Test-AppVeyor) { - Set-AppVeyorDefaults $appveyor_cwd = pwd } try { - Run-ProjectTests ` - -ProjectDir $script:ProjectDir ` - -InstallDir $script:InstallDir ` - -Platform $script:Platform ` - -Configuration $script:Configuration ` - -DriverTargetOS $script:DriverTargetOS + Run-ProjectTests -InstallDir $script:InstallDir } finally { if (Test-AppVeyor) { cd $appveyor_cwd diff --git a/appveyor.yml b/appveyor.yml index f3c3b1e..204f9b6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -30,7 +30,7 @@ install: build_script: - '"%python_exe%" um/cmake/ci/build_appveyor.py --install "%install_dir%"' - - ps: .\.appveyor\build.ps1 + - ps: .\.appveyor\build.ps1 -InstallDir $env:install_dir for: # Only build Release builds for master to speed things up: |