| author | |
| committer | |
| log | 0313426ce8c6714f9bd3ea1d0f88f68e8f0c89cd |
| tree | 0424c91ce607da4bfe990511e7af7bd6852c9569 |
| parent | 970b7efec7f138a84e5dfa0e3e5273ed64a7f918 |
Skip linker tests requiring symlinks on Windows4 files changed, 31 insertions(+), 2 deletions(-)
build.zig+3-1| ... | @@ -88,6 +88,7 @@ pub fn build(b: *Builder) !void { | ... | @@ -88,6 +88,7 @@ pub fn build(b: *Builder) !void { |
| 88 | "Whether LLVM has the experimental target arc enabled", | 88 | "Whether LLVM has the experimental target arc enabled", |
| 89 | ) orelse false; | 89 | ) orelse false; |
| 90 | const enable_macos_sdk = b.option(bool, "enable-macos-sdk", "Run tests requiring presence of macOS SDK and frameworks") orelse false; | 90 | const enable_macos_sdk = b.option(bool, "enable-macos-sdk", "Run tests requiring presence of macOS SDK and frameworks") orelse false; |
| 91 | const enable_symlinks_windows = b.option(bool, "enable-symlinks-windows", "Run tests requiring presence of symlinks on Windows") orelse false; | ||
| 91 | const config_h_path_option = b.option([]const u8, "config_h", "Path to the generated config.h"); | 92 | const config_h_path_option = b.option([]const u8, "config_h", "Path to the generated config.h"); |
| 92 | 93 | ||
| 93 | if (!skip_install_lib_files) { | 94 | if (!skip_install_lib_files) { |
| ... | @@ -519,9 +520,10 @@ pub fn build(b: *Builder) !void { | ... | @@ -519,9 +520,10 @@ pub fn build(b: *Builder) !void { |
| 519 | b.enable_rosetta, | 520 | b.enable_rosetta, |
| 520 | b.enable_wasmtime, | 521 | b.enable_wasmtime, |
| 521 | b.enable_wine, | 522 | b.enable_wine, |
| 523 | enable_symlinks_windows, | ||
| 522 | )); | 524 | )); |
| 523 | test_step.dependOn(tests.addCAbiTests(b, skip_non_native)); | 525 | test_step.dependOn(tests.addCAbiTests(b, skip_non_native)); |
| 524 | test_step.dependOn(tests.addLinkTests(b, test_filter, modes, enable_macos_sdk, skip_stage2_tests)); | 526 | test_step.dependOn(tests.addLinkTests(b, test_filter, modes, enable_macos_sdk, skip_stage2_tests, enable_symlinks_windows)); |
| 525 | test_step.dependOn(tests.addStackTraceTests(b, test_filter, modes)); | 527 | test_step.dependOn(tests.addStackTraceTests(b, test_filter, modes)); |
| 526 | test_step.dependOn(tests.addCliTests(b, test_filter, modes)); | 528 | test_step.dependOn(tests.addCliTests(b, test_filter, modes)); |
| 527 | test_step.dependOn(tests.addAssembleAndLinkTests(b, test_filter, modes)); | 529 | test_step.dependOn(tests.addAssembleAndLinkTests(b, test_filter, modes)); |
ci/windows/build.ps1+2-1| ... | @@ -49,7 +49,8 @@ Write-Output " zig build test docs..." | ... | @@ -49,7 +49,8 @@ Write-Output " zig build test docs..." |
| 49 | & "$ZIGINSTALLDIR\bin\zig.exe" build test docs ` | 49 | & "$ZIGINSTALLDIR\bin\zig.exe" build test docs ` |
| 50 | --search-prefix "$ZIGPREFIXPATH" ` | 50 | --search-prefix "$ZIGPREFIXPATH" ` |
| 51 | -Dstatic-llvm ` | 51 | -Dstatic-llvm ` |
| 52 | -Dskip-non-native | 52 | -Dskip-non-native ` |
| 53 | -Denable-symlinks-windows | ||
| 53 | CheckLastExitCode | 54 | CheckLastExitCode |
| 54 | 55 | ||
| 55 | # Produce the experimental std lib documentation. | 56 | # Produce the experimental std lib documentation. |
test/link.zig+19| ... | @@ -82,83 +82,102 @@ fn addMachOCases(cases: *tests.StandaloneContext) void { | ... | @@ -82,83 +82,102 @@ fn addMachOCases(cases: *tests.StandaloneContext) void { |
| 82 | cases.addBuildFile("test/link/macho/bugs/13056/build.zig", .{ | 82 | cases.addBuildFile("test/link/macho/bugs/13056/build.zig", .{ |
| 83 | .build_modes = true, | 83 | .build_modes = true, |
| 84 | .requires_macos_sdk = true, | 84 | .requires_macos_sdk = true, |
| 85 | .requires_symlinks = true, | ||
| 85 | }); | 86 | }); |
| 86 | 87 | ||
| 87 | cases.addBuildFile("test/link/macho/bugs/13457/build.zig", .{ | 88 | cases.addBuildFile("test/link/macho/bugs/13457/build.zig", .{ |
| 88 | .build_modes = true, | 89 | .build_modes = true, |
| 90 | .requires_symlinks = true, | ||
| 89 | }); | 91 | }); |
| 90 | 92 | ||
| 91 | cases.addBuildFile("test/link/macho/dead_strip/build.zig", .{ | 93 | cases.addBuildFile("test/link/macho/dead_strip/build.zig", .{ |
| 92 | .build_modes = false, | 94 | .build_modes = false, |
| 95 | .requires_symlinks = true, | ||
| 93 | }); | 96 | }); |
| 94 | 97 | ||
| 95 | cases.addBuildFile("test/link/macho/dead_strip_dylibs/build.zig", .{ | 98 | cases.addBuildFile("test/link/macho/dead_strip_dylibs/build.zig", .{ |
| 96 | .build_modes = true, | 99 | .build_modes = true, |
| 97 | .requires_macos_sdk = true, | 100 | .requires_macos_sdk = true, |
| 101 | .requires_symlinks = true, | ||
| 98 | }); | 102 | }); |
| 99 | 103 | ||
| 100 | cases.addBuildFile("test/link/macho/dylib/build.zig", .{ | 104 | cases.addBuildFile("test/link/macho/dylib/build.zig", .{ |
| 101 | .build_modes = true, | 105 | .build_modes = true, |
| 106 | .requires_symlinks = true, | ||
| 102 | }); | 107 | }); |
| 103 | 108 | ||
| 104 | cases.addBuildFile("test/link/macho/empty/build.zig", .{ | 109 | cases.addBuildFile("test/link/macho/empty/build.zig", .{ |
| 105 | .build_modes = true, | 110 | .build_modes = true, |
| 111 | .requires_symlinks = true, | ||
| 106 | }); | 112 | }); |
| 107 | 113 | ||
| 108 | cases.addBuildFile("test/link/macho/entry/build.zig", .{ | 114 | cases.addBuildFile("test/link/macho/entry/build.zig", .{ |
| 109 | .build_modes = true, | 115 | .build_modes = true, |
| 116 | .requires_symlinks = true, | ||
| 110 | }); | 117 | }); |
| 111 | 118 | ||
| 112 | cases.addBuildFile("test/link/macho/headerpad/build.zig", .{ | 119 | cases.addBuildFile("test/link/macho/headerpad/build.zig", .{ |
| 113 | .build_modes = true, | 120 | .build_modes = true, |
| 114 | .requires_macos_sdk = true, | 121 | .requires_macos_sdk = true, |
| 122 | .requires_symlinks = true, | ||
| 115 | }); | 123 | }); |
| 116 | 124 | ||
| 117 | cases.addBuildFile("test/link/macho/linksection/build.zig", .{ | 125 | cases.addBuildFile("test/link/macho/linksection/build.zig", .{ |
| 118 | .build_modes = true, | 126 | .build_modes = true, |
| 127 | .requires_symlinks = true, | ||
| 119 | }); | 128 | }); |
| 120 | 129 | ||
| 121 | cases.addBuildFile("test/link/macho/needed_framework/build.zig", .{ | 130 | cases.addBuildFile("test/link/macho/needed_framework/build.zig", .{ |
| 122 | .build_modes = true, | 131 | .build_modes = true, |
| 123 | .requires_macos_sdk = true, | 132 | .requires_macos_sdk = true, |
| 133 | .requires_symlinks = true, | ||
| 124 | }); | 134 | }); |
| 125 | 135 | ||
| 126 | cases.addBuildFile("test/link/macho/needed_library/build.zig", .{ | 136 | cases.addBuildFile("test/link/macho/needed_library/build.zig", .{ |
| 127 | .build_modes = true, | 137 | .build_modes = true, |
| 138 | .requires_symlinks = true, | ||
| 128 | }); | 139 | }); |
| 129 | 140 | ||
| 130 | cases.addBuildFile("test/link/macho/objc/build.zig", .{ | 141 | cases.addBuildFile("test/link/macho/objc/build.zig", .{ |
| 131 | .build_modes = true, | 142 | .build_modes = true, |
| 132 | .requires_macos_sdk = true, | 143 | .requires_macos_sdk = true, |
| 144 | .requires_symlinks = true, | ||
| 133 | }); | 145 | }); |
| 134 | 146 | ||
| 135 | cases.addBuildFile("test/link/macho/objcpp/build.zig", .{ | 147 | cases.addBuildFile("test/link/macho/objcpp/build.zig", .{ |
| 136 | .build_modes = true, | 148 | .build_modes = true, |
| 137 | .requires_macos_sdk = true, | 149 | .requires_macos_sdk = true, |
| 150 | .requires_symlinks = true, | ||
| 138 | }); | 151 | }); |
| 139 | 152 | ||
| 140 | cases.addBuildFile("test/link/macho/pagezero/build.zig", .{ | 153 | cases.addBuildFile("test/link/macho/pagezero/build.zig", .{ |
| 141 | .build_modes = false, | 154 | .build_modes = false, |
| 155 | .requires_symlinks = true, | ||
| 142 | }); | 156 | }); |
| 143 | 157 | ||
| 144 | cases.addBuildFile("test/link/macho/search_strategy/build.zig", .{ | 158 | cases.addBuildFile("test/link/macho/search_strategy/build.zig", .{ |
| 145 | .build_modes = true, | 159 | .build_modes = true, |
| 160 | .requires_symlinks = true, | ||
| 146 | }); | 161 | }); |
| 147 | 162 | ||
| 148 | cases.addBuildFile("test/link/macho/stack_size/build.zig", .{ | 163 | cases.addBuildFile("test/link/macho/stack_size/build.zig", .{ |
| 149 | .build_modes = true, | 164 | .build_modes = true, |
| 165 | .requires_symlinks = true, | ||
| 150 | }); | 166 | }); |
| 151 | 167 | ||
| 152 | cases.addBuildFile("test/link/macho/tls/build.zig", .{ | 168 | cases.addBuildFile("test/link/macho/tls/build.zig", .{ |
| 153 | .build_modes = true, | 169 | .build_modes = true, |
| 170 | .requires_symlinks = true, | ||
| 154 | }); | 171 | }); |
| 155 | 172 | ||
| 156 | cases.addBuildFile("test/link/macho/weak_library/build.zig", .{ | 173 | cases.addBuildFile("test/link/macho/weak_library/build.zig", .{ |
| 157 | .build_modes = true, | 174 | .build_modes = true, |
| 175 | .requires_symlinks = true, | ||
| 158 | }); | 176 | }); |
| 159 | 177 | ||
| 160 | cases.addBuildFile("test/link/macho/weak_framework/build.zig", .{ | 178 | cases.addBuildFile("test/link/macho/weak_framework/build.zig", .{ |
| 161 | .build_modes = true, | 179 | .build_modes = true, |
| 162 | .requires_macos_sdk = true, | 180 | .requires_macos_sdk = true, |
| 181 | .requires_symlinks = true, | ||
| 163 | }); | 182 | }); |
| 164 | } | 183 | } |
test/tests.zig+7| ... | @@ -505,6 +505,7 @@ pub fn addStandaloneTests( | ... | @@ -505,6 +505,7 @@ pub fn addStandaloneTests( |
| 505 | enable_rosetta: bool, | 505 | enable_rosetta: bool, |
| 506 | enable_wasmtime: bool, | 506 | enable_wasmtime: bool, |
| 507 | enable_wine: bool, | 507 | enable_wine: bool, |
| 508 | enable_symlinks_windows: bool, | ||
| 508 | ) *build.Step { | 509 | ) *build.Step { |
| 509 | const cases = b.allocator.create(StandaloneContext) catch unreachable; | 510 | const cases = b.allocator.create(StandaloneContext) catch unreachable; |
| 510 | cases.* = StandaloneContext{ | 511 | cases.* = StandaloneContext{ |
| ... | @@ -522,6 +523,7 @@ pub fn addStandaloneTests( | ... | @@ -522,6 +523,7 @@ pub fn addStandaloneTests( |
| 522 | .enable_rosetta = enable_rosetta, | 523 | .enable_rosetta = enable_rosetta, |
| 523 | .enable_wasmtime = enable_wasmtime, | 524 | .enable_wasmtime = enable_wasmtime, |
| 524 | .enable_wine = enable_wine, | 525 | .enable_wine = enable_wine, |
| 526 | .enable_symlinks_windows = enable_symlinks_windows, | ||
| 525 | }; | 527 | }; |
| 526 | 528 | ||
| 527 | standalone.addCases(cases); | 529 | standalone.addCases(cases); |
| ... | @@ -535,6 +537,7 @@ pub fn addLinkTests( | ... | @@ -535,6 +537,7 @@ pub fn addLinkTests( |
| 535 | modes: []const Mode, | 537 | modes: []const Mode, |
| 536 | enable_macos_sdk: bool, | 538 | enable_macos_sdk: bool, |
| 537 | omit_stage2: bool, | 539 | omit_stage2: bool, |
| 540 | enable_symlinks_windows: bool, | ||
| 538 | ) *build.Step { | 541 | ) *build.Step { |
| 539 | const cases = b.allocator.create(StandaloneContext) catch unreachable; | 542 | const cases = b.allocator.create(StandaloneContext) catch unreachable; |
| 540 | cases.* = StandaloneContext{ | 543 | cases.* = StandaloneContext{ |
| ... | @@ -547,6 +550,7 @@ pub fn addLinkTests( | ... | @@ -547,6 +550,7 @@ pub fn addLinkTests( |
| 547 | .enable_macos_sdk = enable_macos_sdk, | 550 | .enable_macos_sdk = enable_macos_sdk, |
| 548 | .target = .{}, | 551 | .target = .{}, |
| 549 | .omit_stage2 = omit_stage2, | 552 | .omit_stage2 = omit_stage2, |
| 553 | .enable_symlinks_windows = enable_symlinks_windows, | ||
| 550 | }; | 554 | }; |
| 551 | link.addCases(cases); | 555 | link.addCases(cases); |
| 552 | return cases.step; | 556 | return cases.step; |
| ... | @@ -1022,6 +1026,7 @@ pub const StandaloneContext = struct { | ... | @@ -1022,6 +1026,7 @@ pub const StandaloneContext = struct { |
| 1022 | enable_rosetta: bool = false, | 1026 | enable_rosetta: bool = false, |
| 1023 | enable_wasmtime: bool = false, | 1027 | enable_wasmtime: bool = false, |
| 1024 | enable_wine: bool = false, | 1028 | enable_wine: bool = false, |
| 1029 | enable_symlinks_windows: bool, | ||
| 1025 | 1030 | ||
| 1026 | pub fn addC(self: *StandaloneContext, root_src: []const u8) void { | 1031 | pub fn addC(self: *StandaloneContext, root_src: []const u8) void { |
| 1027 | self.addAllArgs(root_src, true); | 1032 | self.addAllArgs(root_src, true); |
| ... | @@ -1037,11 +1042,13 @@ pub const StandaloneContext = struct { | ... | @@ -1037,11 +1042,13 @@ pub const StandaloneContext = struct { |
| 1037 | requires_macos_sdk: bool = false, | 1042 | requires_macos_sdk: bool = false, |
| 1038 | requires_stage2: bool = false, | 1043 | requires_stage2: bool = false, |
| 1039 | use_emulation: bool = false, | 1044 | use_emulation: bool = false, |
| 1045 | requires_symlinks: bool = false, | ||
| 1040 | }) void { | 1046 | }) void { |
| 1041 | const b = self.b; | 1047 | const b = self.b; |
| 1042 | 1048 | ||
| 1043 | if (features.requires_macos_sdk and !self.enable_macos_sdk) return; | 1049 | if (features.requires_macos_sdk and !self.enable_macos_sdk) return; |
| 1044 | if (features.requires_stage2 and self.omit_stage2) return; | 1050 | if (features.requires_stage2 and self.omit_stage2) return; |
| 1051 | if (features.requires_symlinks and !self.enable_symlinks_windows and builtin.os.tag == .windows) return; | ||
| 1045 | 1052 | ||
| 1046 | const annotated_case_name = b.fmt("build {s}", .{build_file}); | 1053 | const annotated_case_name = b.fmt("build {s}", .{build_file}); |
| 1047 | if (self.test_filter) |filter| { | 1054 | if (self.test_filter) |filter| { |