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:
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,