diff --git a/CHANGES.current b/CHANGES.current index 791665901..d02337781 100644 --- a/CHANGES.current +++ b/CHANGES.current @@ -5,6 +5,10 @@ See the RELEASENOTES file for a summary of changes in each release. Version 3.0.0 (in progress) ============================ +2014-03-01: wsfulton + [Python] SF patch #347 Fix missing argument count checking with -modern. + Fixes regression introduced when builtin changes were introduced in SWIG-2.0.3. + 2014-02-21: wsfulton [PHP] Fix warning suppression using %warnfilter for PHP reserved class names. diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk index 6ea80670d..b9239315a 100644 --- a/Examples/test-suite/common.mk +++ b/Examples/test-suite/common.mk @@ -577,6 +577,7 @@ C_TEST_CASES += \ extern_declaration \ funcptr \ function_typedef \ + global_functions \ immutable_values \ inctest \ integers \ diff --git a/Examples/test-suite/global_functions.i b/Examples/test-suite/global_functions.i new file mode 100644 index 000000000..3c8780b61 --- /dev/null +++ b/Examples/test-suite/global_functions.i @@ -0,0 +1,8 @@ +%module global_functions + +%inline %{ +void global_void(void) {} +int global_one(int i) { return i; } +int global_two(int i, int j) { return i+j; } +%} + diff --git a/Examples/test-suite/python/global_functions_runme.py b/Examples/test-suite/python/global_functions_runme.py new file mode 100644 index 000000000..17b70b725 --- /dev/null +++ b/Examples/test-suite/python/global_functions_runme.py @@ -0,0 +1,52 @@ +from global_functions import * + +def check(a, b): + if a != b: + raise RuntimeError("Failed: " + str(a) + " != " + str(b)) +global_void() +check(global_one(1), 1) +check(global_two(2, 2), 4) + +fail = True +try: + global_void(1) +except TypeError, e: + fail = False +if fail: + raise RuntimeError("argument count check failed") + +fail = True +try: + global_one() +except TypeError, e: + fail = False +if fail: + raise RuntimeError("argument count check failed") + +fail = True +try: + global_one(2, 2) +except TypeError, e: + fail = False + +if fail: + raise RuntimeError("argument count check failed") + +fail = True +try: + global_two(1) +except TypeError, e: + fail = False + +if fail: + raise RuntimeError("argument count check failed") + +fail = True +try: + global_two(3, 3, 3) +except TypeError, e: + fail = False + +if fail: + raise RuntimeError("argument count check failed") +