commit fa57463bb9c09ee1e50012d7e50d120e1599fb81 (tree)
parent 80d0c2f166311c82ddb48c093df508c063973d02
Author: Vexu <git@vexu.eu>
Date: Tue, 12 May 2020 21:44:08 +0300
make parser testError take a list of expected errors
Diffstat:
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig
@@ -19,7 +19,9 @@ test "zig fmt: decl between fields" {
\\ const baz1 = 2;
\\ b: usize,
\\};
- );
+ , &[_]Error{
+ .DeclBetweenFields,
+ });
}
test "zig fmt: errdefer with payload" {
@@ -2828,7 +2830,9 @@ test "zig fmt: extern without container keyword returns error" {
try testError(
\\const container = extern {};
\\
- );
+ , &[_]Error{
+ .ExpectedExpr,
+ });
}
test "zig fmt: integer literals with underscore separators" {
@@ -3030,9 +3034,17 @@ fn testTransform(source: []const u8, expected_source: []const u8) !void {
fn testCanonical(source: []const u8) !void {
return testTransform(source, source);
}
-fn testError(source: []const u8) !void {
+
+const Error = @TagType(std.zig.ast.Error);
+
+fn testError(source: []const u8, expected_errors: []const Error) !void {
const tree = try std.zig.parse(std.testing.allocator, source);
defer tree.deinit();
- std.testing.expect(tree.errors.len != 0);
+ std.testing.expect(tree.errors.len == expected_errors.len);
+ for (expected_errors) |expected, i| {
+ const err = tree.errors.at(i);
+
+ std.testing.expect(expected == err.*);
+ }
}