зеркало из https://github.com/microsoft/msquic.git
199 строки
4.5 KiB
PowerShell
199 строки
4.5 KiB
PowerShell
<#
|
|
|
|
.SYNOPSIS
|
|
This script runs quicinterop locally.
|
|
|
|
.PARAMETER Config
|
|
Specifies the build configuration to use.
|
|
|
|
.PARAMETER Arch
|
|
The CPU architecture to use.
|
|
|
|
.PARAMETER Tls
|
|
The TLS library use.
|
|
|
|
.PARAMETER KeepOutputOnSuccess
|
|
Don't discard console output or logs on success.
|
|
|
|
.PARAMETER GenerateXmlResults
|
|
Generates an xml Test report for the run.
|
|
|
|
.PARAMETER Debugger
|
|
Attaches the debugger to the process.
|
|
|
|
.PARAMETER InitialBreak
|
|
Debugger starts broken into the process to allow setting breakpoints, etc.
|
|
|
|
.PARAMETER LogProfile
|
|
The name of the profile to use for log collection.
|
|
|
|
.PARAMETER Target
|
|
A target to connect to.
|
|
|
|
.PARAMETER Custom
|
|
A custom hostname to connect to.
|
|
|
|
.PARAMETER Port
|
|
A UDP port to connect to.
|
|
|
|
.PARAMETER Test
|
|
A particular test case to run.
|
|
|
|
.PARAMETER Version
|
|
The initial version to use for the connection.
|
|
|
|
.PARAMETER Serial
|
|
Runs the test cases serially.
|
|
|
|
.PARAMETER UrlPath
|
|
Path to resource on the server to download.
|
|
|
|
#>
|
|
|
|
param (
|
|
[Parameter(Mandatory = $false)]
|
|
[ValidateSet("Debug", "Release")]
|
|
[string]$Config = "Debug",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[ValidateSet("x86", "x64", "arm", "arm64")]
|
|
[string]$Arch = "x64",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[ValidateSet("schannel", "openssl", "openssl3")]
|
|
[string]$Tls = "",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[switch]$KeepOutputOnSuccess = $false,
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[switch]$GenerateXmlResults = $false,
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[switch]$Debugger = $false,
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[switch]$InitialBreak = $false,
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[ValidateSet("None", "Basic.Light", "Basic.Verbose", "Full.Light", "Full.Verbose", "SpinQuic.Light")]
|
|
[string]$LogProfile = "None",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[string]$Target = "",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[string]$Custom = "",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[string]$Port = "",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[string]$Test = "",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[string]$Version = "",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[switch]$Serial = $false,
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[string]$UrlPath = "",
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[switch]$AZP = $false,
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[switch]$GHA = $false
|
|
)
|
|
|
|
Set-StrictMode -Version 'Latest'
|
|
$PSDefaultParameterValues['*:ErrorAction'] = 'Stop'
|
|
|
|
# Default TLS based on current platform.
|
|
if ("" -eq $Tls) {
|
|
if ($IsWindows) {
|
|
$Tls = "schannel"
|
|
} else {
|
|
$Tls = "openssl"
|
|
}
|
|
}
|
|
|
|
# Root directory of the project.
|
|
$RootDir = Split-Path $PSScriptRoot -Parent
|
|
|
|
# Path to the run-executable Powershell script.
|
|
$RunExecutable = Join-Path $RootDir "scripts/run-executable.ps1"
|
|
|
|
# Path to the quicinterop exectuable.
|
|
$QuicInterop = $null
|
|
if ($IsWindows) {
|
|
$QuicInterop = Join-Path $RootDir "\artifacts\bin\windows\$($Arch)_$($Config)_$($Tls)\quicinterop.exe"
|
|
} elseif ($IsLinux) {
|
|
$QuicInterop = Join-Path $RootDir "/artifacts/bin/linux/$($Arch)_$($Config)_$($Tls)/quicinterop"
|
|
} elseif ($IsMacOS) {
|
|
$QuicInterop = Join-Path $RootDir "/artifacts/bin/macos/$($Arch)_$($Config)_$($Tls)/quicinterop"
|
|
} else {
|
|
Write-Error "Unsupported platform type!"
|
|
}
|
|
|
|
# Make sure the build is present.
|
|
if (!(Test-Path $QuicInterop)) {
|
|
Write-Error "Build does not exist!`n `nRun the following to generate it:`n `n $(Join-Path $RootDir "scripts" "build.ps1") -Config $Config -Arch $Arch -Tls $Tls`n"
|
|
}
|
|
|
|
# Build up all the arguments to pass to the Powershell script.
|
|
$Arguments = "-Path $($QuicInterop) -ShowOutput"
|
|
if ($KeepOutputOnSuccess) {
|
|
$Arguments += " -KeepOutputOnSuccess"
|
|
}
|
|
if ($GenerateXmlResults) {
|
|
$Arguments += " -GenerateXmlResults"
|
|
}
|
|
if ($Debugger) {
|
|
$Arguments += " -Debugger"
|
|
}
|
|
if ($InitialBreak) {
|
|
$Arguments += " -InitialBreak"
|
|
}
|
|
if ("None" -ne $LogProfile) {
|
|
$Arguments += " -LogProfile $($LogProfile)"
|
|
}
|
|
if ($AZP) {
|
|
$Arguments += " -AZP"
|
|
}
|
|
|
|
if ($GHA) {
|
|
$Arguments += " -GHA"
|
|
}
|
|
|
|
$ExtraArgs = ""
|
|
if ($Target -ne "") {
|
|
$ExtraArgs += " -target:$Target"
|
|
}
|
|
if ($Custom -ne "") {
|
|
$ExtraArgs += " -custom:$Custom"
|
|
}
|
|
if ($Port -ne "") {
|
|
$ExtraArgs += " -port:$Port"
|
|
}
|
|
if ($Test -ne "") {
|
|
$ExtraArgs += " -test:$Test"
|
|
}
|
|
if ($Version -ne "") {
|
|
$ExtraArgs += " -version:$Version"
|
|
}
|
|
if ($Serial) {
|
|
$ExtraArgs += " -serial"
|
|
}
|
|
if ($UrlPath -ne "") {
|
|
$ExtraArgs += " -urlpath:$UrlPath"
|
|
}
|
|
|
|
if ($ExtraArgs -ne "") {
|
|
$Arguments += " -Arguments `"$ExtraArgs`""
|
|
}
|
|
|
|
# Run the script.
|
|
Invoke-Expression ($RunExecutable + " " + $Arguments)
|