aboutsummaryrefslogtreecommitdiff
path: root/test/tests.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-01-13 18:49:27 +0100
committerJakub Konka <kubkon@jakubkonka.com>2024-01-24 12:34:39 +0100
commitd93a0763d4c732fcdb3ed891d5b44a10943ccfed (patch)
tree47dfd634d9ed9e4f3dc777ca39221fed11da3850 /test/tests.zig
parent041f7d69f0656254cfa62a59af2fa65ac1b1c433 (diff)
downloadzig-d93a0763d4c732fcdb3ed891d5b44a10943ccfed.tar.gz
zig-d93a0763d4c732fcdb3ed891d5b44a10943ccfed.zip
test/link/link: pass build options to elf and macho tests
Diffstat (limited to 'test/tests.zig')
-rw-r--r--test/tests.zig43
1 files changed, 28 insertions, 15 deletions
diff --git a/test/tests.zig b/test/tests.zig
index b2fb1e4bca..9dcc77b141 100644
--- a/test/tests.zig
+++ b/test/tests.zig
@@ -750,26 +750,39 @@ pub fn addLinkTests(
const omit_symlinks = builtin.os.tag == .windows and !enable_symlinks_windows;
inline for (link.cases) |case| {
- const requires_stage2 = @hasDecl(case.import, "requires_stage2") and
- case.import.requires_stage2;
- const requires_symlinks = @hasDecl(case.import, "requires_symlinks") and
- case.import.requires_symlinks;
- const requires_macos_sdk = @hasDecl(case.import, "requires_macos_sdk") and
- case.import.requires_macos_sdk;
- const requires_ios_sdk = @hasDecl(case.import, "requires_ios_sdk") and
- case.import.requires_ios_sdk;
- const bad =
- (requires_stage2 and omit_stage2) or
- (requires_symlinks and omit_symlinks) or
- (requires_macos_sdk and !enable_macos_sdk) or
- (requires_ios_sdk and !enable_ios_sdk);
- if (!bad) {
- const dep = b.anonymousDependency(case.build_root, case.import, .{});
+ if (mem.eql(u8, @typeName(case.import), "test.link.link")) {
+ const dep = b.anonymousDependency(case.build_root, case.import, .{
+ .has_macos_sdk = enable_macos_sdk,
+ .has_ios_sdk = enable_ios_sdk,
+ .has_symlinks_windows = !omit_symlinks,
+ });
const dep_step = dep.builder.default_step;
assert(mem.startsWith(u8, dep.builder.dep_prefix, "test."));
const dep_prefix_adjusted = dep.builder.dep_prefix["test.".len..];
dep_step.name = b.fmt("{s}{s}", .{ dep_prefix_adjusted, dep_step.name });
step.dependOn(dep_step);
+ } else {
+ const requires_stage2 = @hasDecl(case.import, "requires_stage2") and
+ case.import.requires_stage2;
+ const requires_symlinks = @hasDecl(case.import, "requires_symlinks") and
+ case.import.requires_symlinks;
+ const requires_macos_sdk = @hasDecl(case.import, "requires_macos_sdk") and
+ case.import.requires_macos_sdk;
+ const requires_ios_sdk = @hasDecl(case.import, "requires_ios_sdk") and
+ case.import.requires_ios_sdk;
+ const bad =
+ (requires_stage2 and omit_stage2) or
+ (requires_symlinks and omit_symlinks) or
+ (requires_macos_sdk and !enable_macos_sdk) or
+ (requires_ios_sdk and !enable_ios_sdk);
+ if (!bad) {
+ const dep = b.anonymousDependency(case.build_root, case.import, .{});
+ const dep_step = dep.builder.default_step;
+ assert(mem.startsWith(u8, dep.builder.dep_prefix, "test."));
+ const dep_prefix_adjusted = dep.builder.dep_prefix["test.".len..];
+ dep_step.name = b.fmt("{s}{s}", .{ dep_prefix_adjusted, dep_step.name });
+ step.dependOn(dep_step);
+ }
}
}