aboutsummaryrefslogtreecommitdiff
path: root/src/collector.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/collector.rs')
-rw-r--r--src/collector.rs30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/collector.rs b/src/collector.rs
index 7cfb819..099a2ff 100644
--- a/src/collector.rs
+++ b/src/collector.rs
@@ -178,13 +178,18 @@ mod tests {
#[test]
fn pin_holds_advance() {
+ #[cfg(miri)]
+ const N: usize = 500;
+ #[cfg(not(miri))]
+ const N: usize = 500_000;
+
let collector = Collector::new();
thread::scope(|scope| {
for _ in 0..NUM_THREADS {
scope.spawn(|_| {
let handle = collector.register();
- for _ in 0..500_000 {
+ for _ in 0..N {
let guard = &handle.pin();
let before = collector.global.epoch.load(Ordering::Relaxed);
@@ -202,6 +207,9 @@ mod tests {
#[cfg(not(crossbeam_sanitize))] // TODO: assertions failed due to `cfg(crossbeam_sanitize)` reduce `internal::MAX_OBJECTS`
#[test]
fn incremental() {
+ #[cfg(miri)]
+ const COUNT: usize = 500;
+ #[cfg(not(miri))]
const COUNT: usize = 100_000;
static DESTROYS: AtomicUsize = AtomicUsize::new(0);
@@ -230,12 +238,16 @@ mod tests {
let guard = &handle.pin();
collector.global.collect(guard);
}
- assert!(DESTROYS.load(Ordering::Relaxed) == 100_000);
+ assert!(DESTROYS.load(Ordering::Relaxed) == COUNT);
}
#[test]
fn buffering() {
const COUNT: usize = 10;
+ #[cfg(miri)]
+ const N: usize = 500;
+ #[cfg(not(miri))]
+ const N: usize = 100_000;
static DESTROYS: AtomicUsize = AtomicUsize::new(0);
let collector = Collector::new();
@@ -252,7 +264,7 @@ mod tests {
}
}
- for _ in 0..100_000 {
+ for _ in 0..N {
collector.global.collect(&handle.pin());
}
assert!(DESTROYS.load(Ordering::Relaxed) < COUNT);
@@ -268,6 +280,9 @@ mod tests {
#[test]
fn count_drops() {
+ #[cfg(miri)]
+ const COUNT: usize = 500;
+ #[cfg(not(miri))]
const COUNT: usize = 100_000;
static DROPS: AtomicUsize = AtomicUsize::new(0);
@@ -301,6 +316,9 @@ mod tests {
#[test]
fn count_destroy() {
+ #[cfg(miri)]
+ const COUNT: usize = 500;
+ #[cfg(not(miri))]
const COUNT: usize = 100_000;
static DESTROYS: AtomicUsize = AtomicUsize::new(0);
@@ -367,6 +385,9 @@ mod tests {
#[test]
fn destroy_array() {
+ #[cfg(miri)]
+ const COUNT: usize = 500;
+ #[cfg(not(miri))]
const COUNT: usize = 100_000;
static DESTROYS: AtomicUsize = AtomicUsize::new(0);
@@ -402,6 +423,9 @@ mod tests {
#[test]
fn stress() {
const THREADS: usize = 8;
+ #[cfg(miri)]
+ const COUNT: usize = 500;
+ #[cfg(not(miri))]
const COUNT: usize = 100_000;
static DROPS: AtomicUsize = AtomicUsize::new(0);