You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

28 lines
1.6 KiB

param([string]$BuildFolder = 'Release', [switch]$ProtocolOnly)
if ($PSVersionTable.PSEdition -ne 'Desktop') {
# DCT_test is a .NET Framework/WPF binary. PowerShell 7 cannot reference
# its mscorlib-based types from Add-Type, so transparently re-run this
# verifier in the inbox Windows PowerShell 5.1 host.
$legacyPowerShell = Join-Path $env:SystemRoot 'System32\WindowsPowerShell\v1.0\powershell.exe'
if (-not (Test-Path -LiteralPath $legacyPowerShell)) {
throw 'Windows PowerShell 5.1 is required to run Verify-Transport.ps1.'
}
$arguments = @('-NoProfile', '-ExecutionPolicy', 'Bypass', '-File', $PSCommandPath, '-BuildFolder', $BuildFolder)
if ($ProtocolOnly) { $arguments += '-ProtocolOnly' }
& $legacyPowerShell @arguments
exit $LASTEXITCODE
}
$ErrorActionPreference = 'Stop'
Add-Type -AssemblyName PresentationFramework
$transportAssembly = [IO.Path]::GetFullPath((Join-Path $PSScriptRoot "DCT_test/bin/$BuildFolder/DCT_test.exe"))
$transportLoaded = [Reflection.Assembly]::LoadFrom($transportAssembly)
# Add-Type resolves a full file path as an assembly *name* on Windows
# PowerShell and reports 0x80131047 for this legacy .NET Framework EXE.
# Reuse the already loaded assembly identity instead, along with the two
# framework references used by the helper source.
Add-Type -Path (Join-Path $PSScriptRoot 'Verify-Transport.cs') `
-ReferencedAssemblies @($transportLoaded.FullName, 'System.dll', 'System.Core.dll')
if ($ProtocolOnly) { [DCT_test.TransportRegression]::RunCurrentAppCompatibility() }
else { [DCT_test.TransportRegression]::Run() }