| # Note that this test is also used by python_default_args_runme.py hence | |
| # the use of __main__ and the run function | |
| from swig_test_utils import swig_check | |
| def run(module_name): | |
| default_args = __import__(module_name) | |
| ec = default_args.EnumClass() | |
| if not ec.blah(): | |
| raise RuntimeError("EnumClass::blah() default arguments don't work") | |
| de = default_args.DerivedEnumClass() | |
| de.accelerate() | |
| de.accelerate(default_args.EnumClass.SLOW) | |
| if default_args.Statics.staticMethod() != 60: | |
| raise RuntimeError | |
| if default_args.cfunc1(1) != 2: | |
| raise RuntimeError | |
| if default_args.cfunc2(1) != 3: | |
| raise RuntimeError | |
| if default_args.cfunc3(1) != 4: | |
| raise RuntimeError | |
| f = default_args.Foo() | |
| f.newname() | |
| f.newname(1) | |
| f.defaulted1() | |
| f.defaulted2() | |
| if f.double_if_void_ptr_is_null(2, None) != 4: | |
| raise RuntimeError | |
| if f.double_if_void_ptr_is_null(3) != 6: | |
| raise RuntimeError | |
| if f.double_if_handle_is_null(4, None) != 8: | |
| raise RuntimeError | |
| if f.double_if_handle_is_null(5) != 10: | |
| raise RuntimeError | |
| if f.double_if_dbl_ptr_is_null(6, None) != 12: | |
| raise RuntimeError | |
| if f.double_if_dbl_ptr_is_null(7) != 14: | |
| raise RuntimeError | |
| try: | |
| f = default_args.Foo(1) | |
| error = 1 | |
| except: | |
| error = 0 | |
| if error: | |
| raise RuntimeError("Foo::Foo ignore is not working") | |
| try: | |
| f = default_args.Foo(1, 2) | |
| error = 1 | |
| except: | |
| error = 0 | |
| if error: | |
| raise RuntimeError("Foo::Foo ignore is not working") | |
| try: | |
| f = default_args.Foo(1, 2, 3) | |
| error = 1 | |
| except: | |
| error = 0 | |
| if error: | |
| raise RuntimeError("Foo::Foo ignore is not working") | |
| try: | |
| m = f.meth(1) | |
| error = 1 | |
| except: | |
| error = 0 | |
| if error: | |
| raise RuntimeError("Foo::meth ignore is not working") | |
| try: | |
| m = f.meth(1, 2) | |
| error = 1 | |
| except: | |
| error = 0 | |
| if error: | |
| raise RuntimeError("Foo::meth ignore is not working") | |
| try: | |
| m = f.meth(1, 2, 3) | |
| error = 1 | |
| except: | |
| error = 0 | |
| if error: | |
| raise RuntimeError("Foo::meth ignore is not working") | |
| Klass_inc = default_args.Klass.inc | |
| if Klass_inc(100, default_args.Klass(22)).val != 122: | |
| raise RuntimeError("Klass::inc failed") | |
| if Klass_inc(100).val != 99: | |
| raise RuntimeError("Klass::inc failed") | |
| if Klass_inc().val != 0: | |
| raise RuntimeError("Klass::inc failed") | |
| tricky = default_args.TrickyInPython() | |
| if tricky.value_m1(10) != -1: | |
| raise RuntimeError("trickyvalue_m1 failed") | |
| if tricky.value_m1(10, 10) != 10: | |
| raise RuntimeError("trickyvalue_m1 failed") | |
| if tricky.value_0xabcdef(10) != 0xabcdef: | |
| raise RuntimeError("trickyvalue_0xabcdef failed") | |
| if tricky.value_0644(10) != 420: | |
| raise RuntimeError("trickyvalue_0644 failed") | |
| if tricky.value_perm(10) != 420: | |
| raise RuntimeError("trickyvalue_perm failed") | |
| if tricky.value_m01(10) != -1: | |
| raise RuntimeError("trickyvalue_m01 failed") | |
| if not tricky.booltest2(): | |
| raise RuntimeError("booltest2 failed") | |
| if tricky.max_32bit_int1() != 0x7FFFFFFF: | |
| raise RuntimeError("max_32bit_int1 failed") | |
| if tricky.min_32bit_int1() != -2147483648: | |
| raise RuntimeError("min_32bit_int1 failed") | |
| if tricky.max_32bit_int2() != 0x7FFFFFFF: | |
| raise RuntimeError("max_32bit_int2 failed") | |
| tricky.too_big_32bit_int1() | |
| tricky.too_small_32bit_int1() | |
| tricky.too_big_32bit_int2() | |
| tricky.too_small_32bit_int2() | |
| default_args.seek() | |
| default_args.seek(10) | |
| if not default_args.booltest(): | |
| raise RuntimeError("booltest failed") | |
| if default_args.slightly_off_square(10) != 102: | |
| raise RuntimeError | |
| if default_args.slightly_off_square() != 291: | |
| raise RuntimeError | |
| if default_args.Q.slightly_off_square_static(10) != 102: | |
| raise RuntimeError | |
| # Regression test for https://github.com/swig/swig/issues/2786 | |
| if default_args.Q.slightly_off_square_static() != 291: | |
| raise RuntimeError | |
| q = default_args.Q() | |
| if q.slightly_off_square(10) != 102: | |
| raise RuntimeError | |
| # Regression test for https://github.com/swig/swig/issues/2786 | |
| if q.slightly_off_square() != 291: | |
| raise RuntimeError | |
| # It is difficult to test the python:cdefaultargs feature properly as -builtin | |
| # and -fastproxy do not use the Python layer for default args | |
| if default_args.CDA().cdefaultargs_test1() != 1: | |
| raise RuntimeError | |
| if default_args.CDA().cdefaultargs_test2() != 1: | |
| raise RuntimeError | |
| if default_args.chartest1() != "x": | |
| raise RuntimeError | |
| if default_args.chartest2() != "\0": | |
| raise RuntimeError | |
| if default_args.chartest3() != "\1": | |
| raise RuntimeError | |
| if default_args.chartest4() != "\n": | |
| raise RuntimeError | |
| if default_args.chartest5() != "B": | |
| raise RuntimeError | |
| if default_args.chartest6() != "C": | |
| raise RuntimeError | |
| default_args.wrapptr_0(1) | |
| default_args.wrapptr_0l(1) | |
| default_args.wrapptr_null(1) | |
| default_args.wrapptr_nullptr(1) | |
| swig_check(default_args.sizeof_subscript_default_arg(), 5) | |
| swig_check(default_args.sizeof_subscript_count, 5) | |
| swig_check(default_args.number_subscript_default_arg(), 3) | |
| swig_check(default_args.new_subscript_default_arg(), 2) | |
| size = default_args.sizeof_member_size() | |
| swig_check(default_args.sizeof_member_constant, 2 * size) | |
| swig_check(default_args.sizeof_member_default(), 2 * size) | |
| swig_check(default_args.sizeof_member_default(1), 1 + size) | |
| swig_check(default_args.sizeof_member_chain(), True) | |
| swig_check(default_args.sizeof_member_chain(0), False) | |
| if __name__ == "__main__": | |
| run("default_args") |