summaryrefslogtreecommitdiff
path: root/tests/json
diff options
context:
space:
mode:
authorJoshua Haberman <jhaberman@gmail.com>2019-01-09 22:40:50 -0800
committerJoshua Haberman <jhaberman@gmail.com>2019-01-09 22:40:50 -0800
commit0553eff64a87eceff0de3b6260b4f2d45b61703a (patch)
tree5b051740c041786655d1794a5034ccf20928e8ee /tests/json
parent31e0997c1abaa531505d28e36473f1c972ca0849 (diff)
upb_refcounted is gone! Some tests still to fix.
Diffstat (limited to 'tests/json')
-rw-r--r--tests/json/test_json.cc23
1 files changed, 14 insertions, 9 deletions
diff --git a/tests/json/test_json.cc b/tests/json/test_json.cc
index 98bf59e..b9b50cd 100644
--- a/tests/json/test_json.cc
+++ b/tests/json/test_json.cc
@@ -204,12 +204,15 @@ void test_json_roundtrip_message(const char* json_src,
// and compares the result.
void test_json_roundtrip() {
upb::SymbolTable* symtab = upb::SymbolTable::New();
+ upb::HandlerCache* serialize_handlercache = upb::json::Printer::NewCache(false);
+ upb::json::CodeCache* parse_codecache = upb::json::CodeCache::New();
+
const upb::MessageDef* md = upb_test_json_TestMessage_getmsgdef(symtab);
ASSERT(md);
- upb::reffed_ptr<const upb::Handlers> serialize_handlers(
- upb::json::Printer::NewHandlers(md, false));
- upb::reffed_ptr<const upb::json::ParserMethod> parser_method(
- upb::json::ParserMethod::New(md));
+ const upb::Handlers* serialize_handlers = serialize_handlercache->Get(md);
+ const upb::json::ParserMethod* parser_method = parse_codecache->Get(md);
+ ASSERT(serialize_handlers);
+ ASSERT(parser_method);
for (const TestCase* test_case = kTestRoundtripMessages;
test_case->input != NULL; test_case++) {
@@ -220,12 +223,13 @@ void test_json_roundtrip() {
for (size_t i = 0; i < strlen(test_case->input); i++) {
test_json_roundtrip_message(test_case->input, expected,
- serialize_handlers.get(), parser_method.get(),
- i);
+ serialize_handlers, parser_method, i);
}
}
- serialize_handlers = upb::json::Printer::NewHandlers(md, true);
+ upb::HandlerCache::Free(serialize_handlercache);
+ serialize_handlercache = upb::json::Printer::NewCache(true);
+ serialize_handlers = serialize_handlercache->Get(md);
for (const TestCase* test_case = kTestRoundtripMessagesPreserve;
test_case->input != NULL; test_case++) {
@@ -236,11 +240,12 @@ void test_json_roundtrip() {
for (size_t i = 0; i < strlen(test_case->input); i++) {
test_json_roundtrip_message(test_case->input, expected,
- serialize_handlers.get(), parser_method.get(),
- i);
+ serialize_handlers, parser_method, i);
}
}
+ upb::HandlerCache::Free(serialize_handlercache);
+ upb::json::CodeCache::Free(parse_codecache);
upb::SymbolTable::Free(symtab);
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback