about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-09-23 17:14:41 -0700
committerBrian Anderson <banderson@mozilla.com>2011-09-24 12:36:50 -0700
commit97629727b18293ae57a4c93f41a0dac8b9611cbb (patch)
tree104ac58b6ff9c5e65a2cb34f60f75be0b9d39ef6
parentfbe00fc23650f4e6f7d7c8093c8f9dbbdb61661a (diff)
Add tests for swapping unique boxes
Issue #409
-rw-r--r--src/test/run-pass/unique-swap.rs7
-rw-r--r--src/test/run-pass/unique-swap2.rs32
2 files changed, 39 insertions, 0 deletions
diff --git a/src/test/run-pass/unique-swap.rs b/src/test/run-pass/unique-swap.rs
new file mode 100644
index 00000000000..d6912e87fb1
--- /dev/null
+++ b/src/test/run-pass/unique-swap.rs
@@ -0,0 +1,7 @@
+fn main() {
+    let i = ~100;
+    let j = ~200;
+    i <-> j;
+    assert i == ~200;
+    assert j == ~100;
+}
\ No newline at end of file
diff --git a/src/test/run-pass/unique-swap2.rs b/src/test/run-pass/unique-swap2.rs
new file mode 100644
index 00000000000..027958115fd
--- /dev/null
+++ b/src/test/run-pass/unique-swap2.rs
@@ -0,0 +1,32 @@
+resource r(i: @mutable int) {
+    *i += 1;
+}
+
+fn test1() {
+    let i = @mutable 100;
+    let j = @mutable 200;
+    {
+        let x = ~r(i);
+        let y = ~r(j);
+        x <-> y;
+        assert ***x == 200;
+        assert ***y == 100;
+    }
+    assert *i == 101;
+    assert *j == 201;
+}
+
+fn test2() {
+    let i = @mutable 0;
+    {
+        let x = ~r(i);
+        let y = ~r(i);
+        x <-> y;
+    }
+    assert *i == 2;
+}
+
+fn main() {
+    test1();
+    test2();
+}
\ No newline at end of file