diff options
author | Alistair Delva <adelva@google.com> | 2024-04-10 14:15:29 -0700 |
---|---|---|
committer | Alistair Delva <adelva@google.com> | 2024-04-11 12:58:28 -0700 |
commit | d0f0f90be16c2ac553b5fa08512045273135147a (patch) | |
tree | 5d9ebb7a04807ea8a609ddd18b0162bc87530e4b /Examples/test-suite/python/cpp11_shared_ptr_upcast_runme.py | |
parent | 6ffc1dbf29ba98c4d8aa71ebc9b484e973fe1030 (diff) | |
download | swig-d0f0f90be16c2ac553b5fa08512045273135147a.tar.gz |
Update to v4.2.1HEADmastermainllvm-r522817
Change-Id: I47cef2be94299220d80265d949a95b58eee2c23b
Diffstat (limited to 'Examples/test-suite/python/cpp11_shared_ptr_upcast_runme.py')
-rw-r--r-- | Examples/test-suite/python/cpp11_shared_ptr_upcast_runme.py | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Examples/test-suite/python/cpp11_shared_ptr_upcast_runme.py b/Examples/test-suite/python/cpp11_shared_ptr_upcast_runme.py new file mode 100644 index 000000000..08546a45e --- /dev/null +++ b/Examples/test-suite/python/cpp11_shared_ptr_upcast_runme.py @@ -0,0 +1,63 @@ +from cpp11_shared_ptr_upcast import * + +# This is a port from the Ruby equivalent test and some tests ported from +# Examples/test-suite/ruby/cpp11_shared_ptr_upcast_runme.rb are not working and commented out with: +# not working: + +def swig_assert_equal_simple(expected, got): + if expected != got: + raise RuntimeError("Expected: {}. Got: {}") + +# non-overloaded +swig_assert_equal_simple(7, derived_num1(Derived(7))) +swig_assert_equal_simple(7, derived_num2([Derived(7)])) +swig_assert_equal_simple(7, derived_num3({0: Derived(7)})) + +swig_assert_equal_simple(-1, base_num1(Derived(7))) +swig_assert_equal_simple(-1, base_num2([Derived(7)])) +swig_assert_equal_simple(-1, base_num3({0: Derived(7)})) + +swig_assert_equal_simple(999, derived_num1(None)) +# not working: swig_assert_equal_simple(999, derived_num2([None])) +# not working: swig_assert_equal_simple(999, derived_num3({0: None})) + +swig_assert_equal_simple(999, base_num1(None)) +# not working: swig_assert_equal_simple(999, base_num2([None])) +# not working: swig_assert_equal_simple(999, base_num3({0: None})) + +# overloaded +swig_assert_equal_simple(7, derived_num(Derived(7))) +swig_assert_equal_simple(7, derived_num([Derived(7)])) +swig_assert_equal_simple(7, derived_num({0: Derived(7)})) + +swig_assert_equal_simple(-1, base_num(Derived(7))) +swig_assert_equal_simple(-1, base_num([Derived(7)])) +swig_assert_equal_simple(-1, base_num({0: Derived(7)})) + +# ptr to shared_ptr +swig_assert_equal_simple(7, derived2_num1(Derived2(7))) +swig_assert_equal_simple(7, derived2_num2([Derived2(7)])) +swig_assert_equal_simple(7, derived2_num3({0: Derived2(7)})) + +swig_assert_equal_simple(-1, base2_num1(Derived2(7))) + +# not working: try: +# not working: # Upcast for pointers to shared_ptr in this generic framework has not been implemented +# not working: swig_assert_equal_simple(-1, base2_num2([Derived2(7)])) +# not working: raise RuntimeError, "Failed to catch TypeError" +# not working: except TypeError: +# not working: pass +# not working: try: +# not working: # Upcast for pointers to shared_ptr in this generic framework has not been implemented +# not working: swig_assert_equal_simple(-1, base2_num3({0: Derived2(7)})) +# not working: raise RuntimeError, "Failed to catch TypeError" +# not working: except TypeError: +# not working: pass + +swig_assert_equal_simple(888, derived2_num1(None)) +swig_assert_equal_simple(999, derived2_num2([None])) # although 888 would be more consistent +swig_assert_equal_simple(999, derived2_num3({0: None})) # although 888 would be more consistent + +swig_assert_equal_simple(888, base2_num1(None)) +swig_assert_equal_simple(999, base2_num2([None])) # although 888 would be more consistent +swig_assert_equal_simple(999, base2_num3({0: None})) # although 888 would be more consistent |