diff options
author | Joshua Haberman <jhaberman@gmail.com> | 2016-04-06 16:49:18 -0700 |
---|---|---|
committer | Joshua Haberman <jhaberman@gmail.com> | 2016-04-06 16:49:18 -0700 |
commit | 458077ccb4f7eddc94549528c3a9809745982352 (patch) | |
tree | 39cb7c59737895b757c0a830b166d6ed69e83027 /tests/test_def.c | |
parent | d0b9d0a9b782e46a483d4d72515f9ab4f72e402a (diff) | |
parent | 8823fa6069452c86325b4d5a6065a0d4fd67f1a2 (diff) |
Merge pull request #53 from haberman/filedef
Added upb::FileDef, which represents the file defs are declared in.
Diffstat (limited to 'tests/test_def.c')
-rw-r--r-- | tests/test_def.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/tests/test_def.c b/tests/test_def.c index 52d780b..de3bcb2 100644 --- a/tests/test_def.c +++ b/tests/test_def.c @@ -3,6 +3,7 @@ ** (like attempts to link defs that don't have required properties set). */ +#include "tests/test_util.h" #include "upb/def.h" #include "upb/pb/glue.h" #include "upb_test.h" @@ -41,12 +42,22 @@ static void test_noreftracking() { static upb_symtab *load_test_proto(void *owner) { upb_symtab *s = upb_symtab_new(owner); upb_status status = UPB_STATUS_INIT; + size_t len; + char *data = upb_readfile(descriptor_file, &len); + upb_filedef **files; ASSERT(s); - if (!upb_load_descriptor_file_into_symtab(s, descriptor_file, &status)) { - fprintf(stderr, "Error loading descriptor file: %s\n", - upb_status_errmsg(&status)); - ASSERT(false); + ASSERT(data); + files = upb_loaddescriptor(data, len, &files, &status); + ASSERT(files); + free(data); + + while (*files) { + bool ok = upb_symtab_addfile(s, *files, &status); + ASSERT(ok); + upb_filedef_unref(*files, &files); + files++; } + ASSERT(!upb_symtab_isfrozen(s)); upb_symtab_freeze(s); ASSERT(upb_symtab_isfrozen(s)); @@ -391,6 +402,7 @@ static void test_mapentry_check() { /* Should not have succeeded: non-repeated field pointing to a MapEntry. */ ASSERT(!upb_ok(&s)); + upb_status_clear(&s); upb_fielddef_setlabel(f, UPB_LABEL_REPEATED); upb_symtab_add(symtab, defs, 2, NULL, &s); ASSERT(upb_ok(&s)); |