summaryrefslogtreecommitdiff
path: root/Examples/test-suite
diff options
context:
space:
mode:
authorPaweł Tomulik <ptomulik@meil.pw.edu.pl>2013-01-04 15:43:44 +0100
committerPaweł Tomulik <ptomulik@meil.pw.edu.pl>2013-01-04 15:43:44 +0100
commitda00bdb12dba1383983a62a385da6aa1036d12e6 (patch)
tree375fb17c23a0f4baa38076419a991e5684a1ae05 /Examples/test-suite
parent3e2c6bb03d07a7cbe004be91d29f711339a61e9e (diff)
downloadswig-da00bdb12dba1383983a62a385da6aa1036d12e6.tar.gz
added python test case li_std_except_as_class for SF bug 1295
Diffstat (limited to 'Examples/test-suite')
-rw-r--r--Examples/test-suite/common.mk1
-rw-r--r--Examples/test-suite/li_std_except_as_class.i19
-rw-r--r--Examples/test-suite/python/li_std_except_as_class_runme.py9
3 files changed, 29 insertions, 0 deletions
diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk
index 0c790caf6..4ba669497 100644
--- a/Examples/test-suite/common.mk
+++ b/Examples/test-suite/common.mk
@@ -480,6 +480,7 @@ CPP_STD_TEST_CASES += \
li_std_combinations \
li_std_deque \
li_std_except \
+ li_std_except_as_class \
li_std_map \
li_std_pair \
li_std_pair_using \
diff --git a/Examples/test-suite/li_std_except_as_class.i b/Examples/test-suite/li_std_except_as_class.i
new file mode 100644
index 000000000..00de76eac
--- /dev/null
+++ b/Examples/test-suite/li_std_except_as_class.i
@@ -0,0 +1,19 @@
+/* File : li_std_except_as_class.i */
+%module li_std_except_as_class
+
+/* NOTE: SF bug 1295:
+ * if there were also functions throwing 'std::logic_error' and
+ * 'std::exception' then the bug would not be fully replicated */
+
+%{
+#include <exception>
+#include <stdexcept>
+void test_domain_error() throw(std::domain_error)
+{ throw std::domain_error("std::domain_error"); }
+%}
+
+%include <std_string.i>
+#define SWIG_STD_EXCEPTIONS_AS_CLASSES
+%include <std_except.i>
+void test_domain_error() throw(std::domain_error)
+{ throw std::domain_error("std::domain_error"); }
diff --git a/Examples/test-suite/python/li_std_except_as_class_runme.py b/Examples/test-suite/python/li_std_except_as_class_runme.py
new file mode 100644
index 000000000..386a878bf
--- /dev/null
+++ b/Examples/test-suite/python/li_std_except_as_class_runme.py
@@ -0,0 +1,9 @@
+from li_std_except_as_class import *
+
+# std::domain_error hierarchy
+try: test_domain_error()
+except domain_error: pass
+try: test_domain_error()
+except logic_error: pass
+try: test_domain_error()
+except exception: pass