diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk index 74baddc81..ec52f29e3 100644 --- a/Examples/test-suite/common.mk +++ b/Examples/test-suite/common.mk @@ -79,7 +79,7 @@ CPP_TEST_BROKEN += \ extend_variable \ li_std_vector_ptr \ namespace_union \ - nested_struct \ + nested_structs \ overload_complicated \ template_default_pointer \ template_expr @@ -220,6 +220,7 @@ CPP_TEST_CASES += \ li_typemaps \ li_windows \ long_long_apply \ + memberin_extend \ member_pointer \ member_template \ minherit \ diff --git a/Examples/test-suite/java/memberin_extend_runme.java b/Examples/test-suite/java/memberin_extend_runme.java new file mode 100644 index 000000000..c3fa29d8d --- /dev/null +++ b/Examples/test-suite/java/memberin_extend_runme.java @@ -0,0 +1,26 @@ + +import memberin_extend.*; + +public class memberin_extend_runme { + static { + try { + System.loadLibrary("memberin_extend"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String argv[]) + { + ExtendMe em1 = new ExtendMe(); + ExtendMe em2 = new ExtendMe(); + em1.setThing("em1thing"); + em2.setThing("em2thing"); + if (!em1.getThing().equals("em1thing")) + throw new RuntimeException("wrong: " + em1.getThing()); + if (!em2.getThing().equals("em2thing")) + throw new RuntimeException("wrong: " + em2.getThing()); + } +} + diff --git a/Examples/test-suite/memberin_extend.i b/Examples/test-suite/memberin_extend.i new file mode 100644 index 000000000..f20617b66 --- /dev/null +++ b/Examples/test-suite/memberin_extend.i @@ -0,0 +1,22 @@ +%module memberin_extend + +// Tests memberin typemap. The default char * memberin typemap will be used. +// The test extends the struct with a pseudo member variable + +%inline %{ +#include +struct ExtendMe { +}; +%} + +%{ +#include +std::map ExtendMeStringMap; +#define ExtendMe_thing_set(self_, val_) ExtendMeStringMap[self_] +#define ExtendMe_thing_get(self_) ExtendMeStringMap[self_] +%} + +%extend ExtendMe { + char *thing; +} +