summaryrefslogtreecommitdiff
path: root/Examples/test-suite/python
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2022-09-08 08:46:32 +0100
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2022-09-08 08:46:32 +0100
commit2212af3f4f0906d84ef3aecf4812622af5f3ec7e (patch)
tree1e6b6b68d102b6a92e83100e4591dbd80bf9985a /Examples/test-suite/python
parentc5495fea793a76093e436ffb702f00d233fd8e0a (diff)
downloadswig-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.py15
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")