Add initial failing test
This commit is contained in:
parent
aabe53c934
commit
d9f86a96f0
@ -785,3 +785,54 @@ TEST_CASE("Variable Scope When Calling From C++ 2")
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct Returned_Converted_Config
|
||||
{
|
||||
int num_iterations;
|
||||
int something_else;
|
||||
std::string a_string;
|
||||
std::function<int (const std::string &)> a_function;
|
||||
};
|
||||
|
||||
|
||||
TEST_CASE("Return of converted type from script")
|
||||
{
|
||||
chaiscript::ChaiScript chai;
|
||||
|
||||
chai.add(chaiscript::constructor<Returned_Converted_Config ()>(), "Returned_Converted_Config");
|
||||
chai.add(chaiscript::fun(&Returned_Converted_Config::num_iterations), "num_iterations");
|
||||
chai.add(chaiscript::fun(&Returned_Converted_Config::something_else), "something_else");
|
||||
chai.add(chaiscript::fun(&Returned_Converted_Config::a_string), "a_string");
|
||||
chai.add(chaiscript::fun(&Returned_Converted_Config::a_function), "a_function");
|
||||
chai.add(chaiscript::vector_conversion<std::vector<Returned_Converted_Config>>());
|
||||
|
||||
auto c = chai.eval<std::vector<Returned_Converted_Config>>(R"(
|
||||
var c = Returned_Converted_Config();
|
||||
|
||||
c.num_iterations = 5;
|
||||
c.something_else = c.num_iterations * 2;
|
||||
c.a_string = "string";
|
||||
c.a_function = fun(s) { s.size(); }
|
||||
|
||||
print("making vector");
|
||||
var v = [];
|
||||
print("adding config item");
|
||||
v.push_back_ref(c);
|
||||
print("returning vector");
|
||||
v;
|
||||
|
||||
)");
|
||||
|
||||
|
||||
std::cout << typeid(decltype(c)).name() << std::endl;
|
||||
|
||||
std::cout << "Info: " << c.size() << " " << &c[0] << std::endl;
|
||||
|
||||
std::cout << "num_iterations " << c[0].num_iterations << '\n'
|
||||
<< "something_else " << c[0].something_else << '\n'
|
||||
<< "a_string " << c[0].a_string << '\n'
|
||||
<< "a_function " << c[0].a_function("bob") << '\n';
|
||||
|
||||
chai.add(chaiscript::user_type<Returned_Converted_Config>(), "Returned_Converted_Config");
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user