test(render): add connected package lifecycle gate
This commit is contained in:
parent
1f75ce0505
commit
f92479ac3e
4 changed files with 507 additions and 12 deletions
|
|
@ -10,6 +10,8 @@ public sealed class ConnectedRenderPackGateContractTests
|
|||
{
|
||||
private const string LifecycleScript = "run-connected-world-lifecycle-gate.ps1";
|
||||
private const string SoakScript = "run-connected-r6-soak.ps1";
|
||||
private const string PackageLifecycleScript =
|
||||
"run-connected-render-pack-package-lifecycle.ps1";
|
||||
|
||||
[Fact]
|
||||
public void ScreenshotJsonCarriesAuthoritativeCasterClassCounters()
|
||||
|
|
@ -125,7 +127,8 @@ foreach ($name in $script:ConnectedGateEnvironmentNames) {{
|
|||
}}
|
||||
[Environment]::SetEnvironmentVariable('ACDREAM_FUTURE_GATE_KNOB', 'sentinel-future', 'Process')
|
||||
$state = New-ConnectedRenderPackGateState -Root {rootQuoted} -Preset medium
|
||||
$sessionConfigPath = New-ConnectedGraphicalSessionConfig -State $state -Account 'fixture-account'
|
||||
$statusFile = Join-Path $state.StateDirectory 'status\fixture.jsonl'
|
||||
$sessionConfigPath = New-ConnectedGraphicalSessionConfig -State $state -Account 'fixture-account' -Plugins @('fixture.render') -StatusFile $statusFile
|
||||
$sessionConfig = Get-Content -Raw -LiteralPath $sessionConfigPath | ConvertFrom-Json
|
||||
$isolated=@($state.PreviousEnvironment.Keys | Where-Object {{
|
||||
$_ -notin @('ACDREAM_CONFIG_DIR', 'ACDREAM_DATA_DIR', 'ACDREAM_CACHE_DIR') -and
|
||||
|
|
@ -153,6 +156,8 @@ Remove-ConnectedGraphicalSessionConfig -State $state -Path $sessionConfigPath
|
|||
SessionCharacterIndex=$sessionConfig.sessions[0].character.index;
|
||||
SessionCredentialProvider=$sessionConfig.sessions[0].credential.provider;
|
||||
SessionCredentialReference=$sessionConfig.sessions[0].credential.reference;
|
||||
SessionPlugins=@($sessionConfig.sessions[0].plugins);
|
||||
SessionStatusFile=$sessionConfig.sessions[0].statusFile;
|
||||
Settings=(Get-Content -Raw -LiteralPath (Join-Path $state.ConfigDirectory 'settings.json') | ConvertFrom-Json).display.renderPack.presetId
|
||||
}} | ConvertTo-Json -Compress";
|
||||
using JsonDocument result = JsonDocument.Parse(RunPowerShell(command));
|
||||
|
|
@ -170,6 +175,13 @@ Remove-ConnectedGraphicalSessionConfig -State $state -Path $sessionConfigPath
|
|||
Assert.Equal(0, rootElement.GetProperty("SessionCharacterIndex").GetInt32());
|
||||
Assert.Equal("Environment", rootElement.GetProperty("SessionCredentialProvider").GetString());
|
||||
Assert.Equal("ACDREAM_TEST_PASS", rootElement.GetProperty("SessionCredentialReference").GetString());
|
||||
Assert.Equal(
|
||||
new[] { "fixture.render" },
|
||||
rootElement.GetProperty("SessionPlugins").EnumerateArray()
|
||||
.Select(static value => value.GetString()!).ToArray());
|
||||
Assert.Equal(
|
||||
Path.GetFullPath(Path.Combine(root, "isolated-state", "status", "fixture.jsonl")),
|
||||
rootElement.GetProperty("SessionStatusFile").GetString());
|
||||
Assert.Equal("medium", rootElement.GetProperty("Settings").GetString());
|
||||
}
|
||||
finally { Directory.Delete(root, recursive: true); }
|
||||
|
|
@ -192,6 +204,35 @@ Remove-ConnectedGraphicalSessionConfig -State $state -Path $sessionConfigPath
|
|||
Assert.Contains("reference = $CredentialEnvironmentVariable", common, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ConnectedPackageLifecycleRunsSixFreshGraphicalHostScenariosFailClosed()
|
||||
{
|
||||
string source = ReadTool(PackageLifecycleScript);
|
||||
Assert.Contains("Get-ConnectedGateBinaryIdentity", source, StringComparison.Ordinal);
|
||||
Assert.Contains("New-ConnectedRenderPackGateState -Root $root -Preset retail", source, StringComparison.Ordinal);
|
||||
Assert.Contains("-Plugins @($packageId)", source, StringComparison.Ordinal);
|
||||
Assert.Contains("-StatusFile $status", source, StringComparison.Ordinal);
|
||||
Assert.Contains("pluginLoaded", source, StringComparison.Ordinal);
|
||||
Assert.Contains("pluginFailed", source, StringComparison.Ordinal);
|
||||
Assert.Contains("'01-installed-v1-selected'", source, StringComparison.Ordinal);
|
||||
Assert.Contains("'02-updated-v2-stale-selection'", source, StringComparison.Ordinal);
|
||||
Assert.Contains("'03-updated-v2-selected'", source, StringComparison.Ordinal);
|
||||
Assert.Contains("'04-package-removed'", source, StringComparison.Ordinal);
|
||||
Assert.Contains("'05-registration-failed'", source, StringComparison.Ordinal);
|
||||
Assert.Contains("'06-corrected-and-recovered'", source, StringComparison.Ordinal);
|
||||
Assert.Contains("BinaryMatchesSource", source, StringComparison.Ordinal);
|
||||
Assert.Contains("TrackedSourceStatus", source, StringComparison.Ordinal);
|
||||
Assert.Contains("Restore-ConnectedRenderPackGateEnvironment", source, StringComparison.Ordinal);
|
||||
|
||||
string route = ReadTool("connected-render-pack-package-lifecycle.route.txt");
|
||||
AssertAppearsInOrder(
|
||||
route,
|
||||
"wait world-ready 90000",
|
||||
"wait world-visible 30000",
|
||||
"screenshot package-lifecycle 15000",
|
||||
"checkpoint package-lifecycle");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EveryConnectedScreenshotMustProveExactFailureFreeActivation()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue