diff options
| author | Pazzaz <pazzaz.sundqvist@gmail.com> | 2018-08-15 19:42:07 +0200 |
|---|---|---|
| committer | Pazzaz <pazzaz.sundqvist@gmail.com> | 2018-08-15 19:42:07 +0200 |
| commit | b063bd4616bf2f27b814f39f0e452efd171fd539 (patch) | |
| tree | 3f921d87352e20524defded86c729506a156d478 /src/liballoc | |
| parent | 76625280b25bfe66d3a6e2c7e4c04726886fa7e1 (diff) | |
| download | rust-b063bd4616bf2f27b814f39f0e452efd171fd539.tar.gz rust-b063bd4616bf2f27b814f39f0e452efd171fd539.zip | |
Test VecDeque append not dropping twice
Diffstat (limited to 'src/liballoc')
| -rw-r--r-- | src/liballoc/tests/vec_deque.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/liballoc/tests/vec_deque.rs b/src/liballoc/tests/vec_deque.rs index 6efd3d60060..3ea6c87a651 100644 --- a/src/liballoc/tests/vec_deque.rs +++ b/src/liballoc/tests/vec_deque.rs @@ -1004,6 +1004,31 @@ fn test_append_permutations() { } } +struct DropCounter<'a> { + count: &'a mut u32, +} + +impl<'a> Drop for DropCounter<'a> { + fn drop(&mut self) { + *self.count += 1; + } +} + +#[test] +fn test_append_double_drop() { + let (mut count_a, mut count_b) = (0, 0); + { + let mut a = VecDeque::new(); + let mut b = VecDeque::new(); + a.push_back(DropCounter { count: &mut count_a }); + b.push_back(DropCounter { count: &mut count_b }); + + a.append(&mut b); + } + assert_eq!(count_a, 1); + assert_eq!(count_b, 1); +} + #[test] fn test_retain() { let mut buf = VecDeque::new(); |
