aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Ã…stholm <carl@astholm.se>2024-01-16 21:29:54 +0100
committerAndrew Kelley <andrew@ziglang.org>2024-04-07 16:05:54 -0700
commitc3ecc6972ea25707f93fc84f98a262efbff66904 (patch)
treea674fe325605406589b4960ee0051da03ed821b3 /test
parentd6ecfa7025e07dde07f73844258b95cace247406 (diff)
downloadzig-c3ecc6972ea25707f93fc84f98a262efbff66904.tar.gz
zig-c3ecc6972ea25707f93fc84f98a262efbff66904.zip
Don't add standalone test cases until we've built stage3
Diffstat (limited to 'test')
-rw-r--r--test/standalone/build.zig3
-rw-r--r--test/tests.zig24
2 files changed, 17 insertions, 10 deletions
diff --git a/test/standalone/build.zig b/test/standalone/build.zig
index e0c4b719ed..62eed62121 100644
--- a/test/standalone/build.zig
+++ b/test/standalone/build.zig
@@ -20,7 +20,8 @@ pub fn build(b: *std.Build) void {
if (std.mem.eql(u8, dep_hash, pkg_hash)) {
const pkg = @field(all_pkgs, pkg_hash);
if (!@hasDecl(pkg, "build_zig")) {
- std.debug.panic("standalone test case '{s}' is missing a 'build.zig' file", .{dep_name});
+ std.debug.print("standalone test case '{s}' is missing a 'build.zig' file\n", .{dep_name});
+ std.process.exit(1);
}
const requires_ios_sdk = @hasDecl(pkg.build_zig, "requires_ios_sdk") and
pkg.build_zig.requires_ios_sdk;
diff --git a/test/tests.zig b/test/tests.zig
index fea3099587..5dd3b66be2 100644
--- a/test/tests.zig
+++ b/test/tests.zig
@@ -710,15 +710,21 @@ pub fn addStandaloneTests(
}
}
- const test_cases_dep_name = "standalone_test_cases";
- const test_cases_dep = b.dependency(test_cases_dep_name, .{
- .@"enable-ios-sdk" = enable_ios_sdk,
- .@"enable-macos-sdk" = enable_macos_sdk,
- .@"enable-symlinks-windows" = enable_symlinks_windows,
- });
- const test_cases_dep_step = test_cases_dep.builder.default_step;
- test_cases_dep_step.name = b.dupe(test_cases_dep_name);
- step.dependOn(test_cases_dep.builder.default_step);
+ // We can only use dependencies if the compiler was built with support for package management.
+ // (zig2 doesn't support it, but we still need to construct a build graph to build stage3.)
+ const package_management_available = b.available_deps.len != 0;
+
+ if (package_management_available) {
+ const test_cases_dep_name = "standalone_test_cases";
+ const test_cases_dep = b.dependency(test_cases_dep_name, .{
+ .@"enable-ios-sdk" = enable_ios_sdk,
+ .@"enable-macos-sdk" = enable_macos_sdk,
+ .@"enable-symlinks-windows" = enable_symlinks_windows,
+ });
+ const test_cases_dep_step = test_cases_dep.builder.default_step;
+ test_cases_dep_step.name = b.dupe(test_cases_dep_name);
+ step.dependOn(test_cases_dep.builder.default_step);
+ }
return step;
}