authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-09-17 11:15:24+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-09-18 12:42:24+02:00
log9095a7fefd306b7e443f1ca388b5ed049d81df7f
treead021c2c3d63a8d0b661c110974204ab5c539f82
parent4e9b8aec2cbaa9fba7b64b03e90d0426b09e1003
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

test: respect -Dskip-translate-c in test-standalone


7 files changed, 23 insertions(+), 2 deletions(-)

build.zig+1
......@@ -576,6 +576,7 @@ pub fn build(b: *std.Build) !void {
576576 enable_macos_sdk,
577577 enable_ios_sdk,
578578 enable_symlinks_windows,
579 skip_translate_c,
579580 ));
580581 test_step.dependOn(tests.addCAbiTests(b, .{
581582 .test_target_filters = test_target_filters,
test/standalone/build.zig+6-1
......@@ -9,6 +9,7 @@ pub fn build(b: *std.Build) void {
99 const enable_macos_sdk = b.option(bool, "enable_macos_sdk", "Run tests requiring presence of macOS SDK and frameworks") orelse enable_ios_sdk;
1010 const enable_symlinks_windows = b.option(bool, "enable_symlinks_windows", "Run tests requiring presence of symlinks on Windows") orelse false;
1111 const omit_symlinks = builtin.os.tag == .windows and !enable_symlinks_windows;
12 const skip_translate_c = b.option(bool, "skip_translate_c", "Test suite skips translate-c tests") orelse false;
1213
1314 const simple_skip_debug = b.option(bool, "simple_skip_debug", "Simple tests skip debug builds") orelse false;
1415 const simple_skip_release_safe = b.option(bool, "simple_skip_release_safe", "Simple tests skip release-safe builds") orelse false;
......@@ -20,6 +21,7 @@ pub fn build(b: *std.Build) void {
2021 .skip_release_safe = simple_skip_release_safe,
2122 .skip_release_fast = simple_skip_release_fast,
2223 .skip_release_small = simple_skip_release_small,
24 .skip_translate_c = skip_translate_c,
2325 });
2426 const simple_dep_step = simple_dep.builder.default_step;
2527 simple_dep_step.name = "standalone_test_cases.simple";
......@@ -97,9 +99,12 @@ pub fn build(b: *std.Build) void {
9799 pkg.build_zig.requires_macos_sdk;
98100 const requires_symlinks = @hasDecl(pkg.build_zig, "requires_symlinks") and
99101 pkg.build_zig.requires_symlinks;
102 const requires_translate_c = @hasDecl(pkg.build_zig, "requires_translate_c") and
103 pkg.build_zig.requires_translate_c;
100104 if ((requires_symlinks and omit_symlinks) or
101105 (requires_macos_sdk and !enable_macos_sdk) or
102 (requires_ios_sdk and !enable_ios_sdk))
106 (requires_ios_sdk and !enable_ios_sdk) or
107 (requires_translate_c and skip_translate_c))
103108 {
104109 continue :add_dep_steps;
105110 }
test/standalone/dep_lazypath/build.zig+2
......@@ -1,5 +1,7 @@
11const std = @import("std");
22
3pub const requires_translate_c = true;
4
35pub fn build(b: *std.Build) void {
46 const test_step = b.step("test", "Test it");
57 b.default_step = test_step;
test/standalone/glibc_compat/build.zig+2
......@@ -1,6 +1,8 @@
11const std = @import("std");
22const builtin = @import("builtin");
33
4pub const requires_translate_c = true;
5
46// To run executables linked against a specific glibc version, the
57// run-time glibc version needs to be new enough. Check the host's glibc
68// version. Note that this does not allow for translation/vm/emulation
test/standalone/issue_794/build.zig+2
......@@ -1,5 +1,7 @@
11const std = @import("std");
22
3pub const requires_translate_c = true;
4
35pub fn build(b: *std.Build) void {
46 const test_step = b.step("test", "Test it");
57 b.default_step = test_step;
test/standalone/simple/build.zig+8-1
......@@ -9,6 +9,7 @@ pub fn build(b: *std.Build) void {
99 const skip_release_safe = b.option(bool, "skip_release_safe", "Skip release-safe builds") orelse false;
1010 const skip_release_fast = b.option(bool, "skip_release_fast", "Skip release-fast builds") orelse false;
1111 const skip_release_small = b.option(bool, "skip_release_small", "Skip release-small builds") orelse false;
12 const skip_translate_c = b.option(bool, "skip_translate_c", "Test suite skips translate-c tests") orelse false;
1213
1314 var optimize_modes_buf: [4]std.builtin.OptimizeMode = undefined;
1415 var optimize_modes_len: usize = 0;
......@@ -36,6 +37,7 @@ pub fn build(b: *std.Build) void {
3637 if (case.os_filter) |os_tag| {
3738 if (os_tag != builtin.os.tag) continue;
3839 }
40 if (case.uses_translate_c and skip_translate_c) continue;
3941
4042 const resolved_target = b.resolveTargetQuery(case.target);
4143
......@@ -82,6 +84,7 @@ const Case = struct {
8284 is_exe: bool = true,
8385 /// Run only on this OS.
8486 os_filter: ?std.Target.Os.Tag = null,
87 uses_translate_c: bool = false,
8588};
8689
8790const cases = [_]Case{
......@@ -93,6 +96,7 @@ const cases = [_]Case{
9396 .src_path = "hello_world/hello_libc.zig",
9497 .link_libc = true,
9598 .all_modes = true,
99 .uses_translate_c = true,
96100 },
97101 .{
98102 .src_path = "cat/main.zig",
......@@ -108,7 +112,10 @@ const cases = [_]Case{
108112 .os_tag = .freestanding,
109113 },
110114 },
111 .{ .src_path = "issue_12471/main.zig" },
115 .{
116 .src_path = "issue_12471/main.zig",
117 .uses_translate_c = true,
118 },
112119 .{ .src_path = "guess_number/main.zig" },
113120 .{ .src_path = "main_return_error/error_u8.zig" },
114121 .{ .src_path = "main_return_error/error_u8_non_zero.zig" },
test/tests.zig+2
......@@ -1893,6 +1893,7 @@ pub fn addStandaloneTests(
18931893 enable_macos_sdk: bool,
18941894 enable_ios_sdk: bool,
18951895 enable_symlinks_windows: bool,
1896 skip_translate_c: bool,
18961897) *Step {
18971898 const step = b.step("test-standalone", "Run the standalone tests");
18981899 if (compilerHasPackageManager(b)) {
......@@ -1905,6 +1906,7 @@ pub fn addStandaloneTests(
19051906 .simple_skip_release_safe = mem.indexOfScalar(OptimizeMode, optimize_modes, .ReleaseSafe) == null,
19061907 .simple_skip_release_fast = mem.indexOfScalar(OptimizeMode, optimize_modes, .ReleaseFast) == null,
19071908 .simple_skip_release_small = mem.indexOfScalar(OptimizeMode, optimize_modes, .ReleaseSmall) == null,
1909 .skip_translate_c = skip_translate_c,
19081910 });
19091911 const test_cases_dep_step = test_cases_dep.builder.default_step;
19101912 test_cases_dep_step.name = b.dupe(test_cases_dep_name);