From b79fd65a83e6563393807efbc44be3e2bdb16537 Mon Sep 17 00:00:00 2001 From: Josh Haberman Date: Tue, 11 Sep 2018 10:59:08 -0700 Subject: WIP. --- tools/test_cinit.lua | 64 ---------------------------------------------------- 1 file changed, 64 deletions(-) delete mode 100644 tools/test_cinit.lua (limited to 'tools/test_cinit.lua') diff --git a/tools/test_cinit.lua b/tools/test_cinit.lua deleted file mode 100644 index 8356d63..0000000 --- a/tools/test_cinit.lua +++ /dev/null @@ -1,64 +0,0 @@ ---[[ - - Tests for dump_cinit.lua. Runs first in a mode that generates - some C code for an extension. The C code is compiled and then - loaded by a second invocation of the test which checks that the - generated defs are as expected. - ---]] - -local dump_cinit = require "dump_cinit" -local upb = require "upb" - --- Once APIs for loading descriptors are fleshed out, we should replace this --- with a descriptor for a meaty protobuf like descriptor.proto. -local symtab = upb.SymbolTable{ - upb.EnumDef{full_name = "MyEnum", - values = { - {"FOO", 1}, - {"BAR", 77} - } - }, - upb.MessageDef{full_name = "MyMessage", - fields = { - upb.FieldDef{label = upb.LABEL_REQUIRED, name = "field1", number = 1, - type = upb.TYPE_INT32}, - upb.FieldDef{label = upb.LABEL_REPEATED, name = "field2", number = 2, - type = upb.TYPE_ENUM, subdef_name = ".MyEnum"}, - upb.FieldDef{name = "field3", number = 3, type = upb.TYPE_MESSAGE, - subdef_name = ".MyMessage"} - } - } -} - -if arg[1] == "generate" then - local f = assert(io.open(arg[2], "w")) - local f_h = assert(io.open(arg[2] .. ".h", "w")) - local appendc = dump_cinit.file_appender(f) - local appendh = dump_cinit.file_appender(f_h) - f:write('#include "lua.h"\n') - f:write('#include "upb/bindings/lua/upb.h"\n') - dump_cinit.dump_defs(symtab, "testdefs", appendh, appendc) - f:write([[int luaopen_staticdefs(lua_State *L) { - const upb_symtab *s = upbdefs_testdefs(&s); - lupb_symtab_pushwrapper(L, s, &s); - return 1; - }]]) - f_h:close() - f:close() -elseif arg[1] == "test" then - local symtab = require "staticdefs" - local msg = assert(symtab:lookup("MyMessage")) - local enum = assert(symtab:lookup("MyEnum")) - local f2 = assert(msg:field("field2")) - assert(msg:def_type() == upb.DEF_MSG) - assert(msg:full_name() == "MyMessage") - assert(enum:def_type() == upb.DEF_ENUM) - assert(enum:full_name() == "MyEnum") - assert(enum:value("FOO") == 1) - assert(f2:name() == "field2") - assert(f2:containing_type() == msg) - assert(f2:subdef() == enum) -else - error("Unknown operation " .. arg[1]) -end -- cgit v1.2.3