diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-09-23 17:14:41 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-09-24 12:36:50 -0700 |
| commit | 97629727b18293ae57a4c93f41a0dac8b9611cbb (patch) | |
| tree | 104ac58b6ff9c5e65a2cb34f60f75be0b9d39ef6 | |
| parent | fbe00fc23650f4e6f7d7c8093c8f9dbbdb61661a (diff) | |
Add tests for swapping unique boxes
Issue #409
| -rw-r--r-- | src/test/run-pass/unique-swap.rs | 7 | ||||
| -rw-r--r-- | src/test/run-pass/unique-swap2.rs | 32 |
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 |
