require("import")
import("li_std_string")
for k,v in pairs(li_std_string) do _G[k]=v end
local env = _ENV
if not env then env = getfenv () end
setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end})
function is_std_string(s)
return type(s)=='userdata' and swig_type(s)=='std::string *'
end
s=test_value("foo")
assert(type(s)=="string" and s=="foo")
s=test_const_reference("foo")
assert(type(s)=="string" and s=="foo")
obj=test_pointer_out()
assert(is_std_string(obj) and obj:c_str()=="x")
test_pointer(obj)
cobj=test_const_pointer_out()
assert(is_std_string(cobj) and cobj:c_str()=="x")
test_const_pointer(cobj)
test_pointer(cobj)
robj=test_reference_out()
assert(is_std_string(robj) and robj:c_str()=="test_reference_out message")
test_reference(robj)
test_reference(obj)
test_reference(cobj)
assert(test_reference_input("hello")=="hello")
s=test_reference_inout("hello")
assert(s=="hellohello")
assert(test_reference_output()=="output")
ok,ex=pcall(test_throw)
assert(ok==false and type(ex)=="string")
ok,ex=pcall(test_const_reference_throw)
assert(ok==false and type(ex)=="string")
ok,ex=pcall(test_const_pointer_throw)
assert(ok==false and type(ex)=="string")
ok,ex=pcall(test_pointer_throw)
assert(ok==false and type(ex)=="string")
s = "initial string"
assert (li_std_string.GlobalString2 == "global string 2")
li_std_string.GlobalString2 = s
assert (li_std_string.GlobalString2 == s)
assert (li_std_string.ConstGlobalString == "const global string")
myStructure = Structure()
assert(myStructure.MemberString2 == "member string 2")
myStructure.MemberString2 = s
assert (myStructure.MemberString2 == s)
assert (myStructure.ConstMemberString == "const member string")
assert (li_std_string.Structure_StaticMemberString2 == "static member string 2")
li_std_string.Structure_StaticMemberString2 = s
assert (li_std_string.Structure_StaticMemberString2 == s)
assert (li_std_string.Structure_ConstStaticMemberString == "const static member string")
struc=Structure()
assert(type(struc.MemberString2)=="string")
assert(type(struc.ConstMemberString)=="string")
assert(pcall(function () struc.ConstMemberString="c" end)==false)
assert(type(struc.MemberString2)=="string")
assert(type(struc.ConstMemberString)=="string")
assert(type(li_std_string.Structure_StaticMemberString2)=="string")
assert(type(li_std_string.Structure_ConstStaticMemberString)=="string")
assert(pcall(function () li_std_string.Structure_ConstStaticMemberString='f' end)==false)
li_std_string.Structure_StaticMemberString2,
li_std_string.Structure_ConstStaticMemberString:data())]]
assert(type(li_std_string.Structure_StaticMemberString)=="string")
assert(type(li_std_string.Structure_StaticMemberString2)=="string")
assert(type(li_std_string.Structure_ConstStaticMemberString)=="string")
assert(stdstring_empty()=="")
assert(c_empty()=="")
assert(c_null()==nil)
assert(get_null(c_null())==nil)
assert(get_null(c_empty())=="non-null")
assert(get_null(stdstring_empty())=="non-null")
assert(test_value(1234) == "1234")