summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJoshua Haberman <jhaberman@gmail.com>2019-01-12 16:15:46 -0800
committerJoshua Haberman <jhaberman@gmail.com>2019-01-12 16:15:46 -0800
commitd2f9bec5c6f3c34362cf13e35e11d3dbc7888a32 (patch)
tree7a2d1f3e34ea5ad6486cbb56da8b6ed49a123690 /tests
parent0553eff64a87eceff0de3b6260b4f2d45b61703a (diff)
Removed old-style C++ handlers that relied on UB in favor of more normal ones.
Diffstat (limited to 'tests')
-rw-r--r--tests/pb/test_encoder.cc33
-rw-r--r--tests/test_util.h2
2 files changed, 14 insertions, 21 deletions
diff --git a/tests/pb/test_encoder.cc b/tests/pb/test_encoder.cc
index fac0dae..35c0e1e 100644
--- a/tests/pb/test_encoder.cc
+++ b/tests/pb/test_encoder.cc
@@ -18,12 +18,9 @@ std::string read_string(const char *filename) {
void test_pb_roundtrip() {
std::string input = read_string("google/protobuf/descriptor.pb");
- upb::SymbolTable* symtab = upb::SymbolTable::New();
- upb::HandlerCache* encoder_cache = upb::pb::Encoder::NewCache();
- upb::pb::CodeCache* decoder_cache = upb::pb::CodeCache::New(encoder_cache);
- ASSERT(symtab);
- ASSERT(encoder_cache);
- ASSERT(decoder_cache);
+ upb::SymbolTable symtab;
+ upb::HandlerCache encoder_cache(upb::pb::EncoderPtr::NewCache());
+ upb::pb::CodeCache decoder_cache(&encoder_cache);
upb::Arena arena;
google_protobuf_FileDescriptorSet *set =
google_protobuf_FileDescriptorSet_parsenew(
@@ -34,32 +31,28 @@ void test_pb_roundtrip() {
google_protobuf_FileDescriptorSet_file(set, &n);
ASSERT(n == 1);
upb::Status status;
- bool ok = symtab->AddFile(files[0], &status);
+ bool ok = symtab.AddFile(files[0], &status);
if (!ok) {
fprintf(stderr, "Error building def: %s\n", upb_status_errmsg(&status));
ASSERT(false);
}
- const upb::MessageDef *md =
- symtab->LookupMessage("google.protobuf.FileDescriptorSet");
+ upb::MessageDefPtr md =
+ symtab.LookupMessage("google.protobuf.FileDescriptorSet");
ASSERT(md);
- const upb::Handlers* encoder_handlers = encoder_cache->Get(md);
+ const upb::Handlers *encoder_handlers = encoder_cache.Get(md);
ASSERT(encoder_handlers);
- const upb::pb::DecoderMethod* method = decoder_cache->Get(md);
- ASSERT(method);
+ const upb::pb::DecoderMethodPtr method = decoder_cache.Get(md);
upb::InlinedEnvironment<512> env;
std::string output;
upb::StringSink string_sink(&output);
- upb::pb::Encoder* encoder =
- upb::pb::Encoder::Create(&env, encoder_handlers, string_sink.input());
- upb::pb::Decoder* decoder =
- upb::pb::Decoder::Create(&env, method, encoder->input());
- ok = upb::BufferSource::PutBuffer(input, decoder->input());
+ upb::pb::EncoderPtr encoder =
+ upb::pb::EncoderPtr::Create(&env, encoder_handlers, string_sink.input());
+ upb::pb::DecoderPtr decoder =
+ upb::pb::DecoderPtr::Create(&env, method, encoder.input());
+ ok = upb::PutBuffer(input, decoder.input());
ASSERT(ok);
ASSERT(input == output);
- upb::pb::CodeCache::Free(decoder_cache);
- upb::HandlerCache::Free(encoder_cache);
- upb::SymbolTable::Free(symtab);
}
extern "C" {
diff --git a/tests/test_util.h b/tests/test_util.h
index f616c36..1b1ff01 100644
--- a/tests/test_util.h
+++ b/tests/test_util.h
@@ -12,7 +12,7 @@
#ifdef __cplusplus
-upb::BufferHandle global_handle;
+upb_bufhandle global_handle;
/* A convenience class for parser tests. Provides some useful features:
*
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback