summaryrefslogtreecommitdiff
path: root/Examples
diff options
context:
space:
mode:
Diffstat (limited to 'Examples')
-rw-r--r--Examples/test-suite/common.mk1
-rw-r--r--Examples/test-suite/director_comparison_operators.i16
-rw-r--r--Examples/test-suite/python/director_comparison_operators_runme.py11
3 files changed, 28 insertions, 0 deletions
diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk
index e77f09c86..55cbd2cce 100644
--- a/Examples/test-suite/common.mk
+++ b/Examples/test-suite/common.mk
@@ -184,6 +184,7 @@ CPP_TEST_CASES += \
director_classes \
director_classic \
director_constructor \
+ director_comparison_operators \
director_conversion_operators \
director_default \
director_detect \
diff --git a/Examples/test-suite/director_comparison_operators.i b/Examples/test-suite/director_comparison_operators.i
new file mode 100644
index 000000000..9577847e1
--- /dev/null
+++ b/Examples/test-suite/director_comparison_operators.i
@@ -0,0 +1,16 @@
+%module(directors="1") director_comparison_operators
+
+%include "std_string.i"
+%feature("director");
+
+%inline %{
+class Foo {
+public:
+ virtual ~Foo() { }
+ virtual bool operator==(const Foo&) const = 0;
+ virtual bool operator>=(const Foo&) const = 0;
+ virtual bool operator<=(const Foo&) const = 0;
+ virtual bool operator!=(const Foo&) const = 0;
+ virtual std::string test(const char *foo="a=1,b=2") { return foo; }
+};
+%}
diff --git a/Examples/test-suite/python/director_comparison_operators_runme.py b/Examples/test-suite/python/director_comparison_operators_runme.py
new file mode 100644
index 000000000..4fe733098
--- /dev/null
+++ b/Examples/test-suite/python/director_comparison_operators_runme.py
@@ -0,0 +1,11 @@
+import director_comparison_operators
+
+
+class PyFoo(director_comparison_operators.Foo):
+ pass
+
+
+a = PyFoo()
+
+if a.test() != "a=1,b=2":
+ raise RuntimeError, a.test()