Let cpp_basic unit test pass without method pointers support

This was the only part of the test that didn't work, test at least the rest of
it.
This commit is contained in:
Vadim Zeitlin 2016-04-20 18:41:21 +02:00
commit 7bb7fe135a
3 changed files with 12 additions and 7 deletions

View file

@ -63,7 +63,6 @@ FAILING_CPP_TESTS := \
class_ignore \ class_ignore \
class_scope_weird \ class_scope_weird \
constant_pointers \ constant_pointers \
cpp_basic \
cpp_basic_global_var_built_in \ cpp_basic_global_var_built_in \
cpp_basic_template_function \ cpp_basic_template_function \
cpp_namespace \ cpp_namespace \

View file

@ -83,13 +83,15 @@ int main(int argc, const char *argv[]) {
Bar_global_fval_set(f); Bar_global_fval_set(f);
assert(Foo_num_get(Bar_global_fval_get()) == 7); assert(Foo_num_get(Bar_global_fval_get()) == 7);
// test getting, setting and calling function pointers // getting, setting and calling function pointers isn't supported yet
SWIG_CPP_FP func1 = get_func1_ptr(); #if 0
SomeTypeForMemFnPtr func1 = _wrap_get_func1_ptr();
Foo_func_ptr_set(f, func1); Foo_func_ptr_set(f, func1);
assert(test_func_ptr(f, 2) == 28); assert(_wrap_test_func_ptr(f, 2) == 28);
SWIG_CPP_FP func2 = get_func2_ptr(); SomeTypeForMemFnPtr func2 = _wrap_get_func2_ptr();
Foo_func_ptr_set(f, func2); Foo_func_ptr_set(f, func2);
assert(test_func_ptr(f, 2) == -14); assert(_wrap_test_func_ptr(f, 2) == -14);
#endif
delete_Bar(b); delete_Bar(b);
delete_Foo(f); delete_Foo(f);
@ -104,4 +106,4 @@ int main(int argc, const char *argv[]) {
w = 0; w = 0;
return 0; return 0;
} }

View file

@ -29,7 +29,9 @@ class Foo {
return -a*num; return -a*num;
} }
#ifndef SWIGC
int (Foo::*func_ptr)(int); int (Foo::*func_ptr)(int);
#endif // SWIGC
const char* __str__() const { return "Foo"; } const char* __str__() const { return "Foo"; }
}; };
@ -87,6 +89,7 @@ Foo Bar::global_fval = Foo(3);
%} %}
/* member function tests */ /* member function tests */
#ifndef SWIGC
%inline %{ %inline %{
int (Foo::*get_func1_ptr())(int) { int (Foo::*get_func1_ptr())(int) {
return &Foo::func1; return &Foo::func1;
@ -101,6 +104,7 @@ int test_func_ptr(Foo *f, int a) {
} }
%} %}
#endif // SWIGC
#ifdef __cplusplus #ifdef __cplusplus