tests: enable stack trace tests for x86_64-selfhosted
Allows the stack trace tests to be additionally compiled and run with `.use_llvm = false, .use_lld = false` depending on the host target. This is currently enabled for x86_64 targets emitting ELF. Self-hosted backends emit slightly different DWARF info to the LLVM backend, so the checking logic (and the tests themselves) had to be tweaked slightly to support both backends at once.
This commit is contained in:
@@ -13,7 +13,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: TheSkyIsFalling
|
||||
\\source.zig:2:5: [address] in main (test)
|
||||
\\source.zig:2:5: [address] in main ([main_file])
|
||||
\\ return error.TheSkyIsFalling;
|
||||
\\ ^
|
||||
\\
|
||||
@@ -61,10 +61,10 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: TheSkyIsFalling
|
||||
\\source.zig:2:5: [address] in foo (test)
|
||||
\\source.zig:2:5: [address] in foo ([main_file])
|
||||
\\ return error.TheSkyIsFalling;
|
||||
\\ ^
|
||||
\\source.zig:6:5: [address] in main (test)
|
||||
\\source.zig:6:5: [address] in main ([main_file])
|
||||
\\ try foo();
|
||||
\\ ^
|
||||
\\
|
||||
@@ -120,7 +120,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: UnrelatedError
|
||||
\\source.zig:13:5: [address] in main (test)
|
||||
\\source.zig:13:5: [address] in main ([main_file])
|
||||
\\ return error.UnrelatedError;
|
||||
\\ ^
|
||||
\\
|
||||
@@ -172,7 +172,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: UnrelatedError
|
||||
\\source.zig:10:5: [address] in main (test)
|
||||
\\source.zig:10:5: [address] in main ([main_file])
|
||||
\\ return error.UnrelatedError;
|
||||
\\ ^
|
||||
\\
|
||||
@@ -224,10 +224,10 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: TheSkyIsFalling
|
||||
\\source.zig:2:5: [address] in foo (test)
|
||||
\\source.zig:2:5: [address] in foo ([main_file])
|
||||
\\ return error.TheSkyIsFalling;
|
||||
\\ ^
|
||||
\\source.zig:10:5: [address] in main (test)
|
||||
\\source.zig:10:5: [address] in main ([main_file])
|
||||
\\ try foo();
|
||||
\\ ^
|
||||
\\
|
||||
@@ -284,7 +284,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: BadTime
|
||||
\\source.zig:12:5: [address] in main (test)
|
||||
\\source.zig:12:5: [address] in main ([main_file])
|
||||
\\ return error.BadTime;
|
||||
\\ ^
|
||||
\\
|
||||
@@ -332,10 +332,10 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: AndMyCarIsOutOfGas
|
||||
\\source.zig:2:5: [address] in foo (test)
|
||||
\\source.zig:2:5: [address] in foo ([main_file])
|
||||
\\ return error.TheSkyIsFalling;
|
||||
\\ ^
|
||||
\\source.zig:6:5: [address] in main (test)
|
||||
\\source.zig:6:5: [address] in main ([main_file])
|
||||
\\ return foo() catch error.AndMyCarIsOutOfGas;
|
||||
\\ ^
|
||||
\\
|
||||
@@ -391,7 +391,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: SomethingUnrelatedWentWrong
|
||||
\\source.zig:11:5: [address] in main (test)
|
||||
\\source.zig:11:5: [address] in main ([main_file])
|
||||
\\ return error.SomethingUnrelatedWentWrong;
|
||||
\\ ^
|
||||
\\
|
||||
@@ -456,13 +456,13 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: StillUnresolved
|
||||
\\source.zig:1:18: [address] in foo (test)
|
||||
\\source.zig:1:18: [address] in foo ([main_file])
|
||||
\\fn foo() !void { return error.TheSkyIsFalling; }
|
||||
\\ ^
|
||||
\\source.zig:2:18: [address] in bar (test)
|
||||
\\source.zig:2:18: [address] in bar ([main_file])
|
||||
\\fn bar() !void { return error.InternalError; }
|
||||
\\ ^
|
||||
\\source.zig:23:5: [address] in main (test)
|
||||
\\source.zig:23:5: [address] in main ([main_file])
|
||||
\\ return error.StillUnresolved;
|
||||
\\ ^
|
||||
\\
|
||||
@@ -527,13 +527,13 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: TestExpectedError
|
||||
\\source.zig:9:18: [address] in foo (test)
|
||||
\\source.zig:9:18: [address] in foo ([main_file])
|
||||
\\fn foo() !void { return error.Foo; }
|
||||
\\ ^
|
||||
\\source.zig:5:5: [address] in expectError (test)
|
||||
\\source.zig:5:5: [address] in expectError ([main_file])
|
||||
\\ return error.TestExpectedError;
|
||||
\\ ^
|
||||
\\source.zig:17:5: [address] in main (test)
|
||||
\\source.zig:17:5: [address] in main ([main_file])
|
||||
\\ try expectError(error.Bar, foo());
|
||||
\\ ^
|
||||
\\
|
||||
@@ -592,13 +592,13 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: AndMyCarIsOutOfGas
|
||||
\\source.zig:2:5: [address] in foo (test)
|
||||
\\source.zig:2:5: [address] in foo ([main_file])
|
||||
\\ return error.TheSkyIsFalling;
|
||||
\\ ^
|
||||
\\source.zig:6:5: [address] in bar (test)
|
||||
\\source.zig:6:5: [address] in bar ([main_file])
|
||||
\\ return error.AndMyCarIsOutOfGas;
|
||||
\\ ^
|
||||
\\source.zig:11:9: [address] in main (test)
|
||||
\\source.zig:11:9: [address] in main ([main_file])
|
||||
\\ try bar();
|
||||
\\ ^
|
||||
\\
|
||||
@@ -657,13 +657,13 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: AndMyCarIsOutOfGas
|
||||
\\source.zig:2:5: [address] in foo (test)
|
||||
\\source.zig:2:5: [address] in foo ([main_file])
|
||||
\\ return error.TheSkyIsFalling;
|
||||
\\ ^
|
||||
\\source.zig:6:5: [address] in bar (test)
|
||||
\\source.zig:6:5: [address] in bar ([main_file])
|
||||
\\ return error.AndMyCarIsOutOfGas;
|
||||
\\ ^
|
||||
\\source.zig:11:9: [address] in main (test)
|
||||
\\source.zig:11:9: [address] in main ([main_file])
|
||||
\\ try bar();
|
||||
\\ ^
|
||||
\\
|
||||
@@ -724,16 +724,16 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: TheSkyIsFalling
|
||||
\\source.zig:10:5: [address] in make_error (test)
|
||||
\\source.zig:10:5: [address] in make_error ([main_file])
|
||||
\\ return error.TheSkyIsFalling;
|
||||
\\ ^
|
||||
\\source.zig:6:5: [address] in bar (test)
|
||||
\\source.zig:6:5: [address] in bar ([main_file])
|
||||
\\ return make_error();
|
||||
\\ ^
|
||||
\\source.zig:2:5: [address] in foo (test)
|
||||
\\source.zig:2:5: [address] in foo ([main_file])
|
||||
\\ try bar();
|
||||
\\ ^
|
||||
\\source.zig:14:5: [address] in main (test)
|
||||
\\source.zig:14:5: [address] in main ([main_file])
|
||||
\\ try foo();
|
||||
\\ ^
|
||||
\\
|
||||
@@ -797,10 +797,10 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.windows, // TODO intermittent failures
|
||||
},
|
||||
.expect =
|
||||
\\source.zig:7:8: [address] in foo (test)
|
||||
\\source.zig:7:8: [address] in foo ([main_file])
|
||||
\\ bar();
|
||||
\\ ^
|
||||
\\source.zig:10:8: [address] in main (test)
|
||||
\\source.zig:10:8: [address] in main ([main_file])
|
||||
\\ foo();
|
||||
\\ ^
|
||||
\\
|
||||
@@ -829,7 +829,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void {
|
||||
.Debug = .{
|
||||
.expect =
|
||||
\\error: TheSkyIsFalling
|
||||
\\source.zig:3:5: [address] in main (test)
|
||||
\\source.zig:3:5: [address] in main ([main_file])
|
||||
\\ return error.TheSkyIsFalling;
|
||||
\\ ^
|
||||
\\
|
||||
|
||||
Reference in New Issue
Block a user