33 lines
1.6 KiB
PowerShell
33 lines
1.6 KiB
PowerShell
param(
|
|
[switch]$FixtureOnly,
|
|
[string]$FixturePath = (Join-Path $PSScriptRoot '..\ParkrobTrajplanner\PathSmoothing\Test\Fixtures\path-smoothing-fixtures.json'),
|
|
[string]$OutputDirectory = (Join-Path $PSScriptRoot '..\obj\path_smoothing_reports')
|
|
)
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
|
|
$clumsyPilotRoot = (Resolve-Path -LiteralPath (Join-Path $PSScriptRoot '..')).Path
|
|
$allowedRoot = [IO.Path]::GetFullPath((Join-Path $clumsyPilotRoot 'obj\path_smoothing_reports'))
|
|
$resolvedOutputDirectory = [IO.Path]::GetFullPath($OutputDirectory)
|
|
$allowedPrefix = $allowedRoot.TrimEnd([IO.Path]::DirectorySeparatorChar, [IO.Path]::AltDirectorySeparatorChar) + [IO.Path]::DirectorySeparatorChar
|
|
if ($resolvedOutputDirectory -ne $allowedRoot -and -not $resolvedOutputDirectory.StartsWith($allowedPrefix, [StringComparison]::OrdinalIgnoreCase)) {
|
|
throw "Report output must stay below $allowedRoot"
|
|
}
|
|
|
|
$projectPath = Join-Path $clumsyPilotRoot 'ClumsyPilot.csproj'
|
|
$hostProject = Join-Path $PSScriptRoot 'PathSmoothingPngVerificationHost\PathSmoothingPngVerificationHost.csproj'
|
|
$resolvedFixturePath = (Resolve-Path -LiteralPath $FixturePath).Path
|
|
|
|
& dotnet build $projectPath --no-restore
|
|
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
|
|
|
& dotnet run --project $hostProject --no-restore -- --export-fixtures $resolvedFixturePath $resolvedOutputDirectory
|
|
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
|
|
|
if (-not $FixtureOnly) {
|
|
& dotnet run --project $hostProject --no-restore -- --export-end-to-end $resolvedOutputDirectory
|
|
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
|
}
|
|
|
|
Write-Output "Path smoothing reports written below $resolvedOutputDirectory"
|