From c467671ae8b6ec161c17e86f3383fd0625f755b8 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Fri, 19 Aug 2022 19:48:10 -0400 Subject: remove sol2 (will re-add as submodule) --- .../tests/runtime_tests/source/tables.indexing.cpp | 151 --------------------- 1 file changed, 151 deletions(-) delete mode 100644 lib/sol2/tests/runtime_tests/source/tables.indexing.cpp (limited to 'lib/sol2/tests/runtime_tests/source/tables.indexing.cpp') diff --git a/lib/sol2/tests/runtime_tests/source/tables.indexing.cpp b/lib/sol2/tests/runtime_tests/source/tables.indexing.cpp deleted file mode 100644 index ca97500..0000000 --- a/lib/sol2/tests/runtime_tests/source/tables.indexing.cpp +++ /dev/null @@ -1,151 +0,0 @@ -// sol3 - -// The MIT License (MIT) - -// Copyright (c) 2013-2019 Rapptz, ThePhD and contributors - -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software is furnished to do so, -// subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -#include "sol_test.hpp" - -#include - -int plop_xyz(int x, int y, std::string z) { - INFO(x << " " << y << " " << z); - return 11; -} - -TEST_CASE("tables/operator[]", "Check if operator[] retrieval and setting works properly") { - sol::state lua; - lua.open_libraries(sol::lib::base); - - lua.safe_script("foo = 20\nbar = \"hello world\""); - // basic retrieval - std::string bar = lua["bar"]; - int foo = lua["foo"]; - REQUIRE(bar == "hello world"); - REQUIRE(foo == 20); - // test operator= for stringification - // errors due to ambiguous operators - bar = lua["bar"]; - - // basic setting - lua["bar"] = 20.4; - lua["foo"] = "goodbye"; - - // doesn't modify the actual values obviously. - REQUIRE(bar == "hello world"); - REQUIRE(foo == 20); - - // function setting - lua["test"] = plop_xyz; - { - auto result = lua.safe_script("assert(test(10, 11, \"hello\") == 11)", sol::script_pass_on_error); - REQUIRE(result.valid()); - } - - // function retrieval - sol::function test = lua["test"]; - REQUIRE(test.call(10, 11, "hello") == 11); - - // setting a lambda - lua["lamb"] = [](int x) { return x * 2; }; - - { - auto result = lua.safe_script("assert(lamb(220) == 440)", sol::script_pass_on_error); - REQUIRE(result.valid()); - } - - // function retrieval of a lambda - sol::function lamb = lua["lamb"]; - REQUIRE(lamb.call(220) == 440); - - // test const table retrieval - auto assert1 = [](const sol::table& t) { - std::string a = t["foo"]; - double b = t["bar"]; - REQUIRE(a == "goodbye"); - REQUIRE(b == 20.4); - }; - - REQUIRE_NOTHROW(assert1(lua.globals())); -} - -TEST_CASE("tables/operator[] valid", "Test if proxies on tables can lazily evaluate validity") { - sol::state lua; - bool isFullScreen = false; - auto fullscreennopers = lua["fullscreen"]["nopers"]; - auto fullscreen = lua["fullscreen"]; - REQUIRE_FALSE(fullscreennopers.valid()); - REQUIRE_FALSE(fullscreen.valid()); - - lua["fullscreen"] = true; - - REQUIRE_FALSE(fullscreennopers.valid()); - REQUIRE(fullscreen.valid()); - isFullScreen = lua["fullscreen"]; - REQUIRE(isFullScreen); - - lua["fullscreen"] = false; - REQUIRE_FALSE(fullscreennopers.valid()); - REQUIRE(fullscreen.valid()); - isFullScreen = lua["fullscreen"]; - REQUIRE_FALSE(isFullScreen); -} - -TEST_CASE("tables/operator[] optional", "Test if proxies on tables can lazily evaluate validity") { - sol::state lua; - - sol::optional test1 = lua["no_exist_yet"]; - bool present = (bool)test1; - REQUIRE_FALSE(present); - - lua["no_exist_yet"] = 262; - sol::optional test2 = lua["no_exist_yet"]; - present = (bool)test2; - REQUIRE(present); - REQUIRE(test2.value() == 262); - - sol::optional nope = lua["nope"]["kek"]["hah"]; - auto nope2 = lua.get>(std::make_tuple("nope", "kek", "hah")); - present = (bool)nope; - REQUIRE_FALSE(present); - present = (bool)nope2; - REQUIRE_FALSE(present); - lua.create_named_table("nope", "kek", lua.create_table_with("hah", 1)); - sol::optional non_nope = lua["nope"]["kek"]["hah"].get>(); - sol::optional non_nope2 = lua.get>(std::make_tuple("nope", "kek", "hah")); - present = (bool)non_nope; - REQUIRE(present); - present = (bool)non_nope2; - REQUIRE(present); - REQUIRE(non_nope.value() == 1); - REQUIRE(non_nope2.value() == 1); - - INFO("Keys: nope, kek, hah"); - lua.set(std::make_tuple("nope", "kek", "hah"), 35); - sol::optional non_nope3 = lua["nope"]["kek"]["hah"].get>(); - sol::optional non_nope4 = lua.get>(std::make_tuple("nope", "kek", "hah")); - present = (bool)non_nope3; - REQUIRE(present); - present = (bool)non_nope4; - REQUIRE(present); - REQUIRE(non_nope3.value() == 35); - REQUIRE(non_nope4.value() == 35); -} - -- cgit v1.2.3