diff options
Diffstat (limited to 'tests/bindings/lua')
-rw-r--r-- | tests/bindings/lua/test_upb.lua | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/bindings/lua/test_upb.lua b/tests/bindings/lua/test_upb.lua index f32a690..7c14b58 100644 --- a/tests/bindings/lua/test_upb.lua +++ b/tests/bindings/lua/test_upb.lua @@ -16,6 +16,18 @@ function iter_to_array(iter) return arr end +function test_msgdef() + local f2 = upb.FieldDef{name = "field2", number = 1, type = upb.TYPE_INT32} + local o = upb.OneofDef{name = "field1", fields = {f2}} + local f = upb.FieldDef{name = "field3", number = 2, type = upb.TYPE_INT32} + + local m = upb.MessageDef{fields = {o, f}} + + assert_equal(f, m:lookup_name("field3")) + assert_equal(o, m:lookup_name("field1")) + assert_equal(f2, m:lookup_name("field2")) +end + function test_fielddef() local f = upb.FieldDef() assert_false(f:is_frozen()) @@ -314,6 +326,18 @@ function test_msgdef_errors() } end) + assert_error(function() + -- Duplicate field name. + upb.MessageDef{ + fields = { + upb.OneofDef{name = "field1", fields = { + upb.FieldDef{name = "field2", number = 1, type = upb.TYPE_INT32}, + }}, + upb.FieldDef{name = "field2", number = 2, type = upb.TYPE_INT32} + } + } + end) + -- attempt to set a name with embedded NULLs. assert_error_match("names cannot have embedded NULLs", function() md:set_full_name("abc\0def") |