mirror of
https://github.com/ThePhD/sol2.git
synced 2024-03-22 13:10:44 +08:00
Fix building tests with Catch v1.7.2.
From the Catch docs: Please note that the THROW family of assertions expects to be passed a single expression, not a statement or series of statements. If you want to check a more complicated sequence of operations, you can use a C++11 lambda function. https://github.com/philsquared/Catch/blob/master/docs/assertions.md In current versions of Catch violating this causes a build error.
This commit is contained in:
parent
23e3f2c26d
commit
cee7d16412
|
@ -155,20 +155,20 @@ TEST_CASE("containers/basic-serialization", "make sure containers are turned int
|
||||||
lua.open_libraries();
|
lua.open_libraries();
|
||||||
lua.set("b", woof{ 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 });
|
lua.set("b", woof{ 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 });
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW(
|
||||||
lua.script("for k = 1, #b do assert(k == b[k]) end");
|
lua.script("for k = 1, #b do assert(k == b[k]) end")
|
||||||
);
|
);
|
||||||
woof w{ 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 };
|
woof w{ 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 };
|
||||||
lua.set("b", w);
|
lua.set("b", w);
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW(
|
||||||
lua.script("for k = 1, #b do assert(k == b[k]) end");
|
lua.script("for k = 1, #b do assert(k == b[k]) end")
|
||||||
);
|
);
|
||||||
lua.set("b", &w);
|
lua.set("b", &w);
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW(
|
||||||
lua.script("for k = 1, #b do assert(k == b[k]) end");
|
lua.script("for k = 1, #b do assert(k == b[k]) end")
|
||||||
);
|
);
|
||||||
lua.set("b", std::ref(w));
|
lua.set("b", std::ref(w));
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW(
|
||||||
lua.script("for k = 1, #b do assert(k == b[k]) end");
|
lua.script("for k = 1, #b do assert(k == b[k]) end")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,20 +191,20 @@ TEST_CASE("containers/table-serialization", "ensure types can be serialized as t
|
||||||
lua.open_libraries();
|
lua.open_libraries();
|
||||||
lua.set("b", sol::as_table(woof{ 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 }));
|
lua.set("b", sol::as_table(woof{ 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 }));
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW(
|
||||||
lua.script("for k, v in ipairs(b) do assert(k == v) end");
|
lua.script("for k, v in ipairs(b) do assert(k == v) end")
|
||||||
);
|
);
|
||||||
woof w{ 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 };
|
woof w{ 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 };
|
||||||
lua.set("b", sol::as_table(w));
|
lua.set("b", sol::as_table(w));
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW(
|
||||||
lua.script("for k, v in ipairs(b) do assert(k == v) end");
|
lua.script("for k, v in ipairs(b) do assert(k == v) end")
|
||||||
);
|
);
|
||||||
lua.set("b", sol::as_table(&w));
|
lua.set("b", sol::as_table(&w));
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW(
|
||||||
lua.script("for k, v in ipairs(b) do assert(k == v) end");
|
lua.script("for k, v in ipairs(b) do assert(k == v) end")
|
||||||
);
|
);
|
||||||
lua.set("b", sol::as_table(std::ref(w)));
|
lua.set("b", sol::as_table(std::ref(w)));
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW(
|
||||||
lua.script("for k, v in ipairs(b) do assert(k == v) end");
|
lua.script("for k, v in ipairs(b) do assert(k == v) end")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,10 +237,10 @@ func = function(vecs)
|
||||||
end
|
end
|
||||||
)");
|
)");
|
||||||
|
|
||||||
REQUIRE_NOTHROW({
|
REQUIRE_NOTHROW([&]{
|
||||||
lua["func"](foo);
|
lua["func"](foo);
|
||||||
lua["func"](bar);
|
lua["func"](bar);
|
||||||
});
|
}());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("containers/arbitrary-creation", "userdata and tables should be usable from standard containers") {
|
TEST_CASE("containers/arbitrary-creation", "userdata and tables should be usable from standard containers") {
|
||||||
|
|
|
@ -205,7 +205,7 @@ end )");
|
||||||
REQUIRE_FALSE((bool)testn);
|
REQUIRE_FALSE((bool)testn);
|
||||||
REQUIRE(testv.value() == 29);
|
REQUIRE(testv.value() == 29);
|
||||||
sol::optional<thing> v = lua_bark(sol::optional<thing>(thing{ 29 }));
|
sol::optional<thing> v = lua_bark(sol::optional<thing>(thing{ 29 }));
|
||||||
REQUIRE_NOTHROW(sol::nil_t n = lua_bark(sol::nullopt));
|
REQUIRE_NOTHROW([&]{sol::nil_t n = lua_bark(sol::nullopt);}());
|
||||||
REQUIRE(v->v == 29);
|
REQUIRE(v->v == 29);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,38 +46,38 @@ TEST_CASE("operators/default", "test that generic equality operators and all sor
|
||||||
lua["v3"] = &v3;
|
lua["v3"] = &v3;
|
||||||
|
|
||||||
// Can only compare identity here
|
// Can only compare identity here
|
||||||
REQUIRE_NOTHROW({
|
REQUIRE_NOTHROW([&]{
|
||||||
lua.script("assert(t1 == t1)");
|
lua.script("assert(t1 == t1)");
|
||||||
lua.script("assert(t2 == t2)");
|
lua.script("assert(t2 == t2)");
|
||||||
lua.script("assert(t3 == t3)");
|
lua.script("assert(t3 == t3)");
|
||||||
});
|
}());
|
||||||
REQUIRE_NOTHROW({
|
REQUIRE_NOTHROW([&]{
|
||||||
lua.script("assert(t1 == t2)");
|
lua.script("assert(t1 == t2)");
|
||||||
lua.script("assert(not (t1 == t3))");
|
lua.script("assert(not (t1 == t3))");
|
||||||
lua.script("assert(not (t2 == t3))");
|
lua.script("assert(not (t2 == t3))");
|
||||||
});
|
}());
|
||||||
// Object should compare equal to themselves
|
// Object should compare equal to themselves
|
||||||
// (and not invoke operator==; pointer test should be sufficient)
|
// (and not invoke operator==; pointer test should be sufficient)
|
||||||
REQUIRE_NOTHROW({
|
REQUIRE_NOTHROW([&]{
|
||||||
lua.script("assert(u1 == u1)");
|
lua.script("assert(u1 == u1)");
|
||||||
lua.script("assert(u2 == u2)");
|
lua.script("assert(u2 == u2)");
|
||||||
lua.script("assert(u3 == u3)");
|
lua.script("assert(u3 == u3)");
|
||||||
});
|
}());
|
||||||
REQUIRE_NOTHROW({
|
REQUIRE_NOTHROW([&]{
|
||||||
lua.script("assert(not (u1 == u2))");
|
lua.script("assert(not (u1 == u2))");
|
||||||
lua.script("assert(u1 == u3)");
|
lua.script("assert(u1 == u3)");
|
||||||
lua.script("assert(not (u2 == u3))");
|
lua.script("assert(not (u2 == u3))");
|
||||||
});
|
}());
|
||||||
// Object should compare equal to themselves
|
// Object should compare equal to themselves
|
||||||
// (and not invoke operator==; pointer test should be sufficient)
|
// (and not invoke operator==; pointer test should be sufficient)
|
||||||
REQUIRE_NOTHROW({
|
REQUIRE_NOTHROW([&]{
|
||||||
lua.script("assert(v1 == v1)");
|
lua.script("assert(v1 == v1)");
|
||||||
lua.script("assert(v2 == v2)");
|
lua.script("assert(v2 == v2)");
|
||||||
lua.script("assert(v3 == v3)");
|
lua.script("assert(v3 == v3)");
|
||||||
});
|
}());
|
||||||
REQUIRE_NOTHROW({
|
REQUIRE_NOTHROW([&]{
|
||||||
lua.script("assert(not (v1 == v2))");
|
lua.script("assert(not (v1 == v2))");
|
||||||
lua.script("assert(v1 == v3)");
|
lua.script("assert(v1 == v3)");
|
||||||
lua.script("assert(not (v2 == v3))");
|
lua.script("assert(not (v2 == v3))");
|
||||||
});
|
}());
|
||||||
}
|
}
|
|
@ -11,22 +11,22 @@ TEST_CASE("issues/stack-overflow", "make sure various operations repeated don't
|
||||||
|
|
||||||
sol::function f = lua["lua_function"];
|
sol::function f = lua["lua_function"];
|
||||||
std::string teststring = "testtext";
|
std::string teststring = "testtext";
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW([&]{
|
||||||
for (int i = 0; i < 1000000; ++i) {
|
for (int i = 0; i < 1000000; ++i) {
|
||||||
std::string result = f(teststring);
|
std::string result = f(teststring);
|
||||||
if (result != teststring) throw std::logic_error("RIP");
|
if (result != teststring) throw std::logic_error("RIP");
|
||||||
}
|
}
|
||||||
);
|
}());
|
||||||
sol::table t = lua["t"];
|
sol::table t = lua["t"];
|
||||||
int expected = 20;
|
int expected = 20;
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW([&]{
|
||||||
for (int i = 0; i < 1000000; ++i) {
|
for (int i = 0; i < 1000000; ++i) {
|
||||||
int result = t[0];
|
int result = t[0];
|
||||||
t.size();
|
t.size();
|
||||||
if (result != expected)
|
if (result != expected)
|
||||||
throw std::logic_error("RIP");
|
throw std::logic_error("RIP");
|
||||||
}
|
}
|
||||||
);
|
}());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -455,11 +455,11 @@ TEST_CASE("usertype/simple-table-append", "Ensure that appending to the meta tab
|
||||||
lua.set("a", &a);
|
lua.set("a", &a);
|
||||||
lua.set("pa", &a);
|
lua.set("pa", &a);
|
||||||
lua.set("ua", std::make_unique<A>());
|
lua.set("ua", std::make_unique<A>());
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW([&]{
|
||||||
lua.script("assert(a:func() == 5000)");
|
lua.script("assert(a:func() == 5000)");
|
||||||
lua.script("assert(pa:func() == 5000)");
|
lua.script("assert(pa:func() == 5000)");
|
||||||
lua.script("assert(ua:func() == 5000)");
|
lua.script("assert(ua:func() == 5000)");
|
||||||
);
|
}());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("usertype/simple-class-propogation", "make sure methods and variables from base classes work properly in SAFE_USERTYPE mode") {
|
TEST_CASE("usertype/simple-class-propogation", "make sure methods and variables from base classes work properly in SAFE_USERTYPE mode") {
|
||||||
|
|
|
@ -1202,7 +1202,7 @@ TEST_CASE("usertype/protect", "users should be allowed to manually protect a fun
|
||||||
lua.script(R"__(
|
lua.script(R"__(
|
||||||
pm = protect_me.new()
|
pm = protect_me.new()
|
||||||
value = pcall(pm.gen,pm)
|
value = pcall(pm.gen,pm)
|
||||||
)__");
|
)__")
|
||||||
);
|
);
|
||||||
bool value = lua["value"];
|
bool value = lua["value"];
|
||||||
REQUIRE_FALSE(value);
|
REQUIRE_FALSE(value);
|
||||||
|
@ -1402,13 +1402,13 @@ TEST_CASE("usertype/unique_usertype-check", "make sure unique usertypes don't ge
|
||||||
)");
|
)");
|
||||||
|
|
||||||
sol::function my_func = lua["my_func"];
|
sol::function my_func = lua["my_func"];
|
||||||
REQUIRE_NOTHROW({
|
REQUIRE_NOTHROW([&]{
|
||||||
auto ent = std::make_shared<Entity>();
|
auto ent = std::make_shared<Entity>();
|
||||||
my_func(ent);
|
my_func(ent);
|
||||||
Entity ent2;
|
Entity ent2;
|
||||||
my_func(ent2);
|
my_func(ent2);
|
||||||
my_func(std::make_shared<Entity>());
|
my_func(std::make_shared<Entity>());
|
||||||
});
|
}());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("usertype/abstract-base-class", "Ensure that abstract base classes and such can be registered") {
|
TEST_CASE("usertype/abstract-base-class", "Ensure that abstract base classes and such can be registered") {
|
||||||
|
|
|
@ -632,13 +632,13 @@ TEST_CASE("optional/left-out-args", "Make sure arguments can be left out of opti
|
||||||
|
|
||||||
// sol::optional needs an argument no matter what?
|
// sol::optional needs an argument no matter what?
|
||||||
lua.set_function("func_opt_ret_bool", func_opt_ret_bool);
|
lua.set_function("func_opt_ret_bool", func_opt_ret_bool);
|
||||||
REQUIRE_NOTHROW(
|
REQUIRE_NOTHROW([&]{
|
||||||
lua.script(R"(
|
lua.script(R"(
|
||||||
func_opt_ret_bool(42)
|
func_opt_ret_bool(42)
|
||||||
func_opt_ret_bool()
|
func_opt_ret_bool()
|
||||||
print('ok')
|
print('ok')
|
||||||
)");
|
)");
|
||||||
);
|
}());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("pusher/constness", "Make sure more types can handle being const and junk") {
|
TEST_CASE("pusher/constness", "Make sure more types can handle being const and junk") {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user