//! `-Zmiri-disable-isolation` needed to run these under miri use test::{Bencher, black_box}; extern crate test; use super::Vec; use std::{vec::Vec as StdVec, fmt::Debug, mem}; #[bench] #[ignore = "ignored for miri compat"] fn std_push(b: &mut Bencher) { let mut vec = StdVec::new(); b.iter(|| vec.push(black_box(5))); black_box(vec); } #[bench] #[ignore = "ignored for miri compat"] fn dyn_push(b: &mut Bencher) { let mut vec = Vec::new(); b.iter(|| vec.push(black_box(5))); black_box(vec); } #[bench] #[ignore = "ignored for miri compat"] fn std_push_box(b: &mut Bencher) { let mut vec = StdVec::new(); b.iter(|| vec.push(black_box(Box::new(5) as Box))); black_box(vec); } #[bench] #[ignore = "ignored for miri compat"] fn dyn_push_unsize(b: &mut Bencher) { let mut vec = Vec::new(); b.iter(|| vec.push_unsize_stable(black_box(5), |v| v as &dyn Debug)); black_box(vec); } #[bench] #[ignore = "ignored for miri compat"] fn dyn_push_box(b: &mut Bencher) { let mut vec = Vec::new(); b.iter(|| vec.push_box(black_box(Box::new(5) as Box))); black_box(vec); } #[bench] #[ignore = "ignored for miri compat"] fn dyn_push_then_unsize(b: &mut Bencher) { let mut vec = Vec::new(); b.iter(|| vec.push(black_box(5))); let vec = black_box(vec).unsize_stable(|v| v as &dyn Debug); black_box(vec); } #[bench] #[ignore = "ignored for miri compat"] fn box_forget(b: &mut Bencher) { b.iter(|| mem::forget(black_box(Box::new(5)))); } #[bench] #[ignore = "ignored for miri compat"] fn box_dealloc(b: &mut Bencher) { b.iter(|| drop(black_box(Box::new(5)))); }