diff options
| author | Matthew Lugg <mlugg@mlugg.co.uk> | 2025-01-24 05:11:26 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-24 05:11:26 +0000 |
| commit | f77e1b86225cd49c2d04dfa6ca4a7ede315dc0b1 (patch) | |
| tree | c30cddc29ae1f1162f3ec38fcaf89b94ecb4e6dd /test/src/StackTrace.zig | |
| parent | d916954bee0f477bcada0693d4aa952197cf1eef (diff) | |
| parent | 180db2bf23f05a02876d4567cac3b04842c11acb (diff) | |
| download | zig-f77e1b86225cd49c2d04dfa6ca4a7ede315dc0b1.tar.gz zig-f77e1b86225cd49c2d04dfa6ca4a7ede315dc0b1.zip | |
Merge pull request #22578 from mlugg/stack-trace-tests-x86_64
tests: enable stack trace tests for x86_64-selfhosted
Diffstat (limited to 'test/src/StackTrace.zig')
| -rw-r--r-- | test/src/StackTrace.zig | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/test/src/StackTrace.zig b/test/src/StackTrace.zig index 37e390c78d..5151447a43 100644 --- a/test/src/StackTrace.zig +++ b/test/src/StackTrace.zig @@ -21,17 +21,34 @@ const Config = struct { }; pub fn addCase(self: *StackTrace, config: Config) void { + self.addCaseInner(config, true); + if (shouldTestNonLlvm(self.b.graph.host.result)) { + self.addCaseInner(config, false); + } +} + +fn addCaseInner(self: *StackTrace, config: Config, use_llvm: bool) void { if (config.Debug) |per_mode| - self.addExpect(config.name, config.source, .Debug, per_mode); + self.addExpect(config.name, config.source, .Debug, use_llvm, per_mode); if (config.ReleaseSmall) |per_mode| - self.addExpect(config.name, config.source, .ReleaseSmall, per_mode); + self.addExpect(config.name, config.source, .ReleaseSmall, use_llvm, per_mode); if (config.ReleaseFast) |per_mode| - self.addExpect(config.name, config.source, .ReleaseFast, per_mode); + self.addExpect(config.name, config.source, .ReleaseFast, use_llvm, per_mode); if (config.ReleaseSafe) |per_mode| - self.addExpect(config.name, config.source, .ReleaseSafe, per_mode); + self.addExpect(config.name, config.source, .ReleaseSafe, use_llvm, per_mode); +} + +fn shouldTestNonLlvm(target: std.Target) bool { + return switch (target.cpu.arch) { + .x86_64 => switch (target.ofmt) { + .elf => true, + else => false, + }, + else => false, + }; } fn addExpect( @@ -39,13 +56,14 @@ fn addExpect( name: []const u8, source: []const u8, optimize_mode: OptimizeMode, + use_llvm: bool, mode_config: Config.PerMode, ) void { for (mode_config.exclude_os) |tag| if (tag == builtin.os.tag) return; const b = self.b; - const annotated_case_name = b.fmt("check {s} ({s})", .{ - name, @tagName(optimize_mode), + const annotated_case_name = b.fmt("check {s} ({s} {s})", .{ + name, @tagName(optimize_mode), if (use_llvm) "llvm" else "selfhosted", }); for (self.test_filters) |test_filter| { if (mem.indexOf(u8, annotated_case_name, test_filter)) |_| break; @@ -61,6 +79,7 @@ fn addExpect( .target = b.graph.host, .error_tracing = mode_config.error_tracing, }), + .use_llvm = use_llvm, }); const run = b.addRunArtifact(exe); |
