From 268868f10297703470be767c2b3a2acbd8a9dac3 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Thu, 16 Apr 2015 20:00:48 -0600 Subject: [PATCH] Add failing tests --- src/test_module.cpp | 9 +++++++++ unittests/function_attributes.chai | 13 +++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 unittests/function_attributes.chai diff --git a/src/test_module.cpp b/src/test_module.cpp index b1618175..5a849fac 100644 --- a/src/test_module.cpp +++ b/src/test_module.cpp @@ -21,6 +21,8 @@ class TestBaseType int val; const int const_val; + std::function func_member; + private: TestBaseType &operator=(const TestBaseType &); }; @@ -159,6 +161,13 @@ CHAISCRIPT_MODULE_EXPORT chaiscript::ModulePtr create_chaiscript_module_test_mo m->add(chaiscript::fun(&TestBaseType::const_val), "const_val"); m->add(chaiscript::fun(&TestBaseType::base_only_func), "base_only_func"); + // member that is a function + m->add(chaiscript::fun(&TestBaseType::func_member), "func_member"); + m->add(chaiscript::fun &(std::function &, const std::function &)>( + [](std::function &t_lhs, const std::function &t_rhs)-> std::function &{ + return t_lhs = t_rhs; + }), "="); + m->add(chaiscript::fun(&get_new_int), "get_new_int"); diff --git a/unittests/function_attributes.chai b/unittests/function_attributes.chai new file mode 100644 index 00000000..3cc1aa7b --- /dev/null +++ b/unittests/function_attributes.chai @@ -0,0 +1,13 @@ +// Test attributes/members that are functions + +load_module("test_module") + +auto t0 = TestBaseType() + +t0.func_member = fun(int i){ i * 3; }; + +assert_true(func_member(t0)(2) == 6) +assert_true((func_member(t0))(2) == 6) +assert_true((t0.func_member)(2) == 6) +assert_true(t0.func_member(2) == 6) +