diff options
author | Hunter Morris <hunter.morris@smarkets.com> | 2011-09-09 21:46:41 +0100 |
---|---|---|
committer | Hunter Morris <hunter.morris@smarkets.com> | 2011-09-09 21:51:51 +0100 |
commit | 7175edb10a51e5931efd14cdb8cf62ce3463c85e (patch) | |
tree | 01c65279cbd2904636e4477c5f36e929d3b518b7 /tests/tests.c | |
parent | aca8cef29b8a8608a08bec9a4cd9325492ed158b (diff) |
Add failing unit test
This might actually just bring to light my misuse of the upb_fielddef
functions. The test assertions are fine, but an assertion in upb/upb.h
fails:
./upb/upb.h:181: upb_value_getptr: Assertion `val.type == 33' failed.
Diffstat (limited to 'tests/tests.c')
-rw-r--r-- | tests/tests.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/tests.c b/tests/tests.c index 99e13cb..178254f 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -67,6 +67,30 @@ static void test_upb_symtab() { upb_def_unref(def2); } +static void test_upb_two_fielddefs() { + upb_fielddef *f1 = upb_fielddef_new(); + upb_fielddef *f2 = upb_fielddef_new(); + + ASSERT(upb_fielddef_ismutable(f1)); + upb_fielddef_setname(f1, ""); + upb_fielddef_setnumber(f1, 1937); + upb_fielddef_settype(f1, UPB_TYPE(FIXED64)); + upb_fielddef_setlabel(f1, UPB_LABEL(REPEATED)); + upb_fielddef_settypename(f1, ""); + ASSERT(upb_fielddef_number(f1) == 1937); + + ASSERT(upb_fielddef_ismutable(f2)); + upb_fielddef_setname(f2, ""); + upb_fielddef_setnumber(f2, 1572); + upb_fielddef_settype(f2, UPB_TYPE(BYTES)); + upb_fielddef_setlabel(f2, UPB_LABEL(REPEATED)); + upb_fielddef_settypename(f2, ""); + ASSERT(upb_fielddef_number(f2) == 1572); + + upb_fielddef_unref(f1); + upb_fielddef_unref(f2); +} + int main() { #define TEST(func) do { \ @@ -78,6 +102,7 @@ int main() TEST(test_upb_symtab); TEST(test_upb_jit); + TEST(test_upb_two_fielddefs); printf("All tests passed (%d assertions).\n", num_assertions); return 0; } |