1 #define SOL_CHECK_ARGUMENTS 2 3 #include <catch.hpp> 4 #include <sol.hpp> 5 6 TEST_CASE("storage/registry=construction", "ensure entries from the registry can be retrieved") { 7 const auto& script = R"( 8 function f() 9 return 2 10 end 11 )"; 12 13 sol::state lua; 14 sol::function f = lua["f"]; 15 sol::reference r = lua["f"]; 16 sol::function regf(lua, f); 17 sol::reference regr(lua, sol::ref_index(f.registry_index())); 18 bool isequal = f == r; 19 REQUIRE(isequal); 20 isequal = f == regf; 21 REQUIRE(isequal); 22 isequal = f == regr; 23 REQUIRE(isequal); 24 } 25 26 TEST_CASE("storage/main-thread", "ensure round-tripping and pulling out thread data even on 5.1 with a backup works") { 27 sol::state lua; 28 { 29 sol::stack_guard g(lua); 30 lua_State* orig = lua; 31 lua_State* ts = sol::main_thread(lua, lua); 32 REQUIRE(ts == orig); 33 } 34 } 35