aboutsummaryrefslogtreecommitdiff
path: root/lib/std/json/dynamic_test.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-07-18 19:32:42 -0700
committerAndrew Kelley <andrew@ziglang.org>2025-07-19 16:05:01 -0700
commitc30df072bde3794ea5f3794d93f69e13640c6b7a (patch)
tree832ab5f7947e9dcc1d8d4fb792ce240c773b0cd0 /lib/std/json/dynamic_test.zig
parenta288266f3310e9ba98456c5e968f8ce434be6cc7 (diff)
downloadzig-c30df072bde3794ea5f3794d93f69e13640c6b7a.tar.gz
zig-c30df072bde3794ea5f3794d93f69e13640c6b7a.zip
std.json: update to new I/O API
also do a little bit of namespace cleanup
Diffstat (limited to 'lib/std/json/dynamic_test.zig')
-rw-r--r--lib/std/json/dynamic_test.zig40
1 files changed, 18 insertions, 22 deletions
diff --git a/lib/std/json/dynamic_test.zig b/lib/std/json/dynamic_test.zig
index 1362e3cfad..9d991f2c50 100644
--- a/lib/std/json/dynamic_test.zig
+++ b/lib/std/json/dynamic_test.zig
@@ -1,8 +1,10 @@
const std = @import("std");
+const json = std.json;
const mem = std.mem;
const testing = std.testing;
const ArenaAllocator = std.heap.ArenaAllocator;
const Allocator = std.mem.Allocator;
+const Writer = std.io.Writer;
const ObjectMap = @import("dynamic.zig").ObjectMap;
const Array = @import("dynamic.zig").Array;
@@ -14,8 +16,7 @@ const parseFromTokenSource = @import("static.zig").parseFromTokenSource;
const parseFromValueLeaky = @import("static.zig").parseFromValueLeaky;
const ParseOptions = @import("static.zig").ParseOptions;
-const jsonReader = @import("scanner.zig").reader;
-const JsonReader = @import("scanner.zig").Reader;
+const Scanner = @import("Scanner.zig");
test "json.parser.dynamic" {
const s =
@@ -70,14 +71,10 @@ test "json.parser.dynamic" {
try testing.expect(mem.eql(u8, large_int.number_string, "18446744073709551615"));
}
-const writeStream = @import("./stringify.zig").writeStream;
test "write json then parse it" {
var out_buffer: [1000]u8 = undefined;
-
- var fixed_buffer_stream = std.io.fixedBufferStream(&out_buffer);
- const out_stream = fixed_buffer_stream.writer();
- var jw = writeStream(out_stream, .{});
- defer jw.deinit();
+ var fixed_writer: Writer = .fixed(&out_buffer);
+ var jw: json.Stringify = .{ .writer = &fixed_writer, .options = .{} };
try jw.beginObject();
@@ -101,8 +98,8 @@ test "write json then parse it" {
try jw.endObject();
- fixed_buffer_stream = std.io.fixedBufferStream(fixed_buffer_stream.getWritten());
- var json_reader = jsonReader(testing.allocator, fixed_buffer_stream.reader());
+ var fbs: std.Io.Reader = .fixed(fixed_writer.buffered());
+ var json_reader: Scanner.Reader = .init(testing.allocator, &fbs);
defer json_reader.deinit();
var parsed = try parseFromTokenSource(Value, testing.allocator, &json_reader, .{});
defer parsed.deinit();
@@ -242,10 +239,9 @@ test "Value.jsonStringify" {
.{ .object = obj },
};
var buffer: [0x1000]u8 = undefined;
- var fbs = std.io.fixedBufferStream(&buffer);
+ var fixed_writer: Writer = .fixed(&buffer);
- var jw = writeStream(fbs.writer(), .{ .whitespace = .indent_1 });
- defer jw.deinit();
+ var jw: json.Stringify = .{ .writer = &fixed_writer, .options = .{ .whitespace = .indent_1 } };
try jw.write(array);
const expected =
@@ -266,7 +262,7 @@ test "Value.jsonStringify" {
\\ }
\\]
;
- try testing.expectEqualStrings(expected, fbs.getWritten());
+ try testing.expectEqualStrings(expected, fixed_writer.buffered());
}
test "parseFromValue(std.json.Value,...)" {
@@ -334,8 +330,8 @@ test "polymorphic parsing" {
test "long object value" {
const value = "01234567890123456789";
const doc = "{\"key\":\"" ++ value ++ "\"}";
- var fbs = std.io.fixedBufferStream(doc);
- var reader = smallBufferJsonReader(testing.allocator, fbs.reader());
+ var fbs: std.Io.Reader = .fixed(doc);
+ var reader = smallBufferJsonReader(testing.allocator, &fbs);
defer reader.deinit();
var parsed = try parseFromTokenSource(Value, testing.allocator, &reader, .{});
defer parsed.deinit();
@@ -367,8 +363,8 @@ test "many object keys" {
\\ "k5": "v5"
\\}
;
- var fbs = std.io.fixedBufferStream(doc);
- var reader = smallBufferJsonReader(testing.allocator, fbs.reader());
+ var fbs: std.Io.Reader = .fixed(doc);
+ var reader = smallBufferJsonReader(testing.allocator, &fbs);
defer reader.deinit();
var parsed = try parseFromTokenSource(Value, testing.allocator, &reader, .{});
defer parsed.deinit();
@@ -382,8 +378,8 @@ test "many object keys" {
test "negative zero" {
const doc = "-0";
- var fbs = std.io.fixedBufferStream(doc);
- var reader = smallBufferJsonReader(testing.allocator, fbs.reader());
+ var fbs: std.Io.Reader = .fixed(doc);
+ var reader = smallBufferJsonReader(testing.allocator, &fbs);
defer reader.deinit();
var parsed = try parseFromTokenSource(Value, testing.allocator, &reader, .{});
defer parsed.deinit();
@@ -391,6 +387,6 @@ test "negative zero" {
try testing.expect(std.math.isNegativeZero(parsed.value.float));
}
-fn smallBufferJsonReader(allocator: Allocator, io_reader: anytype) JsonReader(16, @TypeOf(io_reader)) {
- return JsonReader(16, @TypeOf(io_reader)).init(allocator, io_reader);
+fn smallBufferJsonReader(allocator: Allocator, io_reader: anytype) Scanner.Reader {
+ return .init(allocator, io_reader);
}