diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2024-01-13 18:49:27 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2024-01-24 12:34:39 +0100 |
| commit | d93a0763d4c732fcdb3ed891d5b44a10943ccfed (patch) | |
| tree | 47dfd634d9ed9e4f3dc777ca39221fed11da3850 /test/tests.zig | |
| parent | 041f7d69f0656254cfa62a59af2fa65ac1b1c433 (diff) | |
| download | zig-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.zig | 43 |
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); + } } } |
