Add Final Android gate with fresh native thirty-stage progression
This commit is contained in:
@@ -81,6 +81,38 @@ try {
|
||||
Get-Content -LiteralPath $logPath | Select-Object -Last 5 | Write-Host
|
||||
if ($LASTEXITCODE -ne 0) { throw "Android smoke verification exited $LASTEXITCODE." }
|
||||
}
|
||||
# Edit/Play tests may strip this Editor-generated runtime list. Restore only that exact
|
||||
# transformation after proving every other serialized byte (apart from CRLF) is unchanged.
|
||||
if ($Phase -in @('EditMode','PlayMode') -and !$record.sourceDirty) {
|
||||
$record.testSourceDirtyBeforeNormalization = [bool](& git status --porcelain)
|
||||
$record.testGeneratedSettings = @()
|
||||
foreach ($settingsPath in @('Assets/Settings/UniversalRenderPipelineGlobalSettings.asset','ProjectSettings/EditorBuildSettings.asset','ProjectSettings/ProjectAuditorSettings.asset','ProjectSettings/ShaderGraphSettings.asset')) {
|
||||
$workingBlob = & git hash-object --path=$settingsPath -- $settingsPath
|
||||
$sourceBlob = & git rev-parse "HEAD:$settingsPath"
|
||||
$same = $workingBlob -eq $sourceBlob
|
||||
$runtimeListStripped = $false
|
||||
if (!$same -and $settingsPath -eq 'Assets/Settings/UniversalRenderPipelineGlobalSettings.asset') {
|
||||
$sourceText = ((& git show "HEAD:$settingsPath") -join "`n") + "`n"
|
||||
$workingText = (Get-Content -LiteralPath $settingsPath -Raw).Replace("`r`n","`n")
|
||||
$pattern = '(?m)^ m_RuntimeSettings:\n m_List:\n(?: - rid: \d+\n)+'
|
||||
$expected = [regex]::Replace($sourceText,$pattern," m_RuntimeSettings:`n m_List: []`n")
|
||||
$runtimeListStripped = $expected -ne $sourceText -and $expected -ceq $workingText
|
||||
if ($runtimeListStripped) { (& git diff -- $settingsPath) | Set-Content -LiteralPath (Join-Path $evidenceDir "$phaseName-generated-runtime-list.diff") -Encoding utf8 }
|
||||
}
|
||||
if ($same -or $runtimeListStripped) {
|
||||
if ([bool](& git status --porcelain -- $settingsPath)) {
|
||||
& git restore --source=HEAD --worktree -- $settingsPath
|
||||
if ($LASTEXITCODE -ne 0) { throw "Cannot normalize proven generated setting: $settingsPath" }
|
||||
}
|
||||
}
|
||||
$record.testGeneratedSettings += @{path=$settingsPath;workingBlob=$workingBlob;sourceBlob=$sourceBlob;identicalContent=$same;exactRuntimeListStripping=$runtimeListStripped}
|
||||
}
|
||||
}
|
||||
$record.sourceCommitEnd = (& git rev-parse HEAD)
|
||||
& git update-index --refresh | Out-Null
|
||||
$record.sourceDirtyEnd = [bool](& git status --porcelain)
|
||||
$record.trackedDiffEnd = @(& git diff --name-only HEAD)
|
||||
if ($record.sourceDirty -or $record.sourceDirtyEnd -or $record.sourceCommitEnd -ne $record.sourceCommit) { throw 'Source changed during verification or is dirty.' }
|
||||
$record.status = 'passed'
|
||||
} catch {
|
||||
$record.status = 'failed'
|
||||
|
||||
Reference in New Issue
Block a user