std.debug.assert: remove special case for test builds
Previously, std.debug.assert would `@panic` in test builds, if the assertion failed. Now, it's always `unreachable`. This makes release mode test builds more accurately test the actual code that will be run. However this requires tests to call `std.testing.expect` rather than `std.debug.assert` to make sure output is correct. Here is the explanation of when to use either one, copied from the assert doc comments: Inside a test block, it is best to use the `std.testing` module rather than assert, because assert may not detect a test failure in ReleaseFast and ReleaseSafe mode. Outside of a test block, assert is the correct function to use. closes #1304
This commit is contained in:
@@ -1940,7 +1940,7 @@ fn testTransform(source: []const u8, expected_source: []const u8) !void {
|
||||
warn("std.zig.render returned {} instead of {}\n", anything_changed, changes_expected);
|
||||
return error.TestFailed;
|
||||
}
|
||||
std.debug.assert(anything_changed == changes_expected);
|
||||
std.testing.expect(anything_changed == changes_expected);
|
||||
failing_allocator.allocator.free(result_source);
|
||||
break :x failing_allocator.index;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user