From dfbea20d45c9e9e843ad7b4a3d13479dc38d3977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 25 Apr 2026 13:13:19 +0200 Subject: [PATCH 1/2] zig std: don't return an error exit code on --help --- lib/compiler/std-docs.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/compiler/std-docs.zig b/lib/compiler/std-docs.zig index e1ef5178a88450ffa6b6dc214eb820ace1b07931..213c0b826e2e6aeac2f2fcf4fcd6c032ed22a61d 100644 --- a/lib/compiler/std-docs.zig +++ b/lib/compiler/std-docs.zig @@ -18,7 +18,7 @@ fn usage(io: Io) noreturn { \\ By default, enabled unless a port is specified. \\ ) catch {}; - std.process.exit(1); + std.process.exit(0); } pub fn main(init: std.process.Init) !void { -- 2.54.0 From 8eafca4c9bbe38dc194b0cf02db96afcb7dd0494 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 25 Apr 2026 13:13:47 +0200 Subject: [PATCH 2/2] test: compile all JIT'd commands as part of test-cli --- ci/aarch64-macos-release.sh | 3 --- ci/x86_64-linux-release.sh | 3 --- ci/x86_64-windows-release.ps1 | 4 ---- test/tests.zig | 18 ++++++++++++++++++ 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/ci/aarch64-macos-release.sh b/ci/aarch64-macos-release.sh index dc9837012cf2d350da99f27722daaf7a2dd0d554..4a6353a2e038dcc820aa6ebad53a13e408d8fd8c 100755 --- a/ci/aarch64-macos-release.sh +++ b/ci/aarch64-macos-release.sh @@ -55,9 +55,6 @@ stage3-release/bin/zig build test docs \ stage3-release/bin/zig build test-std --fuzz=1K -Dno-lib -Dfuzz-only -Doptimize=ReleaseSafe stage3-release/bin/zig build test-std --fuzz=1K -Dno-lib -Dfuzz-only -Doptimize=Debug -# Ensure that reduce compiles -stage3-release/bin/zig reduce -h - # Ensure that stage3 and stage4 are byte-for-byte identical. stage3-release/bin/zig build \ --maxrss ${ZSF_MAX_RSS:-0} \ diff --git a/ci/x86_64-linux-release.sh b/ci/x86_64-linux-release.sh index c1ab202347c35fabc50ed32934d134123384bd47..c69231ea63e59c908ae5844985ab39eb8a64859c 100755 --- a/ci/x86_64-linux-release.sh +++ b/ci/x86_64-linux-release.sh @@ -77,9 +77,6 @@ stage3-release/bin/zig build test docs \ stage3-release/bin/zig build test-std --fuzz=1K -Dno-lib -Dfuzz-only -Doptimize=ReleaseSafe stage3-release/bin/zig build test-std --fuzz=1K -Dno-lib -Dfuzz-only -Doptimize=Debug -# Ensure that reduce compiles -stage3-release/bin/zig reduce -h - # Ensure that stage3 and stage4 are byte-for-byte identical. stage3-release/bin/zig build \ --prefix stage4-release \ diff --git a/ci/x86_64-windows-release.ps1 b/ci/x86_64-windows-release.ps1 index 181474a2902229ee67e6e6ba52da55162d11da3d..14d06818983be638497bc190e825fcb7734c8c92 100644 --- a/ci/x86_64-windows-release.ps1 +++ b/ci/x86_64-windows-release.ps1 @@ -61,10 +61,6 @@ CheckLastExitCode # stage3-release\bin\zig.exe build test-std --fuzz=1K -Dno-lib -Dfuzz-only -Doptimize=Debug # CheckLastExitCode -# Ensure that reduce compiles -stage3-release\bin\zig.exe build reduce -h -CheckLastExitCode - # Ensure that stage3 and stage4 are byte-for-byte identical. Write-Output "Build and compare stage4..." stage3-release\bin\zig.exe build ` diff --git a/test/tests.zig b/test/tests.zig index bdb3a782cad14aaeea44e770c277d05260f4dd92..28cb147cf88f9aca5951e1a86b6d363e2d26b27b 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -2237,6 +2237,24 @@ pub fn addCliTests(b: *std.Build) *Step { const step = b.step("test-cli", "Test the command line interface"); const s = std.fs.path.sep_str; + { + // Test that all JIT'd commands compile. + for (&[_][]const u8{ + "libc", + "objcopy", + "objdump", + "rc", + "reduce", + "std", + }) |cmd| { + const run_help = b.addSystemCommand(&.{ b.graph.zig_exe, cmd, "--help" }); + run_help.setName(b.fmt("zig {s} --help", .{cmd})); + run_help.expectStdErrEqual(""); + run_help.expectExitCode(0); + step.dependOn(&run_help.step); + } + } + { // Test `zig init`. const tmp_path = b.tmpPath(); -- 2.54.0