Skip to content

Commit e00f76d

Browse files
authored
Rename and enhance zst_vec_iter_nth_back_regression test
Refactor regression test to include multiple collection types.
1 parent 89b4b30 commit e00f76d

File tree

1 file changed

+24
-6
lines changed
  • library/alloctests/tests

1 file changed

+24
-6
lines changed

library/alloctests/tests/vec.rs

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2720,14 +2720,32 @@ fn vec_null_ptr_roundtrip() {
27202720

27212721
// Regression test for Undefined Behavior (UB) caused by IntoIter::nth_back (#148682)
27222722
// when dealing with high-aligned Zero-Sized Types (ZSTs).
2723+
use std::collections::{BTreeMap, BinaryHeap, HashMap, VecDeque, LinkedList};
27232724
#[test]
2724-
fn zst_vec_iter_nth_back_regression() {
2725+
fn zst_collections_iter_nth_back_regression() {
27252726
#[repr(align(8))]
2727+
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy)]
27262728
struct Thing;
27272729
let v = vec![Thing, Thing];
2728-
let mut iter = v.into_iter();
2729-
let _ = iter.nth_back(1);
2730-
let v2 = vec![Thing, Thing];
2731-
let mut iter2 = v2.into_iter();
2732-
let _ = iter2.nth_back(0);
2730+
let _ = v.into_iter().nth_back(1);
2731+
let mut d = VecDeque::new();
2732+
d.push_back(Thing);
2733+
d.push_back(Thing);
2734+
let _ = d.into_iter().nth_back(1);
2735+
let mut map = BTreeMap::new();
2736+
map.insert(0, Thing);
2737+
map.insert(1, Thing);
2738+
let _ = map.into_values().nth_back(0);
2739+
let mut hash_map = HashMap::new();
2740+
hash_map.insert(1, Thing);
2741+
hash_map.insert(2, Thing);
2742+
let _ = hash_map.into_values().nth(1);
2743+
let mut heap = BinaryHeap::new();
2744+
heap.push(Thing);
2745+
heap.push(Thing);
2746+
let _ = heap.into_iter().nth_back(1);
2747+
let mut list = LinkedList::new();
2748+
list.push_back(Thing);
2749+
list.push_back(Thing);
2750+
let _ = list.into_iter().nth_back(1);
27332751
}

0 commit comments

Comments
 (0)