diff options
| author | Noam Preil <pleasantatk@gmail.com> | 2020-07-07 16:47:39 -0400 |
|---|---|---|
| committer | Noam Preil <pleasantatk@gmail.com> | 2020-07-07 16:47:39 -0400 |
| commit | aaaebfe97fa876356c22469001c6511dbdb8354d (patch) | |
| tree | 2107dadbdb3b476305da4c47ebe13eef6c45c8c4 | |
| parent | a17200dab1b0b373e85c6c2cc266078012a81948 (diff) | |
| download | zig-aaaebfe97fa876356c22469001c6511dbdb8354d.tar.gz zig-aaaebfe97fa876356c22469001c6511dbdb8354d.zip | |
Detect unexpected compilation errors in tests
| -rw-r--r-- | src-self-hosted/test.zig | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src-self-hosted/test.zig b/src-self-hosted/test.zig index ce20c172cf..0a4e9708ac 100644 --- a/src-self-hosted/test.zig +++ b/src-self-hosted/test.zig @@ -462,6 +462,19 @@ pub const TestContext = struct { try module.update(); module_node.end(); + if (update.case != .Error) { + var all_errors = try module.getAllErrorsAlloc(); + defer all_errors.deinit(allocator); + if (all_errors.list.len != 0) { + std.debug.warn("\nErrors occurred updating the module:\n================\n", .{}); + for (all_errors.list) |err| { + std.debug.warn(":{}:{}: error: {}\n================\n", .{ err.line + 1, err.column + 1, err.msg }); + } + std.debug.warn("Test failed.\n", .{}); + std.process.exit(1); + } + } + switch (update.case) { .Transformation => |expected_output| { var label: []const u8 = "ZIR"; @@ -472,13 +485,13 @@ pub const TestContext = struct { defer allocator.free(out); if (expected_output.len != out.len) { - std.debug.warn("{}\nTransformed {} length differs:\n================\nExpected:\n================\n{}\n================\nFound:\n================\n{}\n================\nTest failed.\n", .{ case.name, label, expected_output, out }); + std.debug.warn("\nTransformed {} length differs:\n================\nExpected:\n================\n{}\n================\nFound:\n================\n{}\n================\nTest failed.\n", .{ label, expected_output, out }); std.process.exit(1); } for (expected_output) |e, i| { if (out[i] != e) { if (expected_output.len != out.len) { - std.debug.warn("{}\nTransformed {} differs:\n================\nExpected:\n================\n{}\n================\nFound:\n================\n{}\n================\nTest failed.\n", .{ case.name, label, expected_output, out }); + std.debug.warn("\nTransformed {} differs:\n================\nExpected:\n================\n{}\n================\nFound:\n================\n{}\n================\nTest failed.\n", .{ label, expected_output, out }); std.process.exit(1); } } |
