45 lines
3.6 KiB
PowerShell
45 lines
3.6 KiB
PowerShell
$ErrorActionPreference = 'Stop'
|
|||
|
|
$projectRoot = Split-Path -Parent $PSScriptRoot
|
||
|
|
Set-Location -LiteralPath $projectRoot
|
||
|
|
$enginePath = Join-Path $projectRoot 'tools/godot/Godot_v4.5-stable_win64_console.exe'
|
||
|
|
if (!(Test-Path -LiteralPath $enginePath)) { throw 'Godot fehlt. Bitte tools/godot bereitstellen oder enginePath anpassen.' }
|
||
|
|
& $enginePath --headless --path . --log-file ./tests/integration.log --script tests/integration.gd
|
||
|
|
if ($LASTEXITCODE -ne 0) { throw 'Integrationstests fehlgeschlagen.' }
|
||
|
|
& $enginePath --headless --path . --log-file ./tests/killcam.log --script tests/killcam.gd
|
||
|
|
if ($LASTEXITCODE -ne 0) { throw 'Killcam-Tests fehlgeschlagen.' }
|
||
|
|
& $enginePath --headless --path . --log-file ./tests/redesign.log --script tests/redesign.gd
|
||
|
|
if ($LASTEXITCODE -ne 0) { throw 'Waffen- oder Bot-Schwierigkeitstest fehlgeschlagen.' }
|
||
|
|
& $enginePath --headless --path . --log-file ./tests/graphics.log --script tests/graphics.gd
|
||
|
|
if ($LASTEXITCODE -ne 0) { throw 'Grafik-Ressourcenprüfung fehlgeschlagen.' }
|
||
|
|
& $enginePath --headless --path . --log-file ./tests/operator-metrics.log --script tests/operator_metrics.gd
|
||
|
|
if ($LASTEXITCODE -ne 0) { throw 'Operator-Modellprüfung fehlgeschlagen.' }
|
||
|
|
& $enginePath --headless --path . --log-file ./tests/expansion.log --script tests/expansion.gd
|
||
|
|
if ($LASTEXITCODE -ne 0) { throw 'Etagen- oder Kartenerweiterungstest fehlgeschlagen.' }
|
||
|
|
& $enginePath --headless --path . --log-file ./tests/features.log --script tests/features.gd
|
||
|
|
if ($LASTEXITCODE -ne 0) { throw 'Neue Gameplay-Funktionen fehlgeschlagen.' }
|
||
|
|
& $enginePath --headless --path . --log-file ./tests/fps.log --script tests/fps.gd
|
||
|
|
if ($LASTEXITCODE -ne 0) { throw "FPS feature tests failed." }
|
||
|
|
& $enginePath --headless --path . --log-file ./tests/handling.log --script tests/handling.gd
|
||
|
|
if ($LASTEXITCODE -ne 0) { throw "Weapon handling tests failed." }
|
||
|
|
& $enginePath --headless --path . --log-file ./tests/war-district.log --script tests/war_district.gd
|
||
|
|
if ($LASTEXITCODE -ne 0) { throw "War district tests failed." }
|
||
|
|
foreach ($suite in @('classes', 'arsenal_shield', 'skins', 'killstreaks', 'ttk_muzzle', 'readability')) {
|
||
|
|
& $enginePath --headless --path . --log-file "./tests/$suite.log" --script "tests/$suite.gd"
|
||
|
|
if ($LASTEXITCODE -ne 0) { throw "$suite failed." }
|
||
|
|
if (Select-String -Path "tests/$suite.log" -Pattern 'SCRIPT ERROR|FAIL ') { throw "$suite runtime error." }
|
||
|
|
}
|
||
|
|
& ./tests/Run-ClassNetwork.ps1
|
||
|
|
& ./tests/Run-StreakNetwork.ps1
|
||
|
|
& ./tests/Run-FpsNetwork.ps1
|
||
|
|
& ./tests/Run-RopeNetwork.ps1
|
||
|
|
$hostProcess = Start-Process -FilePath $enginePath -ArgumentList '--headless --path . --log-file ./tests/network-host.log --script tests/network_peer.gd -- --server --killcam' -WindowStyle Hidden -PassThru
|
||
|
|
Start-Sleep -Milliseconds 900
|
||
|
|
$clientProcess = Start-Process -FilePath $enginePath -ArgumentList '--headless --path . --log-file ./tests/network-client.log --script tests/network_peer.gd -- --killcam' -WindowStyle Hidden -PassThru
|
||
|
|
$clientProcess.WaitForExit()
|
||
|
|
$hostProcess.WaitForExit()
|
||
|
|
Get-Content -LiteralPath tests/network-host.log,tests/network-client.log | Select-String 'NETWORK|JOIN|WARNING|FAIL' | Select-Object -First 20
|
||
|
|
if ($hostProcess.ExitCode -ne 0 -or $clientProcess.ExitCode -ne 0) { throw 'Netzwerktest fehlgeschlagen.' }
|
||
|
|
$scriptErrors = Select-String -Path tests/integration.log,tests/killcam.log,tests/redesign.log,tests/graphics.log,tests/operator-metrics.log,tests/expansion.log,tests/features.log,tests/fps.log,tests/handling.log,tests/war-district.log,tests/network-host.log,tests/network-client.log -Pattern 'SCRIPT ERROR|FAIL '
|
||
|
|
if ($scriptErrors) { throw 'Godot meldet Laufzeitfehler.' }
|
||
|
|
Write-Output 'Integration und Zwei-Prozess-Netzwerktest bestanden.'
|