From 85fb2bff38b2ef6cb17e86c5f602ee09a365b117 Mon Sep 17 00:00:00 2001 From: Andy Belle-Isle Date: Wed, 28 Aug 2019 00:57:57 -0400 Subject: Added LuaBridge support --- lib/LuaBridge/Tests/Source/ListTests.cpp | 77 ++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 lib/LuaBridge/Tests/Source/ListTests.cpp (limited to 'lib/LuaBridge/Tests/Source/ListTests.cpp') diff --git a/lib/LuaBridge/Tests/Source/ListTests.cpp b/lib/LuaBridge/Tests/Source/ListTests.cpp new file mode 100644 index 0000000..5376116 --- /dev/null +++ b/lib/LuaBridge/Tests/Source/ListTests.cpp @@ -0,0 +1,77 @@ +// https://github.com/vinniefalco/LuaBridge +// +// Copyright 2019, Dmitry Tarakanov +// SPDX-License-Identifier: MIT + + +#include "TestBase.h" +#include "TestTypes.h" + +#include "LuaBridge/List.h" + +#include + + +namespace { + +template + +std::list toList (const std::vector & vector) +{ + return {vector.begin (), vector.end ()}; +} + +} // namespace + + +template +struct ListTest : TestBase +{ +}; + +TYPED_TEST_CASE_P (ListTest); + +TYPED_TEST_P (ListTest, LuaRef) +{ + using Traits = TypeTraits ; + + this->runLua ("result = {" + Traits::list () + "}"); + + std::list expected = toList (Traits::values ()); + std::list actual = this->result (); + ASSERT_EQ (expected, actual); +} + +REGISTER_TYPED_TEST_CASE_P (ListTest, LuaRef); + +INSTANTIATE_TYPED_TEST_CASE_P(ListTest, ListTest, TestTypes); + + +struct ListTests : TestBase +{ +}; + + +TEST_F (ListTests, PassToFunction) +{ + runLua ( + "function foo (list) " + " result = list " + "end"); + + auto foo = luabridge::getGlobal (L, "foo"); + + resetResult (); + + std::list lvalue {10, 20, 30}; + foo (lvalue); + ASSERT_TRUE (result ().isTable ()); + ASSERT_EQ (lvalue, result > ()); + + resetResult (); + + const std::list constLvalue = lvalue; + foo (constLvalue); + ASSERT_TRUE (result ().isTable ()); + ASSERT_EQ (lvalue, result > ()); +} -- cgit v1.2.3