From ce2e06d5ca6d7950fbce87354b93684a307df228 Mon Sep 17 00:00:00 2001 From: Daniel Wallin Date: Sun, 11 Nov 2007 19:22:12 +0000 Subject: [PATCH] Added test for `object::operator()` of different arities. --- test/test_object.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/test/test_object.cpp b/test/test_object.cpp index 6f79e2f..fe0b3be 100644 --- a/test/test_object.cpp +++ b/test/test_object.cpp @@ -118,6 +118,28 @@ void test_match_object( p3["ret"] = 3; } +void test_call(lua_State* L) +{ + DOSTRING(L, + "function sum(...)\n" + " local result = 0\n" + " for _,x in pairs({...}) do\n" + " result = result + x\n" + " end\n" + " return result\n" + "end\n" + ); + + object sum = globals(L)["sum"]; + + TEST_CHECK(object_cast(sum()) == 0); + TEST_CHECK(object_cast(sum(1)) == 1); + TEST_CHECK(object_cast(sum(1,2)) == 3); + TEST_CHECK(object_cast(sum(1,2,3)) == 6); + TEST_CHECK(object_cast(sum(1,2,3,4)) == 10); + TEST_CHECK(object_cast(sum(1,2,3,4,5)) == 15); +} + void test_main(lua_State* L) { using namespace luabind; @@ -292,5 +314,8 @@ void test_main(lua_State* L) } TEST_CHECK(inner_sum == 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8); - TEST_CHECK(object_cast(globals(L)["t"][2][2]) == 4); + TEST_CHECK(object_cast(globals(L)["t"][2][2]) == 4); + + test_call(L); } + -- 2.11.4.GIT