zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit aba67ecf4475a72035b60dbc0284c2076600f2e1 (tree)
parent 1fd24791a7ea74260c86212e65b13cafd6243863
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Tue,  3 Sep 2019 10:08:39 -0400

rename test-compare-panic to test-stack-traces

Diffstat:
Mbuild.zig | 2+-
Dtest/compare_traces.zig | 274-------------------------------------------------------------------------------
Atest/stack_traces.zig | 274+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtest/tests.zig | 22+++++++++++-----------
4 files changed, 286 insertions(+), 286 deletions(-)

diff --git a/build.zig b/build.zig @@ -138,7 +138,7 @@ pub fn build(b: *Builder) !void { test_step.dependOn(tests.addCompareOutputTests(b, test_filter, modes)); test_step.dependOn(tests.addStandaloneTests(b, test_filter, modes)); - test_step.dependOn(tests.addCompareStackTracesTests(b, test_filter, modes)); + test_step.dependOn(tests.addStackTraceTests(b, test_filter, modes)); test_step.dependOn(tests.addCliTests(b, test_filter, modes)); test_step.dependOn(tests.addAssembleAndLinkTests(b, test_filter, modes)); test_step.dependOn(tests.addRuntimeSafetyTests(b, test_filter, modes)); diff --git a/test/compare_traces.zig b/test/compare_traces.zig @@ -1,274 +0,0 @@ -const builtin = @import("builtin"); -const std = @import("std"); -const os = std.os; -const tests = @import("tests.zig"); - -pub fn addCases(cases: *tests.CompareStackTracesContext) void { - const source_return = - \\const std = @import("std"); - \\ - \\pub fn main() !void { - \\ return error.TheSkyIsFalling; - \\} - ; - const source_try_return = - \\const std = @import("std"); - \\ - \\fn foo() !void { - \\ return error.TheSkyIsFalling; - \\} - \\ - \\pub fn main() !void { - \\ try foo(); - \\} - ; - const source_try_try_return_return = - \\const std = @import("std"); - \\ - \\fn foo() !void { - \\ try bar(); - \\} - \\ - \\fn bar() !void { - \\ return make_error(); - \\} - \\ - \\fn make_error() !void { - \\ return error.TheSkyIsFalling; - \\} - \\ - \\pub fn main() !void { - \\ try foo(); - \\} - ; - switch (builtin.os) { - .linux => { - cases.addCase( - "return", - source_return, - [_][]const u8{ - // debug - \\error: TheSkyIsFalling - \\source.zig:4:5: [address] in main (test) - \\ - , - // release-safe - \\error: TheSkyIsFalling - \\source.zig:4:5: [address] in std.special.posixCallMainAndExit (test) - \\ - , - // release-fast - \\error: TheSkyIsFalling - \\ - , - // release-small - \\error: TheSkyIsFalling - \\ - }, - ); - cases.addCase( - "try return", - source_try_return, - [_][]const u8{ - // debug - \\error: TheSkyIsFalling - \\source.zig:4:5: [address] in foo (test) - \\source.zig:8:5: [address] in main (test) - \\ - , - // release-safe - \\error: TheSkyIsFalling - \\source.zig:4:5: [address] in std.special.posixCallMainAndExit (test) - \\source.zig:8:5: [address] in std.special.posixCallMainAndExit (test) - \\ - , - // release-fast - \\error: TheSkyIsFalling - \\ - , - // release-small - \\error: TheSkyIsFalling - \\ - }, - ); - cases.addCase( - "try try return return", - source_try_try_return_return, - [_][]const u8{ - // debug - \\error: TheSkyIsFalling - \\source.zig:12:5: [address] in make_error (test) - \\source.zig:8:5: [address] in bar (test) - \\source.zig:4:5: [address] in foo (test) - \\source.zig:16:5: [address] in main (test) - \\ - , - // release-safe - \\error: TheSkyIsFalling - \\source.zig:12:5: [address] in std.special.posixCallMainAndExit (test) - \\source.zig:8:5: [address] in std.special.posixCallMainAndExit (test) - \\source.zig:4:5: [address] in std.special.posixCallMainAndExit (test) - \\source.zig:16:5: [address] in std.special.posixCallMainAndExit (test) - \\ - , - // release-fast - \\error: TheSkyIsFalling - \\ - , - // release-small - \\error: TheSkyIsFalling - \\ - }, - ); - }, - .macosx => { - cases.addCase( - "return", - source_return, - [_][]const u8{ - // debug - \\error: TheSkyIsFalling - \\source.zig:4:5: [address] in _main.0 (test.o) - \\ - , - // release-safe - \\error: TheSkyIsFalling - \\source.zig:4:5: [address] in _main (test.o) - \\ - , - // release-fast - \\error: TheSkyIsFalling - \\ - , - // release-small - \\error: TheSkyIsFalling - \\ - }, - ); - cases.addCase( - "try return", - source_try_return, - [_][]const u8{ - // debug - \\error: TheSkyIsFalling - \\source.zig:4:5: [address] in _foo (test.o) - \\source.zig:8:5: [address] in _main.0 (test.o) - \\ - , - // release-safe - \\error: TheSkyIsFalling - \\source.zig:4:5: [address] in _main (test.o) - \\source.zig:8:5: [address] in _main (test.o) - \\ - , - // release-fast - \\error: TheSkyIsFalling - \\ - , - // release-small - \\error: TheSkyIsFalling - \\ - }, - ); - cases.addCase( - "try try return return", - source_try_try_return_return, - [_][]const u8{ - // debug - \\error: TheSkyIsFalling - \\source.zig:12:5: [address] in _make_error (test.o) - \\source.zig:8:5: [address] in _bar (test.o) - \\source.zig:4:5: [address] in _foo (test.o) - \\source.zig:16:5: [address] in _main.0 (test.o) - \\ - , - // release-safe - \\error: TheSkyIsFalling - \\source.zig:12:5: [address] in _main (test.o) - \\source.zig:8:5: [address] in _main (test.o) - \\source.zig:4:5: [address] in _main (test.o) - \\source.zig:16:5: [address] in _main (test.o) - \\ - , - // release-fast - \\error: TheSkyIsFalling - \\ - , - // release-small - \\error: TheSkyIsFalling - \\ - }, - ); - }, - .windows => { - cases.addCase( - "return", - source_return, - [_][]const u8{ - // debug - \\error: TheSkyIsFalling - \\source.zig:4:5: [address] in main (test.obj) - \\ - , - // release-safe - // --disabled-- results in segmenetation fault - "", - // release-fast - \\error: TheSkyIsFalling - \\ - , - // release-small - \\error: TheSkyIsFalling - \\ - }, - ); - cases.addCase( - "try return", - source_try_return, - [_][]const u8{ - // debug - \\error: TheSkyIsFalling - \\source.zig:4:5: [address] in foo (test.obj) - \\source.zig:8:5: [address] in main (test.obj) - \\ - , - // release-safe - // --disabled-- results in segmenetation fault - "", - // release-fast - \\error: TheSkyIsFalling - \\ - , - // release-small - \\error: TheSkyIsFalling - \\ - }, - ); - cases.addCase( - "try try return return", - source_try_try_return_return, - [_][]const u8{ - // debug - \\error: TheSkyIsFalling - \\source.zig:12:5: [address] in make_error (test.obj) - \\source.zig:8:5: [address] in bar (test.obj) - \\source.zig:4:5: [address] in foo (test.obj) - \\source.zig:16:5: [address] in main (test.obj) - \\ - , - // release-safe - // --disabled-- results in segmenetation fault - "", - // release-fast - \\error: TheSkyIsFalling - \\ - , - // release-small - \\error: TheSkyIsFalling - \\ - }, - ); - }, - else => {}, - } -} diff --git a/test/stack_traces.zig b/test/stack_traces.zig @@ -0,0 +1,274 @@ +const builtin = @import("builtin"); +const std = @import("std"); +const os = std.os; +const tests = @import("tests.zig"); + +pub fn addCases(cases: *tests.StackTracesContext) void { + const source_return = + \\const std = @import("std"); + \\ + \\pub fn main() !void { + \\ return error.TheSkyIsFalling; + \\} + ; + const source_try_return = + \\const std = @import("std"); + \\ + \\fn foo() !void { + \\ return error.TheSkyIsFalling; + \\} + \\ + \\pub fn main() !void { + \\ try foo(); + \\} + ; + const source_try_try_return_return = + \\const std = @import("std"); + \\ + \\fn foo() !void { + \\ try bar(); + \\} + \\ + \\fn bar() !void { + \\ return make_error(); + \\} + \\ + \\fn make_error() !void { + \\ return error.TheSkyIsFalling; + \\} + \\ + \\pub fn main() !void { + \\ try foo(); + \\} + ; + switch (builtin.os) { + .linux => { + cases.addCase( + "return", + source_return, + [_][]const u8{ + // debug + \\error: TheSkyIsFalling + \\source.zig:4:5: [address] in main (test) + \\ + , + // release-safe + \\error: TheSkyIsFalling + \\source.zig:4:5: [address] in std.special.posixCallMainAndExit (test) + \\ + , + // release-fast + \\error: TheSkyIsFalling + \\ + , + // release-small + \\error: TheSkyIsFalling + \\ + }, + ); + cases.addCase( + "try return", + source_try_return, + [_][]const u8{ + // debug + \\error: TheSkyIsFalling + \\source.zig:4:5: [address] in foo (test) + \\source.zig:8:5: [address] in main (test) + \\ + , + // release-safe + \\error: TheSkyIsFalling + \\source.zig:4:5: [address] in std.special.posixCallMainAndExit (test) + \\source.zig:8:5: [address] in std.special.posixCallMainAndExit (test) + \\ + , + // release-fast + \\error: TheSkyIsFalling + \\ + , + // release-small + \\error: TheSkyIsFalling + \\ + }, + ); + cases.addCase( + "try try return return", + source_try_try_return_return, + [_][]const u8{ + // debug + \\error: TheSkyIsFalling + \\source.zig:12:5: [address] in make_error (test) + \\source.zig:8:5: [address] in bar (test) + \\source.zig:4:5: [address] in foo (test) + \\source.zig:16:5: [address] in main (test) + \\ + , + // release-safe + \\error: TheSkyIsFalling + \\source.zig:12:5: [address] in std.special.posixCallMainAndExit (test) + \\source.zig:8:5: [address] in std.special.posixCallMainAndExit (test) + \\source.zig:4:5: [address] in std.special.posixCallMainAndExit (test) + \\source.zig:16:5: [address] in std.special.posixCallMainAndExit (test) + \\ + , + // release-fast + \\error: TheSkyIsFalling + \\ + , + // release-small + \\error: TheSkyIsFalling + \\ + }, + ); + }, + .macosx => { + cases.addCase( + "return", + source_return, + [_][]const u8{ + // debug + \\error: TheSkyIsFalling + \\source.zig:4:5: [address] in _main.0 (test.o) + \\ + , + // release-safe + \\error: TheSkyIsFalling + \\source.zig:4:5: [address] in _main (test.o) + \\ + , + // release-fast + \\error: TheSkyIsFalling + \\ + , + // release-small + \\error: TheSkyIsFalling + \\ + }, + ); + cases.addCase( + "try return", + source_try_return, + [_][]const u8{ + // debug + \\error: TheSkyIsFalling + \\source.zig:4:5: [address] in _foo (test.o) + \\source.zig:8:5: [address] in _main.0 (test.o) + \\ + , + // release-safe + \\error: TheSkyIsFalling + \\source.zig:4:5: [address] in _main (test.o) + \\source.zig:8:5: [address] in _main (test.o) + \\ + , + // release-fast + \\error: TheSkyIsFalling + \\ + , + // release-small + \\error: TheSkyIsFalling + \\ + }, + ); + cases.addCase( + "try try return return", + source_try_try_return_return, + [_][]const u8{ + // debug + \\error: TheSkyIsFalling + \\source.zig:12:5: [address] in _make_error (test.o) + \\source.zig:8:5: [address] in _bar (test.o) + \\source.zig:4:5: [address] in _foo (test.o) + \\source.zig:16:5: [address] in _main.0 (test.o) + \\ + , + // release-safe + \\error: TheSkyIsFalling + \\source.zig:12:5: [address] in _main (test.o) + \\source.zig:8:5: [address] in _main (test.o) + \\source.zig:4:5: [address] in _main (test.o) + \\source.zig:16:5: [address] in _main (test.o) + \\ + , + // release-fast + \\error: TheSkyIsFalling + \\ + , + // release-small + \\error: TheSkyIsFalling + \\ + }, + ); + }, + .windows => { + cases.addCase( + "return", + source_return, + [_][]const u8{ + // debug + \\error: TheSkyIsFalling + \\source.zig:4:5: [address] in main (test.obj) + \\ + , + // release-safe + // --disabled-- results in segmenetation fault + "", + // release-fast + \\error: TheSkyIsFalling + \\ + , + // release-small + \\error: TheSkyIsFalling + \\ + }, + ); + cases.addCase( + "try return", + source_try_return, + [_][]const u8{ + // debug + \\error: TheSkyIsFalling + \\source.zig:4:5: [address] in foo (test.obj) + \\source.zig:8:5: [address] in main (test.obj) + \\ + , + // release-safe + // --disabled-- results in segmenetation fault + "", + // release-fast + \\error: TheSkyIsFalling + \\ + , + // release-small + \\error: TheSkyIsFalling + \\ + }, + ); + cases.addCase( + "try try return return", + source_try_try_return_return, + [_][]const u8{ + // debug + \\error: TheSkyIsFalling + \\source.zig:12:5: [address] in make_error (test.obj) + \\source.zig:8:5: [address] in bar (test.obj) + \\source.zig:4:5: [address] in foo (test.obj) + \\source.zig:16:5: [address] in main (test.obj) + \\ + , + // release-safe + // --disabled-- results in segmenetation fault + "", + // release-fast + \\error: TheSkyIsFalling + \\ + , + // release-small + \\error: TheSkyIsFalling + \\ + }, + ); + }, + else => {}, + } +} diff --git a/test/tests.zig b/test/tests.zig @@ -16,7 +16,7 @@ const LibExeObjStep = build.LibExeObjStep; const compare_output = @import("compare_output.zig"); const standalone = @import("standalone.zig"); -const compare_panic = @import("compare_traces.zig"); +const stack_traces = @import("stack_traces.zig"); const compile_errors = @import("compile_errors.zig"); const assemble_and_link = @import("assemble_and_link.zig"); const runtime_safety = @import("runtime_safety.zig"); @@ -58,17 +58,17 @@ pub fn addCompareOutputTests(b: *build.Builder, test_filter: ?[]const u8, modes: return cases.step; } -pub fn addCompareStackTracesTests(b: *build.Builder, test_filter: ?[]const u8, modes: []const Mode) *build.Step { - const cases = b.allocator.create(CompareStackTracesContext) catch unreachable; - cases.* = CompareStackTracesContext{ +pub fn addStackTraceTests(b: *build.Builder, test_filter: ?[]const u8, modes: []const Mode) *build.Step { + const cases = b.allocator.create(StackTracesContext) catch unreachable; + cases.* = StackTracesContext{ .b = b, - .step = b.step("test-compare-traces", "Run the compare stack traces tests"), + .step = b.step("test-stack-traces", "Run the stack trace tests"), .test_index = 0, .test_filter = test_filter, .modes = modes, }; - compare_panic.addCases(cases); + stack_traces.addCases(cases); return cases.step; } @@ -565,7 +565,7 @@ pub const CompareOutputContext = struct { } }; -pub const CompareStackTracesContext = struct { +pub const StackTracesContext = struct { b: *build.Builder, step: *build.Step, test_index: usize, @@ -575,7 +575,7 @@ pub const CompareStackTracesContext = struct { const Expect = [@typeInfo(Mode).Enum.fields.len][]const u8; pub fn addCase( - self: *CompareStackTracesContext, + self: *StackTracesContext, name: []const u8, source: []const u8, expect: Expect, @@ -591,7 +591,7 @@ pub const CompareStackTracesContext = struct { const expect_for_mode = expect[@enumToInt(mode)]; if (expect_for_mode.len == 0) continue; - const annotated_case_name = fmt.allocPrint(self.b.allocator, "{} {} ({})", "compare-stack-traces", name, @tagName(mode)) catch unreachable; + const annotated_case_name = fmt.allocPrint(self.b.allocator, "{} {} ({})", "stack-trace", name, @tagName(mode)) catch unreachable; if (self.test_filter) |filter| { if (mem.indexOf(u8, annotated_case_name, filter) == null) continue; } @@ -616,7 +616,7 @@ pub const CompareStackTracesContext = struct { const RunAndCompareStep = struct { step: build.Step, - context: *CompareStackTracesContext, + context: *StackTracesContext, exe: *LibExeObjStep, name: []const u8, mode: Mode, @@ -624,7 +624,7 @@ pub const CompareStackTracesContext = struct { test_index: usize, pub fn create( - context: *CompareStackTracesContext, + context: *StackTracesContext, exe: *LibExeObjStep, name: []const u8, mode: Mode,