authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-03-19 19:35:58-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-03-20 21:00:06-04:00
logbc0f246911a35324473f72b770cc5715902cc912
treeb86b503cffd5e2027c3a0b5a16dbefbb312105d4
parent3a25f6a22e0f339fcaecc87efb0fa4e5f67bd73c

tests: add -Dskip-cross-glibc option

It is reasonable to pass -Dskip-non-native when unable to run foreign binaries, however there is no option for being able to run foreign static binaries but unable to run foreign dynamic binaries. This can occur when qemu is installed but not cross glibc.

2 files changed, 10 insertions(+), 0 deletions(-)

build.zig+6
...@@ -81,6 +81,7 @@ pub fn build(b: *std.Build) !void {...@@ -81,6 +81,7 @@ pub fn build(b: *std.Build) !void {
81 const skip_release_fast = b.option(bool, "skip-release-fast", "Main test suite skips release-fast builds") orelse skip_release;81 const skip_release_fast = b.option(bool, "skip-release-fast", "Main test suite skips release-fast builds") orelse skip_release;
82 const skip_release_safe = b.option(bool, "skip-release-safe", "Main test suite skips release-safe builds") orelse skip_release;82 const skip_release_safe = b.option(bool, "skip-release-safe", "Main test suite skips release-safe builds") orelse skip_release;
83 const skip_non_native = b.option(bool, "skip-non-native", "Main test suite skips non-native builds") orelse false;83 const skip_non_native = b.option(bool, "skip-non-native", "Main test suite skips non-native builds") orelse false;
84 const skip_cross_glibc = b.option(bool, "skip-cross-glibc", "Main test suite skips builds that require cross glibc") orelse false;
84 const skip_libc = b.option(bool, "skip-libc", "Main test suite skips tests that link libc") orelse false;85 const skip_libc = b.option(bool, "skip-libc", "Main test suite skips tests that link libc") orelse false;
85 const skip_single_threaded = b.option(bool, "skip-single-threaded", "Main test suite skips tests that are single-threaded") orelse false;86 const skip_single_threaded = b.option(bool, "skip-single-threaded", "Main test suite skips tests that are single-threaded") orelse false;
86 const skip_stage1 = b.option(bool, "skip-stage1", "Main test suite skips stage1 compile error tests") orelse false;87 const skip_stage1 = b.option(bool, "skip-stage1", "Main test suite skips stage1 compile error tests") orelse false;
...@@ -351,6 +352,7 @@ pub fn build(b: *std.Build) !void {...@@ -351,6 +352,7 @@ pub fn build(b: *std.Build) !void {
351 test_cases_options.addOption(bool, "enable_logging", enable_logging);352 test_cases_options.addOption(bool, "enable_logging", enable_logging);
352 test_cases_options.addOption(bool, "enable_link_snapshots", enable_link_snapshots);353 test_cases_options.addOption(bool, "enable_link_snapshots", enable_link_snapshots);
353 test_cases_options.addOption(bool, "skip_non_native", skip_non_native);354 test_cases_options.addOption(bool, "skip_non_native", skip_non_native);
355 test_cases_options.addOption(bool, "skip_cross_glibc", skip_cross_glibc);
354 test_cases_options.addOption(bool, "skip_stage1", skip_stage1);356 test_cases_options.addOption(bool, "skip_stage1", skip_stage1);
355 test_cases_options.addOption(bool, "have_llvm", enable_llvm);357 test_cases_options.addOption(bool, "have_llvm", enable_llvm);
356 test_cases_options.addOption(bool, "llvm_has_m68k", llvm_has_m68k);358 test_cases_options.addOption(bool, "llvm_has_m68k", llvm_has_m68k);
...@@ -415,6 +417,7 @@ pub fn build(b: *std.Build) !void {...@@ -415,6 +417,7 @@ pub fn build(b: *std.Build) !void {
415 .optimize_modes = optimization_modes,417 .optimize_modes = optimization_modes,
416 .skip_single_threaded = skip_single_threaded,418 .skip_single_threaded = skip_single_threaded,
417 .skip_non_native = skip_non_native,419 .skip_non_native = skip_non_native,
420 .skip_cross_glibc = skip_cross_glibc,
418 .skip_libc = skip_libc,421 .skip_libc = skip_libc,
419 .skip_stage1 = skip_stage1,422 .skip_stage1 = skip_stage1,
420 .skip_stage2 = skip_stage2_tests,423 .skip_stage2 = skip_stage2_tests,
...@@ -429,6 +432,7 @@ pub fn build(b: *std.Build) !void {...@@ -429,6 +432,7 @@ pub fn build(b: *std.Build) !void {
429 .optimize_modes = optimization_modes,432 .optimize_modes = optimization_modes,
430 .skip_single_threaded = true,433 .skip_single_threaded = true,
431 .skip_non_native = skip_non_native,434 .skip_non_native = skip_non_native,
435 .skip_cross_glibc = skip_cross_glibc,
432 .skip_libc = true,436 .skip_libc = true,
433 .skip_stage1 = skip_stage1,437 .skip_stage1 = skip_stage1,
434 .skip_stage2 = true, // TODO get all these passing438 .skip_stage2 = true, // TODO get all these passing
...@@ -442,6 +446,7 @@ pub fn build(b: *std.Build) !void {...@@ -442,6 +446,7 @@ pub fn build(b: *std.Build) !void {
442 .optimize_modes = optimization_modes,446 .optimize_modes = optimization_modes,
443 .skip_single_threaded = true,447 .skip_single_threaded = true,
444 .skip_non_native = skip_non_native,448 .skip_non_native = skip_non_native,
449 .skip_cross_glibc = skip_cross_glibc,
445 .skip_libc = true,450 .skip_libc = true,
446 .skip_stage1 = skip_stage1,451 .skip_stage1 = skip_stage1,
447 .skip_stage2 = true, // TODO get all these passing452 .skip_stage2 = true, // TODO get all these passing
...@@ -473,6 +478,7 @@ pub fn build(b: *std.Build) !void {...@@ -473,6 +478,7 @@ pub fn build(b: *std.Build) !void {
473 .optimize_modes = optimization_modes,478 .optimize_modes = optimization_modes,
474 .skip_single_threaded = skip_single_threaded,479 .skip_single_threaded = skip_single_threaded,
475 .skip_non_native = skip_non_native,480 .skip_non_native = skip_non_native,
481 .skip_cross_glibc = skip_cross_glibc,
476 .skip_libc = skip_libc,482 .skip_libc = skip_libc,
477 .skip_stage1 = skip_stage1,483 .skip_stage1 = skip_stage1,
478 .skip_stage2 = true, // TODO get all these passing484 .skip_stage2 = true, // TODO get all these passing
test/tests.zig+4
...@@ -910,6 +910,7 @@ const ModuleTestOptions = struct {...@@ -910,6 +910,7 @@ const ModuleTestOptions = struct {
910 optimize_modes: []const OptimizeMode,910 optimize_modes: []const OptimizeMode,
911 skip_single_threaded: bool,911 skip_single_threaded: bool,
912 skip_non_native: bool,912 skip_non_native: bool,
913 skip_cross_glibc: bool,
913 skip_libc: bool,914 skip_libc: bool,
914 skip_stage1: bool,915 skip_stage1: bool,
915 skip_stage2: bool,916 skip_stage2: bool,
...@@ -923,6 +924,9 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {...@@ -923,6 +924,9 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
923 if (options.skip_non_native and !test_target.target.isNative())924 if (options.skip_non_native and !test_target.target.isNative())
924 continue;925 continue;
925926
927 if (options.skip_cross_glibc and test_target.target.isGnuLibC() and test_target.link_libc)
928 continue;
929
926 if (options.skip_libc and test_target.link_libc)930 if (options.skip_libc and test_target.link_libc)
927 continue;931 continue;
928932