authorgravatar for noam@pixelhero.devNoam Preil <noam@pixelhero.dev> 2020-07-07 16:47:39-04:00
committergravatar for noam@pixelhero.devNoam Preil <noam@pixelhero.dev> 2020-07-07 16:47:39-04:00
logaaaebfe97fa876356c22469001c6511dbdb8354d
tree2107dadbdb3b476305da4c47ebe13eef6c45c8c4
parenta17200dab1b0b373e85c6c2cc266078012a81948
signaturelock-open Commit is signed but in an unrecognized format.

Detect unexpected compilation errors in tests


1 files changed, 15 insertions(+), 2 deletions(-)

src-self-hosted/test.zig+15-2
......@@ -462,6 +462,19 @@ pub const TestContext = struct {
462462 try module.update();
463463 module_node.end();
464464
465 if (update.case != .Error) {
466 var all_errors = try module.getAllErrorsAlloc();
467 defer all_errors.deinit(allocator);
468 if (all_errors.list.len != 0) {
469 std.debug.warn("\nErrors occurred updating the module:\n================\n", .{});
470 for (all_errors.list) |err| {
471 std.debug.warn(":{}:{}: error: {}\n================\n", .{ err.line + 1, err.column + 1, err.msg });
472 }
473 std.debug.warn("Test failed.\n", .{});
474 std.process.exit(1);
475 }
476 }
477
465478 switch (update.case) {
466479 .Transformation => |expected_output| {
467480 var label: []const u8 = "ZIR";
......@@ -472,13 +485,13 @@ pub const TestContext = struct {
472485 defer allocator.free(out);
473486
474487 if (expected_output.len != out.len) {
475 std.debug.warn("{}\nTransformed {} length differs:\n================\nExpected:\n================\n{}\n================\nFound:\n================\n{}\n================\nTest failed.\n", .{ case.name, label, expected_output, out });
488 std.debug.warn("\nTransformed {} length differs:\n================\nExpected:\n================\n{}\n================\nFound:\n================\n{}\n================\nTest failed.\n", .{ label, expected_output, out });
476489 std.process.exit(1);
477490 }
478491 for (expected_output) |e, i| {
479492 if (out[i] != e) {
480493 if (expected_output.len != out.len) {
481 std.debug.warn("{}\nTransformed {} differs:\n================\nExpected:\n================\n{}\n================\nFound:\n================\n{}\n================\nTest failed.\n", .{ case.name, label, expected_output, out });
494 std.debug.warn("\nTransformed {} differs:\n================\nExpected:\n================\n{}\n================\nFound:\n================\n{}\n================\nTest failed.\n", .{ label, expected_output, out });
482495 std.process.exit(1);
483496 }
484497 }