From b0bc23410f9c9b5b7ed496fdb699fb63146bf327 Mon Sep 17 00:00:00 2001 From: Falk Werner Date: Thu, 16 Jul 2020 17:08:44 +0200 Subject: [PATCH] added test of json writer --- lib/webfuse/impl/json/writer.c | 4 ++-- test/webfuse/json/test_writer.cc | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/webfuse/impl/json/writer.c b/lib/webfuse/impl/json/writer.c index 3ad4739..9f63966 100644 --- a/lib/webfuse/impl/json/writer.c +++ b/lib/webfuse/impl/json/writer.c @@ -263,12 +263,12 @@ wf_impl_json_write_bytes( size_t length) { size_t encoded_length = wf_impl_base64_encoded_size(length); - wf_impl_json_reserve(writer, length + WF_JSON_WRITER_ADDITIONAL_STRING_SIZE); + wf_impl_json_reserve(writer, encoded_length + WF_JSON_WRITER_ADDITIONAL_STRING_SIZE); wf_impl_json_begin_value(writer); wf_impl_json_write_raw_char(writer, '\"'); wf_impl_base64_encode((uint8_t const *) data, length, &(writer->data[writer->offset]), encoded_length); - writer->offset = encoded_length; + writer->offset += encoded_length; wf_impl_json_write_raw_char(writer, '\"'); wf_impl_json_end_value(writer); diff --git a/test/webfuse/json/test_writer.cc b/test/webfuse/json/test_writer.cc index 6575460..e9ea23b 100644 --- a/test/webfuse/json/test_writer.cc +++ b/test/webfuse/json/test_writer.cc @@ -200,7 +200,7 @@ TEST(json_writer, write_bytes) writer writer; wf_impl_json_write_bytes(writer, "\0\0", 2); - ASSERT_EQ("\"AAA\"", writer.take()); + ASSERT_EQ("\"AAA=\"", writer.take()); } TEST(json_writer, reset) @@ -238,10 +238,10 @@ TEST(json_writer, write_object_string_nocheck) { writer writer; wf_impl_json_write_object_begin(writer); - wf_impl_json_write_object_string(writer, "result", "Hello,\tWorld!"); + wf_impl_json_write_object_string_nocheck(writer, "result", "Hello,\tWorld!"); wf_impl_json_write_object_end(writer); - ASSERT_EQ("{\"result\": \"Hello,\tWorld!\"}", writer.take()); + ASSERT_EQ("{\"result\":\"Hello,\tWorld!\"}", writer.take()); } TEST(json_writer, write_object_bytes) @@ -251,7 +251,8 @@ TEST(json_writer, write_object_bytes) wf_impl_json_write_object_bytes(writer, "result", "\0\0", 2); wf_impl_json_write_object_end(writer); - ASSERT_EQ("{\"result\": \"AAA\"}", writer.take()); + + ASSERT_EQ("{\"result\":\"AAA=\"}", writer.take()); } TEST(json_writer, realloc_buffer) @@ -259,7 +260,7 @@ TEST(json_writer, realloc_buffer) writer writer(1); wf_impl_json_write_string(writer, "very large contents"); - ASSERT_EQ("very large contents", writer.take()); + ASSERT_EQ("\"very large contents\"", writer.take()); } TEST(json_writer, unexpected_end)