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 {...@@ -576,6 +576,7 @@ pub fn build(b: *std.Build) !void {
576 enable_macos_sdk,576 enable_macos_sdk,
577 enable_ios_sdk,577 enable_ios_sdk,
578 enable_symlinks_windows,578 enable_symlinks_windows,
579 skip_translate_c,
579 ));580 ));
580 test_step.dependOn(tests.addCAbiTests(b, .{581 test_step.dependOn(tests.addCAbiTests(b, .{
581 .test_target_filters = test_target_filters,582 .test_target_filters = test_target_filters,
test/standalone/build.zig+6-1
...@@ -9,6 +9,7 @@ pub fn build(b: *std.Build) void {...@@ -9,6 +9,7 @@ pub fn build(b: *std.Build) void {
9 const enable_macos_sdk = b.option(bool, "enable_macos_sdk", "Run tests requiring presence of macOS SDK and frameworks") orelse enable_ios_sdk;9 const enable_macos_sdk = b.option(bool, "enable_macos_sdk", "Run tests requiring presence of macOS SDK and frameworks") orelse enable_ios_sdk;
10 const enable_symlinks_windows = b.option(bool, "enable_symlinks_windows", "Run tests requiring presence of symlinks on Windows") orelse false;10 const enable_symlinks_windows = b.option(bool, "enable_symlinks_windows", "Run tests requiring presence of symlinks on Windows") orelse false;
11 const omit_symlinks = builtin.os.tag == .windows and !enable_symlinks_windows;11 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
13 const simple_skip_debug = b.option(bool, "simple_skip_debug", "Simple tests skip debug builds") orelse false;14 const simple_skip_debug = b.option(bool, "simple_skip_debug", "Simple tests skip debug builds") orelse false;
14 const simple_skip_release_safe = b.option(bool, "simple_skip_release_safe", "Simple tests skip release-safe builds") orelse false;15 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 {...@@ -20,6 +21,7 @@ pub fn build(b: *std.Build) void {
20 .skip_release_safe = simple_skip_release_safe,21 .skip_release_safe = simple_skip_release_safe,
21 .skip_release_fast = simple_skip_release_fast,22 .skip_release_fast = simple_skip_release_fast,
22 .skip_release_small = simple_skip_release_small,23 .skip_release_small = simple_skip_release_small,
24 .skip_translate_c = skip_translate_c,
23 });25 });
24 const simple_dep_step = simple_dep.builder.default_step;26 const simple_dep_step = simple_dep.builder.default_step;
25 simple_dep_step.name = "standalone_test_cases.simple";27 simple_dep_step.name = "standalone_test_cases.simple";
...@@ -97,9 +99,12 @@ pub fn build(b: *std.Build) void {...@@ -97,9 +99,12 @@ pub fn build(b: *std.Build) void {
97 pkg.build_zig.requires_macos_sdk;99 pkg.build_zig.requires_macos_sdk;
98 const requires_symlinks = @hasDecl(pkg.build_zig, "requires_symlinks") and100 const requires_symlinks = @hasDecl(pkg.build_zig, "requires_symlinks") and
99 pkg.build_zig.requires_symlinks;101 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;
100 if ((requires_symlinks and omit_symlinks) or104 if ((requires_symlinks and omit_symlinks) or
101 (requires_macos_sdk and !enable_macos_sdk) or105 (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))
103 {108 {
104 continue :add_dep_steps;109 continue :add_dep_steps;
105 }110 }
test/standalone/dep_lazypath/build.zig+2
...@@ -1,5 +1,7 @@...@@ -1,5 +1,7 @@
1const std = @import("std");1const std = @import("std");
22
3pub const requires_translate_c = true;
4
3pub fn build(b: *std.Build) void {5pub fn build(b: *std.Build) void {
4 const test_step = b.step("test", "Test it");6 const test_step = b.step("test", "Test it");
5 b.default_step = test_step;7 b.default_step = test_step;
test/standalone/glibc_compat/build.zig+2
...@@ -1,6 +1,8 @@...@@ -1,6 +1,8 @@
1const std = @import("std");1const std = @import("std");
2const builtin = @import("builtin");2const builtin = @import("builtin");
33
4pub const requires_translate_c = true;
5
4// To run executables linked against a specific glibc version, the6// To run executables linked against a specific glibc version, the
5// run-time glibc version needs to be new enough. Check the host's glibc7// run-time glibc version needs to be new enough. Check the host's glibc
6// version. Note that this does not allow for translation/vm/emulation8// version. Note that this does not allow for translation/vm/emulation
test/standalone/issue_794/build.zig+2
...@@ -1,5 +1,7 @@...@@ -1,5 +1,7 @@
1const std = @import("std");1const std = @import("std");
22
3pub const requires_translate_c = true;
4
3pub fn build(b: *std.Build) void {5pub fn build(b: *std.Build) void {
4 const test_step = b.step("test", "Test it");6 const test_step = b.step("test", "Test it");
5 b.default_step = test_step;7 b.default_step = test_step;
test/standalone/simple/build.zig+8-1
...@@ -9,6 +9,7 @@ pub fn build(b: *std.Build) void {...@@ -9,6 +9,7 @@ pub fn build(b: *std.Build) void {
9 const skip_release_safe = b.option(bool, "skip_release_safe", "Skip release-safe builds") orelse false;9 const skip_release_safe = b.option(bool, "skip_release_safe", "Skip release-safe builds") orelse false;
10 const skip_release_fast = b.option(bool, "skip_release_fast", "Skip release-fast builds") orelse false;10 const skip_release_fast = b.option(bool, "skip_release_fast", "Skip release-fast builds") orelse false;
11 const skip_release_small = b.option(bool, "skip_release_small", "Skip release-small builds") orelse false;11 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
13 var optimize_modes_buf: [4]std.builtin.OptimizeMode = undefined;14 var optimize_modes_buf: [4]std.builtin.OptimizeMode = undefined;
14 var optimize_modes_len: usize = 0;15 var optimize_modes_len: usize = 0;
...@@ -36,6 +37,7 @@ pub fn build(b: *std.Build) void {...@@ -36,6 +37,7 @@ pub fn build(b: *std.Build) void {
36 if (case.os_filter) |os_tag| {37 if (case.os_filter) |os_tag| {
37 if (os_tag != builtin.os.tag) continue;38 if (os_tag != builtin.os.tag) continue;
38 }39 }
40 if (case.uses_translate_c and skip_translate_c) continue;
3941
40 const resolved_target = b.resolveTargetQuery(case.target);42 const resolved_target = b.resolveTargetQuery(case.target);
4143
...@@ -82,6 +84,7 @@ const Case = struct {...@@ -82,6 +84,7 @@ const Case = struct {
82 is_exe: bool = true,84 is_exe: bool = true,
83 /// Run only on this OS.85 /// Run only on this OS.
84 os_filter: ?std.Target.Os.Tag = null,86 os_filter: ?std.Target.Os.Tag = null,
87 uses_translate_c: bool = false,
85};88};
8689
87const cases = [_]Case{90const cases = [_]Case{
...@@ -93,6 +96,7 @@ const cases = [_]Case{...@@ -93,6 +96,7 @@ const cases = [_]Case{
93 .src_path = "hello_world/hello_libc.zig",96 .src_path = "hello_world/hello_libc.zig",
94 .link_libc = true,97 .link_libc = true,
95 .all_modes = true,98 .all_modes = true,
99 .uses_translate_c = true,
96 },100 },
97 .{101 .{
98 .src_path = "cat/main.zig",102 .src_path = "cat/main.zig",
...@@ -108,7 +112,10 @@ const cases = [_]Case{...@@ -108,7 +112,10 @@ const cases = [_]Case{
108 .os_tag = .freestanding,112 .os_tag = .freestanding,
109 },113 },
110 },114 },
111 .{ .src_path = "issue_12471/main.zig" },115 .{
116 .src_path = "issue_12471/main.zig",
117 .uses_translate_c = true,
118 },
112 .{ .src_path = "guess_number/main.zig" },119 .{ .src_path = "guess_number/main.zig" },
113 .{ .src_path = "main_return_error/error_u8.zig" },120 .{ .src_path = "main_return_error/error_u8.zig" },
114 .{ .src_path = "main_return_error/error_u8_non_zero.zig" },121 .{ .src_path = "main_return_error/error_u8_non_zero.zig" },
test/tests.zig+2
...@@ -1893,6 +1893,7 @@ pub fn addStandaloneTests(...@@ -1893,6 +1893,7 @@ pub fn addStandaloneTests(
1893 enable_macos_sdk: bool,1893 enable_macos_sdk: bool,
1894 enable_ios_sdk: bool,1894 enable_ios_sdk: bool,
1895 enable_symlinks_windows: bool,1895 enable_symlinks_windows: bool,
1896 skip_translate_c: bool,
1896) *Step {1897) *Step {
1897 const step = b.step("test-standalone", "Run the standalone tests");1898 const step = b.step("test-standalone", "Run the standalone tests");
1898 if (compilerHasPackageManager(b)) {1899 if (compilerHasPackageManager(b)) {
...@@ -1905,6 +1906,7 @@ pub fn addStandaloneTests(...@@ -1905,6 +1906,7 @@ pub fn addStandaloneTests(
1905 .simple_skip_release_safe = mem.indexOfScalar(OptimizeMode, optimize_modes, .ReleaseSafe) == null,1906 .simple_skip_release_safe = mem.indexOfScalar(OptimizeMode, optimize_modes, .ReleaseSafe) == null,
1906 .simple_skip_release_fast = mem.indexOfScalar(OptimizeMode, optimize_modes, .ReleaseFast) == null,1907 .simple_skip_release_fast = mem.indexOfScalar(OptimizeMode, optimize_modes, .ReleaseFast) == null,
1907 .simple_skip_release_small = mem.indexOfScalar(OptimizeMode, optimize_modes, .ReleaseSmall) == null,1908 .simple_skip_release_small = mem.indexOfScalar(OptimizeMode, optimize_modes, .ReleaseSmall) == null,
1909 .skip_translate_c = skip_translate_c,
1908 });1910 });
1909 const test_cases_dep_step = test_cases_dep.builder.default_step;1911 const test_cases_dep_step = test_cases_dep.builder.default_step;
1910 test_cases_dep_step.name = b.dupe(test_cases_dep_name);1912 test_cases_dep_step.name = b.dupe(test_cases_dep_name);