diff options
| author | William S Fulton <wsf@fultondesigns.co.uk> | 2022-09-08 08:46:32 +0100 |
|---|---|---|
| committer | William S Fulton <wsf@fultondesigns.co.uk> | 2022-09-08 08:46:32 +0100 |
| commit | 2212af3f4f0906d84ef3aecf4812622af5f3ec7e (patch) | |
| tree | 1e6b6b68d102b6a92e83100e4591dbd80bf9985a /Examples/test-suite/python | |
| parent | c5495fea793a76093e436ffb702f00d233fd8e0a (diff) | |
| download | swig-2212af3f4f0906d84ef3aecf4812622af5f3ec7e.tar.gz | |
rvalue reference outputs
Document rvalue reference outputs behaviour
Test rvalue reference outputs
Diffstat (limited to 'Examples/test-suite/python')
| -rw-r--r-- | Examples/test-suite/python/cpp11_rvalue_reference_move_runme.py (renamed from Examples/test-suite/python/cpp11_rvalue_reference_move_input_runme.py) | 19 | ||||
| -rw-r--r-- | Examples/test-suite/python/cpp11_rvalue_reference_runme.py | 15 |
2 files changed, 25 insertions, 9 deletions
diff --git a/Examples/test-suite/python/cpp11_rvalue_reference_move_input_runme.py b/Examples/test-suite/python/cpp11_rvalue_reference_move_runme.py index 7db7b4c3b..43e586f9a 100644 --- a/Examples/test-suite/python/cpp11_rvalue_reference_move_input_runme.py +++ b/Examples/test-suite/python/cpp11_rvalue_reference_move_runme.py @@ -1,4 +1,4 @@ -from cpp11_rvalue_reference_move_input import * +from cpp11_rvalue_reference_move import * # Function containing rvalue reference parameter Counter.reset_counts() @@ -50,3 +50,20 @@ except ValueError as e: if not exception_thrown: raise RuntimeError("Should have thrown null error") Counter.check_counts(0, 0, 0, 0, 0, 0) + +# output +Counter.reset_counts() +mc = MovableCopyable.moveout(1234) +Counter.check_counts(2, 0, 0, 0, 1, 1) +MovableCopyable.check_numbers_match(mc, 1234) + +exception_thrown = False +try: + MovableCopyable.movein(mc) +except RuntimeError as e: + if "cannot release ownership as memory is not owned" not in str(e): + raise RuntimeError("incorrect exception message:" + str(e)) + exception_thrown = True +if not exception_thrown: + raise RuntimeError("Should have thrown 'Cannot release ownership as memory is not owned' error") +Counter.check_counts(2, 0, 0, 0, 1, 1) diff --git a/Examples/test-suite/python/cpp11_rvalue_reference_runme.py b/Examples/test-suite/python/cpp11_rvalue_reference_runme.py index 46d43a9b1..fad8b76d6 100644 --- a/Examples/test-suite/python/cpp11_rvalue_reference_runme.py +++ b/Examples/test-suite/python/cpp11_rvalue_reference_runme.py @@ -4,25 +4,24 @@ a = cpp11_rvalue_reference.A() a.setAcopy(5) if a.getAcopy() != 5: - raise RunTimeError("int A::getAcopy() value is ", + raise RuntimeError("int A::getAcopy() value is ", a.getAcopy(), " should be 5") ptr = a.getAptr() a.setAptr(ptr) if a.getAcopy() != 5: - raise RunTimeError("after A::setAptr(): int A::getAcopy() value is ", a.getAcopy( + raise RuntimeError("after A::setAptr(): int A::getAcopy() value is ", a.getAcopy( ), " should be 5") a.setAref(ptr) if a.getAcopy() != 5: - raise RunTimeError("after A::setAref(): int A::getAcopy() value is ", a.getAcopy( + raise RuntimeError("after A::setAref(): int A::getAcopy() value is ", a.getAcopy( ), " should be 5") rvalueref = a.getAmove() -# WIP: out rvalue references not yet modified for taking ownership -# a.setAmove(rvalueref) -# if a.getAcopy() != 5: -# raise RunTimeError("after A::setAmove(): int A::getAcopy() value is ", a.getAcopy( -# ), " should be 5") +a.setAref(rvalueref) +if a.getAcopy() != 5: + raise RuntimeError("after A::setAmove(): int A::getAcopy() value is ", a.getAcopy( + ), " should be 5") |
