Skip to content

Commit e207975

Browse files
committed
additional specializations tests
1 parent d077778 commit e207975

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/liballoc/tests/vec.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -736,6 +736,28 @@ fn test_from_iter_specialization() {
736736
assert_eq!(srcptr, sinkptr);
737737
}
738738

739+
#[test]
740+
fn test_from_iter_partially_drained_in_place_specialization() {
741+
let src: Vec<usize> = vec![0usize; 10];
742+
let srcptr = src.as_ptr();
743+
let mut iter = src.into_iter();
744+
iter.next();
745+
iter.next();
746+
let sink = iter.collect::<Vec<_>>();
747+
let sinkptr = sink.as_ptr();
748+
assert_eq!(srcptr, sinkptr);
749+
}
750+
751+
#[test]
752+
fn test_extend_in_place_specialization() {
753+
let src: Vec<usize> = vec![0usize; 1];
754+
let srcptr = src.as_ptr();
755+
let mut dst = Vec::new();
756+
dst.extend(src.into_iter());
757+
let dstptr = dst.as_ptr();
758+
assert_eq!(srcptr, dstptr);
759+
}
760+
739761
#[test]
740762
fn test_from_iter_specialization_with_iterator_adapters() {
741763
fn assert_in_place_trait<T: InPlaceIterable>(_: &T) {};

0 commit comments

Comments
 (0)