aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.appveyor/build.ps110
-rw-r--r--.appveyor/test.ps1144
-rw-r--r--appveyor.yml2
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: