aboutsummaryrefslogtreecommitdiff
path: root/lib/std/json/dynamic_test.zig
diff options
context:
space:
mode:
authorEugene-Dash <144539106+eugene-dash@users.noreply.github.com>2024-07-25 20:55:06 -0400
committerGitHub <noreply@github.com>2024-07-25 20:55:06 -0400
commit81a172a5064559d1f968f240204f8ce545852441 (patch)
treeddb1b9b2f70114f8c2e1e99319151922834a7176 /lib/std/json/dynamic_test.zig
parented847b85c284783c20efd4c4a565138b79d33e2c (diff)
downloadzig-81a172a5064559d1f968f240204f8ce545852441.tar.gz
zig-81a172a5064559d1f968f240204f8ce545852441.zip
Add `std.json.ParseOptions.parse_numbers` to preserve float precision (#20744)
Diffstat (limited to 'lib/std/json/dynamic_test.zig')
-rw-r--r--lib/std/json/dynamic_test.zig13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/std/json/dynamic_test.zig b/lib/std/json/dynamic_test.zig
index 9e181dea9c..45cdc0d0c7 100644
--- a/lib/std/json/dynamic_test.zig
+++ b/lib/std/json/dynamic_test.zig
@@ -149,6 +149,19 @@ test "integer after float has proper type" {
try std.testing.expect(parsed.object.get("ints").?.array.items[0] == .integer);
}
+test "ParseOptions.parse_numbers prevents parsing when false" {
+ var arena_allocator = std.heap.ArenaAllocator.init(std.testing.allocator);
+ defer arena_allocator.deinit();
+ const parsed = try parseFromSliceLeaky(Value, arena_allocator.allocator(),
+ \\{
+ \\ "float": 3.14,
+ \\ "int": 3
+ \\}
+ , .{ .parse_numbers = false });
+ try std.testing.expect(parsed.object.get("float").? == .number_string);
+ try std.testing.expect(parsed.object.get("int").? == .number_string);
+}
+
test "escaped characters" {
var arena_allocator = std.heap.ArenaAllocator.init(std.testing.allocator);
defer arena_allocator.deinit();