From 72db7f53e47e9c3840b15383da4dc3905f62e77d Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Sun, 19 Oct 2025 00:50:49 +0200 Subject: json: Fix ostream writer Wrote boolean as 1 and 0. Also improve test code coverage. --- test/json.cc | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'test') diff --git a/test/json.cc b/test/json.cc index 2fc7ad2..81cf7d6 100644 --- a/test/json.cc +++ b/test/json.cc @@ -203,6 +203,20 @@ TEST_P(Writer, quote3) { EXPECT_EQ(R"("\n")", str()); } +TEST_P(Writer, quote4) { + auto writer = make(); + writer->value("\r\n\t\b\f"); + + EXPECT_EQ(R"("\r\n\t\b\f")", str()); +} + +TEST_P(Writer, quote5) { + auto writer = make(); + writer->value("\x0f"); + + EXPECT_EQ(R"("\u000f")", str()); +} + TEST_P(Writer, float) { auto writer = make(); writer->value(3.14F); @@ -217,5 +231,35 @@ TEST_P(Writer, double) { EXPECT_EQ("3.14", str()); } +TEST_P(Writer, uint64) { + auto writer = make(); + writer->value(static_cast(1000)); + + EXPECT_EQ("1000", str()); +} + +TEST_P(Writer, bool) { + auto writer = make(); + writer->value(true); + + EXPECT_EQ("true", str()); +} + +TEST_P(Writer, clear) { + auto writer = make(); + writer->value(true); + writer->clear(); + writer->value(false); + + switch (GetParam()) { + case Output::String: + EXPECT_EQ("false", str()); + break; + case Output::Stream: + EXPECT_EQ("truefalse", str()); + break; + } +} + INSTANTIATE_TEST_SUITE_P(AllOutputs, Writer, testing::Values(Output::String, Output::Stream)); -- cgit v1.2.3-70-g09d2