aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoam Preil <pleasantatk@gmail.com>2020-07-07 16:47:39 -0400
committerNoam Preil <pleasantatk@gmail.com>2020-07-07 16:47:39 -0400
commitaaaebfe97fa876356c22469001c6511dbdb8354d (patch)
tree2107dadbdb3b476305da4c47ebe13eef6c45c8c4
parenta17200dab1b0b373e85c6c2cc266078012a81948 (diff)
downloadzig-aaaebfe97fa876356c22469001c6511dbdb8354d.tar.gz
zig-aaaebfe97fa876356c22469001c6511dbdb8354d.zip
Detect unexpected compilation errors in tests
-rw-r--r--src-self-hosted/test.zig17
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);
}
}