std.json: unreachable -> expect in tests

This commit is contained in:
xackus 2020-12-05 11:10:44 +01:00 committed by Andrew Kelley
parent 8ac711596d
commit 21550bb7cd

View File

@ -9,60 +9,47 @@
// Read also http://seriot.ch/parsing_json.php for a good overview.
const std = @import("../std.zig");
const json = std.json;
const testing = std.testing;
fn ok(comptime s: []const u8) void {
std.testing.expect(std.json.validate(s));
var p = std.json.Parser.init(std.testing.allocator, false);
fn testNonStreaming(comptime s: []const u8) !void {
var p = json.Parser.init(testing.allocator, false);
defer p.deinit();
var tree = p.parse(s) catch unreachable;
var tree = try p.parse(s);
defer tree.deinit();
}
fn ok(comptime s: []const u8) void {
testing.expect(json.validate(s));
testNonStreaming(s) catch testing.expect(false);
}
fn err(comptime s: []const u8) void {
std.testing.expect(!std.json.validate(s));
testing.expect(!json.validate(s));
var p = std.json.Parser.init(std.testing.allocator, false);
defer p.deinit();
if (p.parse(s)) |_| {
unreachable;
} else |_| {}
testNonStreaming(s) catch return;
testing.expect(false);
}
fn utf8Error(comptime s: []const u8) void {
std.testing.expect(!std.json.validate(s));
testing.expect(!json.validate(s));
var p = std.json.Parser.init(std.testing.allocator, false);
defer p.deinit();
if (p.parse(s)) |_| {
unreachable;
} else |e| {
std.testing.expect(e == error.InvalidUtf8Byte);
}
testing.expectError(error.InvalidUtf8Byte, testNonStreaming(s));
}
fn any(comptime s: []const u8) void {
_ = std.json.validate(s);
_ = json.validate(s);
var p = std.json.Parser.init(std.testing.allocator, false);
defer p.deinit();
var tree = p.parse(s) catch return;
defer tree.deinit();
testNonStreaming(s) catch {};
}
fn anyStreamingErrNonStreaming(comptime s: []const u8) void {
_ = std.json.validate(s);
_ = json.validate(s);
var p = std.json.Parser.init(std.testing.allocator, false);
defer p.deinit();
if (p.parse(s)) |_| {
unreachable;
} else |_| {}
testNonStreaming(s) catch return;
testing.expect(false);
}
////////////////////////////////////////////////////////////////////////////////////////////////////