Add runfile to check for correct compatibility name generation

Checks that if OldClass was renamed to NewClass, then not only
OldClass.static_method is now NewClass.static_method, but also
compatibility name OldClass_static_method is now NewClass_static_method.
Same for enums, static vars etc
This commit is contained in:
Artem Serebriyskiy 2013-11-08 04:33:45 +04:00 committed by William S Fulton
parent 14de0de5e7
commit 8b35c0b5ce
2 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1,25 @@
require("import") -- the import fn
import("rename_simple") -- import lib
rs = rename_simple
-- catch "undefined" global variables
local env = _ENV -- Lua 5.2
if not env then env = getfenv () end -- Lua 5.1
setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end})
assert(rs.NewStruct ~= nil)
assert(rs.NewStruct.NewStaticVariable == 444)
assert(rs.NewStruct_NewStaticVariable == 444)
assert(rs.NewStruct.NewStaticMethod() == 333)
assert(rs.NewStruct_NewStaticMethod() == 333)
assert(rs.NewStruct.ONE == 1)
assert(rs.NewStruct_ONE == 1)
assert(rs.NewFunction() == 555)
assert(rs.OldStruct == nil)
assert(rs.OldFunction == nil)
assert(rs.OldGlobalVariable == nil)
assert(rs.OldStruct_ONE == nil)

View File

@ -11,6 +11,7 @@
%inline %{
struct OldStruct {
enum { ONE = 1, TWO, THREE };
OldStruct() : OldInstanceVariable(111) {}
int OldInstanceVariable;
int OldInstanceMethod() { return 222; }