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 {
8181 const skip_release_fast = b.option(bool, "skip-release-fast", "Main test suite skips release-fast builds") orelse skip_release;
8282 const skip_release_safe = b.option(bool, "skip-release-safe", "Main test suite skips release-safe builds") orelse skip_release;
8383 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;
8485 const skip_libc = b.option(bool, "skip-libc", "Main test suite skips tests that link libc") orelse false;
8586 const skip_single_threaded = b.option(bool, "skip-single-threaded", "Main test suite skips tests that are single-threaded") orelse false;
8687 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 {
351352 test_cases_options.addOption(bool, "enable_logging", enable_logging);
352353 test_cases_options.addOption(bool, "enable_link_snapshots", enable_link_snapshots);
353354 test_cases_options.addOption(bool, "skip_non_native", skip_non_native);
355 test_cases_options.addOption(bool, "skip_cross_glibc", skip_cross_glibc);
354356 test_cases_options.addOption(bool, "skip_stage1", skip_stage1);
355357 test_cases_options.addOption(bool, "have_llvm", enable_llvm);
356358 test_cases_options.addOption(bool, "llvm_has_m68k", llvm_has_m68k);
......@@ -415,6 +417,7 @@ pub fn build(b: *std.Build) !void {
415417 .optimize_modes = optimization_modes,
416418 .skip_single_threaded = skip_single_threaded,
417419 .skip_non_native = skip_non_native,
420 .skip_cross_glibc = skip_cross_glibc,
418421 .skip_libc = skip_libc,
419422 .skip_stage1 = skip_stage1,
420423 .skip_stage2 = skip_stage2_tests,
......@@ -429,6 +432,7 @@ pub fn build(b: *std.Build) !void {
429432 .optimize_modes = optimization_modes,
430433 .skip_single_threaded = true,
431434 .skip_non_native = skip_non_native,
435 .skip_cross_glibc = skip_cross_glibc,
432436 .skip_libc = true,
433437 .skip_stage1 = skip_stage1,
434438 .skip_stage2 = true, // TODO get all these passing
......@@ -442,6 +446,7 @@ pub fn build(b: *std.Build) !void {
442446 .optimize_modes = optimization_modes,
443447 .skip_single_threaded = true,
444448 .skip_non_native = skip_non_native,
449 .skip_cross_glibc = skip_cross_glibc,
445450 .skip_libc = true,
446451 .skip_stage1 = skip_stage1,
447452 .skip_stage2 = true, // TODO get all these passing
......@@ -473,6 +478,7 @@ pub fn build(b: *std.Build) !void {
473478 .optimize_modes = optimization_modes,
474479 .skip_single_threaded = skip_single_threaded,
475480 .skip_non_native = skip_non_native,
481 .skip_cross_glibc = skip_cross_glibc,
476482 .skip_libc = skip_libc,
477483 .skip_stage1 = skip_stage1,
478484 .skip_stage2 = true, // TODO get all these passing
test/tests.zig+4
......@@ -910,6 +910,7 @@ const ModuleTestOptions = struct {
910910 optimize_modes: []const OptimizeMode,
911911 skip_single_threaded: bool,
912912 skip_non_native: bool,
913 skip_cross_glibc: bool,
913914 skip_libc: bool,
914915 skip_stage1: bool,
915916 skip_stage2: bool,
......@@ -923,6 +924,9 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
923924 if (options.skip_non_native and !test_target.target.isNative())
924925 continue;
925926
927 if (options.skip_cross_glibc and test_target.target.isGnuLibC() and test_target.link_libc)
928 continue;
929
926930 if (options.skip_libc and test_target.link_libc)
927931 continue;
928932