From 2d3c2e3a0fd09bb5afa4a60358c714e52bb240ac Mon Sep 17 00:00:00 2001 From: Clar Fon Date: Sun, 28 Oct 2018 17:39:13 -0400 Subject: [PATCH] Test IntoIter::clone --- tests/tests.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/tests.rs b/tests/tests.rs index de3507a..7580eab 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -55,6 +55,7 @@ fn test_drop() { let flag = &Cell::new(0); + #[derive(Clone)] struct Bump<'a>(&'a Cell); impl<'a> Drop for Bump<'a> { @@ -105,6 +106,24 @@ fn test_drop() { assert_eq!(flag.get(), 3); } + // test cloning into_iter + flag.set(0); + { + let mut array = ArrayVec::<[_; 3]>::new(); + array.push(Bump(flag)); + array.push(Bump(flag)); + array.push(Bump(flag)); + let mut iter = array.into_iter(); + assert_eq!(flag.get(), 0); + iter.next(); + assert_eq!(flag.get(), 1); + let clone = iter.clone(); + assert_eq!(flag.get(), 1); + drop(clone); + assert_eq!(flag.get(), 3); + drop(iter); + assert_eq!(flag.get(), 5); + } } #[test]