Skip to content

Commit 7d18040

Browse files
authored
Rollup merge of #74974 - RalfJung:miri-tests, r=Mark-Simulacrum
Make tests faster in Miri Reduce some test iteration counts in Miri.
2 parents 1033c74 + ff0c3a9 commit 7d18040

File tree

5 files changed

+18
-12
lines changed

5 files changed

+18
-12
lines changed

library/alloc/src/collections/vec_deque/tests.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ fn test_insert() {
107107
let cap = tester.capacity();
108108

109109
// len is the length *after* insertion
110-
for len in 1..cap {
110+
let minlen = if cfg!(miri) { cap - 1 } else { 1 }; // Miri is too slow
111+
for len in minlen..cap {
111112
// 0, 1, 2, .., len - 1
112113
let expected = (0..).take(len).collect::<VecDeque<_>>();
113114
for tail_pos in 0..cap {
@@ -221,7 +222,8 @@ fn test_remove() {
221222
let cap = tester.capacity();
222223

223224
// len is the length *after* removal
224-
for len in 0..cap - 1 {
225+
let minlen = if cfg!(miri) { cap - 2 } else { 0 }; // Miri is too slow
226+
for len in minlen..cap - 1 {
225227
// 0, 1, 2, .., len - 1
226228
let expected = (0..).take(len).collect::<VecDeque<_>>();
227229
for tail_pos in 0..cap {
@@ -251,7 +253,8 @@ fn test_range() {
251253
let mut tester: VecDeque<usize> = VecDeque::with_capacity(7);
252254

253255
let cap = tester.capacity();
254-
for len in 0..=cap {
256+
let minlen = if cfg!(miri) { cap - 1 } else { 0 }; // Miri is too slow
257+
for len in minlen..=cap {
255258
for tail in 0..=cap {
256259
for start in 0..=len {
257260
for end in start..=len {
@@ -384,7 +387,8 @@ fn test_split_off() {
384387
let cap = tester.capacity();
385388

386389
// len is the length *before* splitting
387-
for len in 0..cap {
390+
let minlen = if cfg!(miri) { cap - 1 } else { 0 }; // Miri is too slow
391+
for len in minlen..cap {
388392
// index to split at
389393
for at in 0..=len {
390394
// 0, 1, 2, .., at - 1 (may be empty)
@@ -495,8 +499,9 @@ fn test_vec_from_vecdeque() {
495499
fn test_clone_from() {
496500
let m = vec![1; 8];
497501
let n = vec![2; 12];
498-
for pfv in 0..8 {
499-
for pfu in 0..8 {
502+
let limit = if cfg!(miri) { 4 } else { 8 }; // Miri is too slow
503+
for pfv in 0..limit {
504+
for pfu in 0..limit {
500505
for longer in 0..2 {
501506
let (vr, ur) = if longer == 0 { (&m, &n) } else { (&n, &m) };
502507
let mut v = VecDeque::from(vr.clone());

library/alloc/tests/slice.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1721,8 +1721,8 @@ fn panic_safe() {
17211721

17221722
let mut rng = thread_rng();
17231723

1724-
// Miri is too slow
1725-
let lens = if cfg!(miri) { (1..10).chain(20..21) } else { (1..20).chain(70..MAX_LEN) };
1724+
// Miri is too slow (but still need to `chain` to make the types match)
1725+
let lens = if cfg!(miri) { (1..10).chain(0..0) } else { (1..20).chain(70..MAX_LEN) };
17261726
let moduli: &[u32] = if cfg!(miri) { &[5] } else { &[5, 20, 50] };
17271727

17281728
for len in lens {

library/core/tests/num/flt2dec/random.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ fn exact_f32_random_equivalence_test() {
188188
fn exact_f64_random_equivalence_test() {
189189
use core::num::flt2dec::strategy::dragon::format_exact as fallback;
190190
// Miri is too slow
191-
let n = if cfg!(miri) { 3 } else { 1_000 };
191+
let n = if cfg!(miri) { 2 } else { 1_000 };
192192

193193
for k in 1..21 {
194194
f64_random_equivalence_test(

library/core/tests/num/flt2dec/strategy/grisu.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use super::super::*;
22
use core::num::flt2dec::strategy::grisu::*;
33

44
#[test]
5+
#[cfg_attr(miri, ignore)] // Miri is too slow
56
fn test_cached_power() {
67
assert_eq!(CACHED_POW10.first().unwrap().1, CACHED_POW10_FIRST_E);
78
assert_eq!(CACHED_POW10.last().unwrap().1, CACHED_POW10_LAST_E);

library/core/tests/slice.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,15 +1358,15 @@ fn sort_unstable() {
13581358
use core::slice::heapsort;
13591359
use rand::{rngs::StdRng, seq::SliceRandom, Rng, SeedableRng};
13601360

1361-
// Miri is too slow
1362-
let large_range = if cfg!(miri) { 0..0 } else { 500..510 };
1361+
// Miri is too slow (but still need to `chain` to make the types match)
1362+
let lens = if cfg!(miri) { (2..20).chain(0..0) } else { (2..25).chain(500..510) };
13631363
let rounds = if cfg!(miri) { 1 } else { 100 };
13641364

13651365
let mut v = [0; 600];
13661366
let mut tmp = [0; 600];
13671367
let mut rng = StdRng::from_entropy();
13681368

1369-
for len in (2..25).chain(large_range) {
1369+
for len in lens {
13701370
let v = &mut v[0..len];
13711371
let tmp = &mut tmp[0..len];
13721372

0 commit comments

Comments
 (0)