authorgravatar for noam@pixelhero.devNoam Preil <noam@pixelhero.dev> 2020-05-25 16:15:39-04:00
committergravatar for noam@pixelhero.devNoam Preil <noam@pixelhero.dev> 2020-06-15 17:51:43-04:00
loge030414c163c6f9a3c2fc8291b2d5917e78688de
tree443245a8d7da9ead9692f2c7c113ff732bb1cec3
parentf2399db3ef3cc3951210f7047ddd688f17f7f59c
signature Commit is signed but in an unrecognized format.

[Stage2/Testing] Always finish case, note all errs


1 files changed, 25 insertions(+), 9 deletions(-)

src-self-hosted/test.zig+25-9
......@@ -363,25 +363,30 @@ pub const TestContext = struct {
363363 break :f false;
364364 };
365365 module_node.end();
366 var err: ?anyerror = null;
366367 {
367368 var i = module.failed_files.iterator();
368369 var index: usize = 0;
369370 while (i.next()) |pair| : (index += 1) {
370371 if (index == case.expected_file_errors.len) {
371372 std.debug.warn("Unexpected file error: {}\n", .{pair.value});
372 return error.UnexpectedError;
373 err = error.UnexpectedError;
373374 }
374375 const v1 = pair.value.*;
375376 const v2 = case.expected_file_errors[index];
376377 if (v1.byte_offset != v2.byte_offset) {
377378 std.debug.warn("Expected error at {}, found it at {}\n", .{ v2.byte_offset, v1.byte_offset });
378 return error.ExpectedErrorElsewhere;
379 err = error.ExpectedErrorElsewhere;
379380 }
380381 if (!std.mem.eql(u8, v1.msg, v2.msg)) {
381382 std.debug.warn("Expected '{}', found '{}'\n", .{ v2.msg, v1.msg });
382 return error.ExpectedOtherError;
383 err = error.ExpectedOtherError;
383384 }
384385 }
386 if (index != case.expected_file_errors.len) {
387 std.debug.warn("Expected an error ('{}'), but did not receive it\n", .{case.expected_file_errors[index]});
388 err = error.MissingError;
389 }
385390 }
386391 {
387392 var i = module.failed_decls.iterator();
......@@ -389,19 +394,23 @@ pub const TestContext = struct {
389394 while (i.next()) |pair| : (index += 1) {
390395 if (index == case.expected_decl_errors.len) {
391396 std.debug.warn("Unexpected decl error: {}\n", .{pair.value});
392 return error.UnexpectedError;
397 err = error.UnexpectedError;
393398 }
394399 const v1 = pair.value.*;
395400 const v2 = case.expected_decl_errors[index];
396401 if (v1.byte_offset != v2.byte_offset) {
397402 std.debug.warn("Expected error at {}, found it at {}\n", .{ v2.byte_offset, v1.byte_offset });
398 return error.ExpectedErrorElsewhere;
403 err = error.ExpectedErrorElsewhere;
399404 }
400405 if (!std.mem.eql(u8, v1.msg, v2.msg)) {
401406 std.debug.warn("Expected '{}', found '{}'\n", .{ v2.msg, v1.msg });
402 return error.ExpectedOtherError;
407 err = error.ExpectedOtherError;
403408 }
404409 }
410 if (index != case.expected_decl_errors.len) {
411 std.debug.warn("Expected an error ('{}'), but did not receive it\n", .{case.expected_decl_errors[index]});
412 err = error.MissingError;
413 }
405414 }
406415 {
407416 var i = module.failed_exports.iterator();
......@@ -409,19 +418,26 @@ pub const TestContext = struct {
409418 while (i.next()) |pair| : (index += 1) {
410419 if (index == case.expected_export_errors.len) {
411420 std.debug.warn("Unexpected export error: {}\n", .{pair.value});
412 return error.UnexpectedError;
421 err = error.UnexpectedError;
413422 }
414423 const v1 = pair.value.*;
415424 const v2 = case.expected_export_errors[index];
416425 if (v1.byte_offset != v2.byte_offset) {
417426 std.debug.warn("Expected error at {}, found it at {}\n", .{ v2.byte_offset, v1.byte_offset });
418 return error.ExpectedErrorElsewhere;
427 err = error.ExpectedErrorElsewhere;
419428 }
420429 if (!std.mem.eql(u8, v1.msg, v2.msg)) {
421430 std.debug.warn("Expected '{}', found '{}'\n", .{ v2.msg, v1.msg });
422 return error.ExpectedOtherError;
431 err = error.ExpectedOtherError;
423432 }
424433 }
434 if (index != case.expected_export_errors.len) {
435 std.debug.warn("Expected an error ('{}'), but did not receive it\n", .{case.expected_export_errors[index]});
436 err = error.MissingError;
437 }
438 }
439 if (err) |e| {
440 return e;
425441 }
426442 }
427443};