[Stage2/Testing] Handle decl and export errors

This commit is contained in:
Noam Preil
2020-05-27 11:54:04 -04:00
parent 68cc068a3a
commit bf8b3a4394

View File

@@ -446,6 +446,46 @@ pub const TestContext = struct {
}
}
}
{
var i = module.failed_decls.iterator();
while (i.next()) |pair| {
const v1 = pair.value.*;
var handled = false;
for (case.expected_errors) |e, index| {
if (!handled_errors[index]) {
if (v1.byte_offset == e.byte_offset and std.mem.eql(u8, v1.msg, e.msg)) {
handled_errors[index] = true;
handled = true;
break;
}
}
}
if (!handled) {
err = error.UnexpectedError;
std.debug.warn("Unexpected decl error: {}\n", .{v1});
}
}
}
{
var i = module.failed_exports.iterator();
while (i.next()) |pair| {
const v1 = pair.value.*;
var handled = false;
for (case.expected_errors) |e, index| {
if (!handled_errors[index]) {
if (v1.byte_offset == e.byte_offset and std.mem.eql(u8, v1.msg, e.msg)) {
handled_errors[index] = true;
handled = true;
break;
}
}
}
if (!handled) {
err = error.UnexpectedError;
std.debug.warn("Unexpected export error: {}\n", .{v1});
}
}
}
for (handled_errors) |e, i| {
if (!e) {
err = error.MissingExpectedError;