Skip to content

Commit 34c8db6

Browse files
committed
disable address reuse in data race tests
1 parent c962d88 commit 34c8db6

37 files changed

+82
-4
lines changed

tests/fail/both_borrows/retag_data_race_write.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
//! Make sure that a retag acts like a write for the data race model.
22
//@revisions: stack tree
33
//@compile-flags: -Zmiri-preemption-rate=0
4+
// Avoid accidental synchronization via address reuse inside `thread::spawn`.
5+
//@compile-flags: -Zmiri-address-reuse-rate=0
46
//@[tree]compile-flags: -Zmiri-tree-borrows
57
#[derive(Copy, Clone)]
68
struct SendPtr(*mut u8);

tests/fail/data_race/alloc_read_race.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
//@compile-flags: -Zmiri-disable-weak-memory-emulation -Zmiri-preemption-rate=0 -Zmiri-disable-stacked-borrows
2+
// Avoid accidental synchronization via address reuse inside `thread::spawn`.
3+
//@compile-flags: -Zmiri-address-reuse-rate=0
24
#![feature(new_uninit)]
35

46
use std::mem::MaybeUninit;

tests/fail/data_race/alloc_write_race.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
//@compile-flags: -Zmiri-disable-weak-memory-emulation -Zmiri-preemption-rate=0 -Zmiri-disable-stacked-borrows
2+
// Avoid accidental synchronization via address reuse inside `thread::spawn`.
3+
//@compile-flags: -Zmiri-address-reuse-rate=0
24
#![feature(new_uninit)]
35

46
use std::ptr::null_mut;

tests/fail/data_race/atomic_read_na_write_race1.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// We want to control preemption here. Stacked borrows interferes by having its own accesses.
22
//@compile-flags: -Zmiri-preemption-rate=0 -Zmiri-disable-stacked-borrows
3+
// Avoid accidental synchronization via address reuse inside `thread::spawn`.
4+
//@compile-flags: -Zmiri-address-reuse-rate=0
35

46
use std::sync::atomic::{AtomicUsize, Ordering};
57
use std::thread::spawn;

tests/fail/data_race/atomic_read_na_write_race2.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// We want to control preemption here. Stacked borrows interferes by having its own accesses.
22
//@compile-flags: -Zmiri-preemption-rate=0 -Zmiri-disable-stacked-borrows
3+
// Avoid accidental synchronization via address reuse inside `thread::spawn`.
4+
//@compile-flags: -Zmiri-address-reuse-rate=0
35

46
use std::sync::atomic::AtomicUsize;
57
use std::sync::atomic::Ordering;

tests/fail/data_race/atomic_write_na_read_race1.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// We want to control preemption here. Stacked borrows interferes by having its own accesses.
22
//@compile-flags: -Zmiri-preemption-rate=0 -Zmiri-disable-stacked-borrows
3+
// Avoid accidental synchronization via address reuse inside `thread::spawn`.
4+
//@compile-flags: -Zmiri-address-reuse-rate=0
35

46
use std::sync::atomic::AtomicUsize;
57
use std::sync::atomic::Ordering;

tests/fail/data_race/atomic_write_na_read_race2.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// We want to control preemption here. Stacked borrows interferes by having its own accesses.
22
//@compile-flags: -Zmiri-preemption-rate=0 -Zmiri-disable-stacked-borrows
3+
// Avoid accidental synchronization via address reuse inside `thread::spawn`.
4+
//@compile-flags: -Zmiri-address-reuse-rate=0
35

46
use std::sync::atomic::{AtomicUsize, Ordering};
57
use std::thread::spawn;

tests/fail/data_race/atomic_write_na_write_race1.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// We want to control preemption here. Stacked borrows interferes by having its own accesses.
22
//@compile-flags: -Zmiri-preemption-rate=0 -Zmiri-disable-stacked-borrows
3+
// Avoid accidental synchronization via address reuse inside `thread::spawn`.
4+
//@compile-flags: -Zmiri-address-reuse-rate=0
35

46
use std::sync::atomic::{AtomicUsize, Ordering};
57
use std::thread::spawn;
@@ -18,6 +20,8 @@ pub fn main() {
1820
let j1 = spawn(move || {
1921
let c = c; // avoid field capturing
2022
*(c.0 as *mut usize) = 32;
23+
// Make this thread take a bit longer.
24+
for _ in 0..100 {}
2125
});
2226

2327
let j2 = spawn(move || {

tests/fail/data_race/atomic_write_na_write_race2.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// We want to control preemption here. Stacked borrows interferes by having its own accesses.
22
//@compile-flags: -Zmiri-preemption-rate=0 -Zmiri-disable-stacked-borrows
3+
// Avoid accidental synchronization via address reuse inside `thread::spawn`.
4+
//@compile-flags: -Zmiri-address-reuse-rate=0
35

46
use std::sync::atomic::AtomicUsize;
57
use std::sync::atomic::Ordering;

tests/fail/data_race/dangling_thread_async_race.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// We want to control preemption here. Stacked borrows interferes by having its own accesses.
22
//@compile-flags: -Zmiri-preemption-rate=0 -Zmiri-disable-stacked-borrows
3+
// Avoid accidental synchronization via address reuse.
4+
//@compile-flags: -Zmiri-address-reuse-rate=0
35

46
use std::mem;
57
use std::thread::{sleep, spawn};

0 commit comments

Comments
 (0)