summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/sol2/test_storage.cpp
blob: f2b73aff2628270efc7aad6f35bc915ff0db6efe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#define SOL_CHECK_ARGUMENTS

#include <catch.hpp>
#include <sol.hpp>

TEST_CASE("storage/registry=construction", "ensure entries from the registry can be retrieved") {
	const auto& script = R"(
function f()
    return 2
end
)";

	sol::state lua;
	sol::function f = lua["f"];
	sol::reference r = lua["f"];
	sol::function regf(lua, f);
	sol::reference regr(lua, sol::ref_index(f.registry_index()));
	bool isequal = f == r;
	REQUIRE(isequal);
	isequal = f == regf;
	REQUIRE(isequal);
	isequal = f == regr;
	REQUIRE(isequal);
}

TEST_CASE("storage/main-thread", "ensure round-tripping and pulling out thread data even on 5.1 with a backup works") {
	sol::state lua;
	{
		sol::stack_guard g(lua);
		lua_State* orig = lua;
		lua_State* ts = sol::main_thread(lua, lua);
		REQUIRE(ts == orig);
	}
}