summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/sol2/test_coroutines.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/sol2/test_coroutines.cpp')
-rw-r--r--3rdparty/sol2/test_coroutines.cpp64
1 files changed, 0 insertions, 64 deletions
diff --git a/3rdparty/sol2/test_coroutines.cpp b/3rdparty/sol2/test_coroutines.cpp
deleted file mode 100644
index 1581dc3d5a8..00000000000
--- a/3rdparty/sol2/test_coroutines.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-#define SOL_CHECK_ARGUMENTS
-
-#include <catch.hpp>
-#include <sol.hpp>
-
-TEST_CASE("threading/coroutines", "ensure calling a coroutine works") {
- const auto& script = R"(counter = 20
-
-function loop()
- while counter ~= 30
- do
- coroutine.yield(counter);
- counter = counter + 1;
- end
- return counter
-end
-)";
-
- sol::state lua;
- lua.open_libraries(sol::lib::base, sol::lib::coroutine);
- lua.script(script);
- sol::coroutine cr = lua["loop"];
-
- int counter;
- for (counter = 20; counter < 31 && cr; ++counter) {
- int value = cr();
- if (counter != value) {
- throw std::logic_error("fuck");
- }
- }
- counter -= 1;
- REQUIRE(counter == 30);
-}
-
-TEST_CASE("threading/new-thread-coroutines", "ensure calling a coroutine works when the work is put on a different thread") {
- const auto& script = R"(counter = 20
-
-function loop()
- while counter ~= 30
- do
- coroutine.yield(counter);
- counter = counter + 1;
- end
- return counter
-end
-)";
-
- sol::state lua;
- lua.open_libraries(sol::lib::base, sol::lib::coroutine);
- lua.script(script);
- sol::thread runner = sol::thread::create(lua.lua_state());
- sol::state_view runnerstate = runner.state();
- sol::coroutine cr = runnerstate["loop"];
-
- int counter;
- for (counter = 20; counter < 31 && cr; ++counter) {
- int value = cr();
- if (counter != value) {
- throw std::logic_error("fuck");
- }
- }
- counter -= 1;
- REQUIRE(counter == 30);
-} \ No newline at end of file