diff options
author | Joshua Haberman <jhaberman@gmail.com> | 2019-06-02 20:36:42 -0700 |
---|---|---|
committer | Joshua Haberman <jhaberman@gmail.com> | 2019-06-02 20:36:42 -0700 |
commit | 583f24fec1f3773b86168db2d2e4f95f36c3324d (patch) | |
tree | c15ac3932d77d55269eb19ec72b2887b6571ba35 /tests/pb | |
parent | 932753d91e183ab25cf1a0f420d9488295002297 (diff) | |
parent | 9f49efef6203973931894a4ed9b862b3e3d639f0 (diff) |
Merge branch 'master' into rmreflective
Diffstat (limited to 'tests/pb')
-rw-r--r-- | tests/pb/test_encoder.cc | 34 |
1 files changed, 8 insertions, 26 deletions
diff --git a/tests/pb/test_encoder.cc b/tests/pb/test_encoder.cc index 3039767..c6544be 100644 --- a/tests/pb/test_encoder.cc +++ b/tests/pb/test_encoder.cc @@ -3,43 +3,25 @@ #include "tests/upb_test.h" #include "upb/bindings/stdc++/string.h" #include "google/protobuf/descriptor.upb.h" +#include "google/protobuf/descriptor.upbdefs.h" #include "upb/pb/decoder.h" #include "upb/pb/encoder.h" #include "upb/port_def.inc" - -std::string read_string(const char *filename) { - size_t len; - char *str = upb_readfile(filename, &len); - ASSERT(str); - if (!str) { return std::string(); } - std::string ret = std::string(str, len); - free(str); - return ret; -} +#include <iostream> void test_pb_roundtrip() { - std::string input = read_string("google/protobuf/descriptor.pb"); + std::string input( + google_protobuf_descriptor_proto_upbdefinit.descriptor.data, + google_protobuf_descriptor_proto_upbdefinit.descriptor.size); + std::cout << input.size() << "\n"; 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_parse(input.c_str(), input.size(), - arena.ptr()); - ASSERT(set); - size_t n; - const google_protobuf_FileDescriptorProto *const *files = - google_protobuf_FileDescriptorSet_file(set, &n); - ASSERT(n == 1); upb::Status status; - upb::FileDefPtr file_def = symtab.AddFile(files[0], &status); - if (!file_def) { - fprintf(stderr, "Error building def: %s\n", status.error_message()); - ASSERT(false); - } - upb::MessageDefPtr md = - symtab.LookupMessage("google.protobuf.FileDescriptorSet"); + upb::MessageDefPtr md( + google_protobuf_FileDescriptorProto_getmsgdef(symtab.ptr())); ASSERT(md); const upb::Handlers *encoder_handlers = encoder_cache.Get(md); ASSERT(encoder_handlers); |