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