summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2009-07-09 19:56:47 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2009-07-09 19:56:47 +0000
commit0576ffcde7ecc664848e77219f6709bde86dff6b (patch)
tree476e18aa7316bf8fdcd9a71700f683fee319a405
parent224c83ef096de1a6817c3582394e60315d43c4e5 (diff)
downloadswig-0576ffcde7ecc664848e77219f6709bde86dff6b.tar.gz
add test for %extend on member variable
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11382 626c5289-ae23-0410-ae9c-e8d60b6d4f22
-rw-r--r--Examples/test-suite/common.mk3
-rw-r--r--Examples/test-suite/java/memberin_extend_runme.java26
-rw-r--r--Examples/test-suite/memberin_extend.i22
3 files changed, 50 insertions, 1 deletions
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 <string>
+struct ExtendMe {
+};
+%}
+
+%{
+#include <map>
+std::map<ExtendMe*, char *> ExtendMeStringMap;
+#define ExtendMe_thing_set(self_, val_) ExtendMeStringMap[self_]
+#define ExtendMe_thing_get(self_) ExtendMeStringMap[self_]
+%}
+
+%extend ExtendMe {
+ char *thing;
+}
+