summaryrefslogtreecommitdiff
path: root/Examples/test-suite
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite')
-rw-r--r--Examples/test-suite/python/python_builtin_runme.py11
-rw-r--r--Examples/test-suite/python_builtin.i14
2 files changed, 22 insertions, 3 deletions
diff --git a/Examples/test-suite/python/python_builtin_runme.py b/Examples/test-suite/python/python_builtin_runme.py
index c41dfc0b1..70990cbfd 100644
--- a/Examples/test-suite/python/python_builtin_runme.py
+++ b/Examples/test-suite/python/python_builtin_runme.py
@@ -1,6 +1,17 @@
from python_builtin import *
if is_python_builtin():
+ # Test 0 for default tp_hash
+ vs = ValueStruct(1234)
+ h = hash(vs)
+ d = dict()
+ d[h] = "hi"
+ if h not in d:
+ raise RuntimeError("h should be in d")
+ h2 = hash(ValueStruct.inout(vs))
+ if h != h2:
+ raise RuntimeError("default tp_hash not working")
+
# Test 1 for tp_hash
if hash(SimpleValue(222)) != 222:
raise RuntimeError("tp_hash not working")
diff --git a/Examples/test-suite/python_builtin.i b/Examples/test-suite/python_builtin.i
index ac1ad9c2d..e2c453d54 100644
--- a/Examples/test-suite/python_builtin.i
+++ b/Examples/test-suite/python_builtin.i
@@ -10,6 +10,17 @@ bool is_python_builtin() { return false; }
#endif
%}
+// Test 0 for default tp_hash
+%inline %{
+struct ValueStruct {
+ int value;
+ ValueStruct(int value) : value(value) {}
+ static ValueStruct *inout(ValueStruct *v) {
+ return v;
+ }
+};
+%}
+
// Test 1 for tp_hash
#if defined(SWIGPYTHON_BUILTIN)
%feature("python:tp_hash") SimpleValue "SimpleValueHashFunction"
@@ -19,9 +30,6 @@ bool is_python_builtin() { return false; }
struct SimpleValue {
int value;
SimpleValue(int value) : value(value) {}
- static SimpleValue *inout(SimpleValue *sv) {
- return sv;
- }
};
%}