From fff590d2e53588a67b28c2ebb73df58519708a06 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Fri, 30 Sep 2005 21:32:12 +0000 Subject: [PATCH] test compactdefaultargs feature git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7560 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Examples/test-suite/common.mk | 1 + Examples/test-suite/compactdefaultargs.i | 32 +++++++++++++++++++ .../python/compactdefaultargs_runme.py | 20 ++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 Examples/test-suite/compactdefaultargs.i create mode 100644 Examples/test-suite/python/compactdefaultargs_runme.py diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk index 2e523d8c9..63e20e1db 100644 --- a/Examples/test-suite/common.mk +++ b/Examples/test-suite/common.mk @@ -93,6 +93,7 @@ CPP_TEST_CASES += \ constructor_explicit \ constructor_value \ contract \ + compactdefaultargs \ conversion \ conversion_namespace \ conversion_ns_template \ diff --git a/Examples/test-suite/compactdefaultargs.i b/Examples/test-suite/compactdefaultargs.i new file mode 100644 index 000000000..a4462245d --- /dev/null +++ b/Examples/test-suite/compactdefaultargs.i @@ -0,0 +1,32 @@ +%module compactdefaultargs + +// compactdefaultargs off by default + +// The following should compile with compactdefaultargs off +%inline %{ +class Defaults1 { + static const int private_default = -1; +public: + static const double public_default = -1.0; + Defaults1(int a = private_default) {} + double ret(double d = public_default) { return d; } +}; +%} + + +// compactdefaultargs now on by default +%feature("compactdefaultargs"); + +// Turn compactdefaultargs off for the ret method which can't work with this feature +%feature("compactdefaultargs", "0") Defaults2(int a = private_default); + +%inline %{ +class Defaults2 { + static const int private_default = -1; +public: + static const double public_default = -1.0; + Defaults2(int a = private_default) {} + double ret(double d = public_default) { return d; } +}; +%} + diff --git a/Examples/test-suite/python/compactdefaultargs_runme.py b/Examples/test-suite/python/compactdefaultargs_runme.py new file mode 100644 index 000000000..ff865714c --- /dev/null +++ b/Examples/test-suite/python/compactdefaultargs_runme.py @@ -0,0 +1,20 @@ +from compactdefaultargs import * + +defaults1 = Defaults1(1000) +defaults1 = Defaults1() + +if defaults1.ret(10.0) != 10.0: + raise RuntimeError + +if defaults1.ret() != -1.0: + raise RuntimeError + +defaults2 = Defaults2(1000) +defaults2 = Defaults2() + +if defaults2.ret(10.0) != 10.0: + raise RuntimeError + +if defaults2.ret() != -1.0: + raise RuntimeError +