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 {...@@ -363,25 +363,30 @@ pub const TestContext = struct {
363 break :f false;363 break :f false;
364 };364 };
365 module_node.end();365 module_node.end();
366 var err: ?anyerror = null;
366 {367 {
367 var i = module.failed_files.iterator();368 var i = module.failed_files.iterator();
368 var index: usize = 0;369 var index: usize = 0;
369 while (i.next()) |pair| : (index += 1) {370 while (i.next()) |pair| : (index += 1) {
370 if (index == case.expected_file_errors.len) {371 if (index == case.expected_file_errors.len) {
371 std.debug.warn("Unexpected file error: {}\n", .{pair.value});372 std.debug.warn("Unexpected file error: {}\n", .{pair.value});
372 return error.UnexpectedError;373 err = error.UnexpectedError;
373 }374 }
374 const v1 = pair.value.*;375 const v1 = pair.value.*;
375 const v2 = case.expected_file_errors[index];376 const v2 = case.expected_file_errors[index];
376 if (v1.byte_offset != v2.byte_offset) {377 if (v1.byte_offset != v2.byte_offset) {
377 std.debug.warn("Expected error at {}, found it at {}\n", .{ v2.byte_offset, v1.byte_offset });378 std.debug.warn("Expected error at {}, found it at {}\n", .{ v2.byte_offset, v1.byte_offset });
378 return error.ExpectedErrorElsewhere;379 err = error.ExpectedErrorElsewhere;
379 }380 }
380 if (!std.mem.eql(u8, v1.msg, v2.msg)) {381 if (!std.mem.eql(u8, v1.msg, v2.msg)) {
381 std.debug.warn("Expected '{}', found '{}'\n", .{ v2.msg, v1.msg });382 std.debug.warn("Expected '{}', found '{}'\n", .{ v2.msg, v1.msg });
382 return error.ExpectedOtherError;383 err = error.ExpectedOtherError;
383 }384 }
384 }385 }
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 }
385 }390 }
386 {391 {
387 var i = module.failed_decls.iterator();392 var i = module.failed_decls.iterator();
...@@ -389,19 +394,23 @@ pub const TestContext = struct {...@@ -389,19 +394,23 @@ pub const TestContext = struct {
389 while (i.next()) |pair| : (index += 1) {394 while (i.next()) |pair| : (index += 1) {
390 if (index == case.expected_decl_errors.len) {395 if (index == case.expected_decl_errors.len) {
391 std.debug.warn("Unexpected decl error: {}\n", .{pair.value});396 std.debug.warn("Unexpected decl error: {}\n", .{pair.value});
392 return error.UnexpectedError;397 err = error.UnexpectedError;
393 }398 }
394 const v1 = pair.value.*;399 const v1 = pair.value.*;
395 const v2 = case.expected_decl_errors[index];400 const v2 = case.expected_decl_errors[index];
396 if (v1.byte_offset != v2.byte_offset) {401 if (v1.byte_offset != v2.byte_offset) {
397 std.debug.warn("Expected error at {}, found it at {}\n", .{ v2.byte_offset, v1.byte_offset });402 std.debug.warn("Expected error at {}, found it at {}\n", .{ v2.byte_offset, v1.byte_offset });
398 return error.ExpectedErrorElsewhere;403 err = error.ExpectedErrorElsewhere;
399 }404 }
400 if (!std.mem.eql(u8, v1.msg, v2.msg)) {405 if (!std.mem.eql(u8, v1.msg, v2.msg)) {
401 std.debug.warn("Expected '{}', found '{}'\n", .{ v2.msg, v1.msg });406 std.debug.warn("Expected '{}', found '{}'\n", .{ v2.msg, v1.msg });
402 return error.ExpectedOtherError;407 err = error.ExpectedOtherError;
403 }408 }
404 }409 }
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 }
405 }414 }
406 {415 {
407 var i = module.failed_exports.iterator();416 var i = module.failed_exports.iterator();
...@@ -409,19 +418,26 @@ pub const TestContext = struct {...@@ -409,19 +418,26 @@ pub const TestContext = struct {
409 while (i.next()) |pair| : (index += 1) {418 while (i.next()) |pair| : (index += 1) {
410 if (index == case.expected_export_errors.len) {419 if (index == case.expected_export_errors.len) {
411 std.debug.warn("Unexpected export error: {}\n", .{pair.value});420 std.debug.warn("Unexpected export error: {}\n", .{pair.value});
412 return error.UnexpectedError;421 err = error.UnexpectedError;
413 }422 }
414 const v1 = pair.value.*;423 const v1 = pair.value.*;
415 const v2 = case.expected_export_errors[index];424 const v2 = case.expected_export_errors[index];
416 if (v1.byte_offset != v2.byte_offset) {425 if (v1.byte_offset != v2.byte_offset) {
417 std.debug.warn("Expected error at {}, found it at {}\n", .{ v2.byte_offset, v1.byte_offset });426 std.debug.warn("Expected error at {}, found it at {}\n", .{ v2.byte_offset, v1.byte_offset });
418 return error.ExpectedErrorElsewhere;427 err = error.ExpectedErrorElsewhere;
419 }428 }
420 if (!std.mem.eql(u8, v1.msg, v2.msg)) {429 if (!std.mem.eql(u8, v1.msg, v2.msg)) {
421 std.debug.warn("Expected '{}', found '{}'\n", .{ v2.msg, v1.msg });430 std.debug.warn("Expected '{}', found '{}'\n", .{ v2.msg, v1.msg });
422 return error.ExpectedOtherError;431 err = error.ExpectedOtherError;
423 }432 }
424 }433 }
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;
425 }441 }
426 }442 }
427};443};