Commit 6def9cee00

Alex Rønne Petersen <alex@alexrp.com>
2024-08-02 00:54:05
ci: Add stage3/4 diff to (aarch64,x86_64)-windows-release scripts.
1 parent 624fa85
ci/aarch64-windows.ps1
@@ -69,3 +69,22 @@ Write-Output "Main test suite..."
   -Dskip-non-native `
   -Denable-symlinks-windows
 CheckLastExitCode
+
+# Ensure that stage3 and stage4 are byte-for-byte identical.
+Write-Output "Build and compare stage4..."
+& "stage3-release\bin\zig.exe" build `
+  --prefix stage4-release `
+  -Denable-llvm `
+  -Dno-lib `
+  -Doptimize=ReleaseFast `
+  -Dstrip `
+  -Dtarget="$TARGET" `
+  -Duse-zig-libcxx `
+  -Dversion-string="$(stage3-release\bin\zig version)"
+CheckLastExitCode
+
+# Compare-Object returns an error code if the files differ.
+Write-Output "If the following command fails, it means nondeterminism has been"
+Write-Output "introduced, making stage3 and stage4 no longer byte-for-byte identical."
+Compare-Object (Get-Content stage3-release\bin\zig.exe) (Get-Content stage4-release\bin\zig.exe)
+CheckLastExitCode
ci/x86_64-windows-release.ps1
@@ -70,6 +70,25 @@ Write-Output "Main test suite..."
   -Denable-symlinks-windows
 CheckLastExitCode
 
+# Ensure that stage3 and stage4 are byte-for-byte identical.
+Write-Output "Build and compare stage4..."
+& "stage3-release\bin\zig.exe" build `
+  --prefix stage4-release `
+  -Denable-llvm `
+  -Dno-lib `
+  -Doptimize=ReleaseFast `
+  -Dstrip `
+  -Dtarget="$TARGET" `
+  -Duse-zig-libcxx `
+  -Dversion-string="$(stage3-release\bin\zig version)"
+CheckLastExitCode
+
+# Compare-Object returns an error code if the files differ.
+Write-Output "If the following command fails, it means nondeterminism has been"
+Write-Output "introduced, making stage3 and stage4 no longer byte-for-byte identical."
+Compare-Object (Get-Content stage3-release\bin\zig.exe) (Get-Content stage4-release\bin\zig.exe)
+CheckLastExitCode
+
 Write-Output "Build x86_64-windows-msvc behavior tests using the C backend..."
 & "stage3-release\bin\zig.exe" test `
   ..\test\behavior.zig `