MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / TEST

Function TEST

source/test/lua_json_test.cpp:7–56  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5using namespace Star;
6
7TEST(LuaJsonTest, Scope) {
8 auto engine = LuaEngine::create();
9 auto script1 = engine->compile(
10 R"SCRIPT(
11 function increment()
12 self.called = self.called + 1
13 return self.called
14 end
15 )SCRIPT");
16
17 auto script2 = engine->compile(
18 R"SCRIPT(
19 global = 42
20
21 function increment()
22 self.called = self.called + 1
23 return self.called
24 end
25 )SCRIPT");
26
27 auto context1 = engine->createContext();
28 auto context2 = engine->createContext();
29
30 context1.load(script1);
31 context2.load(script2);
32
33 context1.setPath("self", JsonObject{{"called", 0}});
34 context2.setPath("self", JsonObject{{"called", 0}});
35
36 EXPECT_TRUE(context1.contains("self"));
37 EXPECT_TRUE(context1.contains("increment"));
38
39 EXPECT_EQ(context1.invokePath<Json>("increment"), 1);
40 EXPECT_EQ(context1.invokePath<Json>("increment"), 2);
41 EXPECT_EQ(context1.invokePath<Json>("increment"), 3);
42 EXPECT_EQ(context2.invokePath<Json>("increment"), 1);
43 EXPECT_EQ(context1.invokePath<Json>("increment"), 4);
44 EXPECT_EQ(context2.invokePath<Json>("increment"), 2);
45
46 auto context3 = engine->createContext();
47 context3.load(script2);
48 context3.setPath("self", JsonObject{{"called", 0}});
49
50 EXPECT_EQ(context2.invokePath<Json>("increment"), 3);
51 EXPECT_EQ(context3.invokePath<Json>("increment"), 1);
52 EXPECT_EQ(context1.invokePath<Json>("increment"), 5);
53
54 EXPECT_FALSE(context1.contains("global"));
55 EXPECT_TRUE(context3.contains("global"));
56}
57
58TEST(LuaJsonTest, FunkyRecursion) {
59 auto engine = LuaEngine::create();

Callers

nothing calls this directly

Calls 10

JsonClass · 0.85
compileMethod · 0.80
setCallbacksMethod · 0.80
createContextMethod · 0.45
loadMethod · 0.45
setPathMethod · 0.45
containsMethod · 0.45
registerCallbackMethod · 0.45
getMethod · 0.45
isTypeMethod · 0.45

Tested by

no test coverage detected