Add failing tests
This commit is contained in:
@@ -21,6 +21,8 @@ class TestBaseType
|
|||||||
int val;
|
int val;
|
||||||
const int const_val;
|
const int const_val;
|
||||||
|
|
||||||
|
std::function<int (int)> func_member;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TestBaseType &operator=(const TestBaseType &);
|
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::const_val), "const_val");
|
||||||
m->add(chaiscript::fun(&TestBaseType::base_only_func), "base_only_func");
|
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<int(int)> &(std::function<int(int)> &, const std::function<int(int)> &)>(
|
||||||
|
[](std::function<int (int)> &t_lhs, const std::function<int (int)> &t_rhs)-> std::function<int (int)> &{
|
||||||
|
return t_lhs = t_rhs;
|
||||||
|
}), "=");
|
||||||
|
|
||||||
m->add(chaiscript::fun(&get_new_int), "get_new_int");
|
m->add(chaiscript::fun(&get_new_int), "get_new_int");
|
||||||
|
|
||||||
|
|
||||||
|
13
unittests/function_attributes.chai
Normal file
13
unittests/function_attributes.chai
Normal file
@@ -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)
|
||||||
|
|
Reference in New Issue
Block a user