Skip to content

Commit 782b869

Browse files
committed
TB: select tests to run both TB and SB
1 parent e243206 commit 782b869

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+116
-5
lines changed

src/tools/miri/tests/compiletest.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,9 @@ regexes! {
139139
STDOUT:
140140
// Windows file paths
141141
r"\\" => "/",
142-
// erase Stacked Borrows tags
142+
// erase borrow tags
143143
"<[0-9]+>" => "<TAG>",
144+
"<[0-9]+=" => "<TAG=",
144145
}
145146

146147
regexes! {
@@ -149,8 +150,9 @@ regexes! {
149150
r"\.rs:[0-9]+:[0-9]+(: [0-9]+:[0-9]+)?" => ".rs:LL:CC",
150151
// erase alloc ids
151152
"alloc[0-9]+" => "ALLOC",
152-
// erase Stacked Borrows tags
153+
// erase borrow tags
153154
"<[0-9]+>" => "<TAG>",
155+
"<[0-9]+=" => "<TAG=",
154156
// erase whitespace that differs between platforms
155157
r" +at (.*\.rs)" => " at $1",
156158
// erase generics in backtraces

src/tools/miri/tests/fail/stacked_borrows/retag_data_race_read.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//! Make sure that a retag acts like a write for the data race model.
1+
//! Make sure that a retag acts like a read for the data race model.
22
//@compile-flags: -Zmiri-preemption-rate=0
33
#[derive(Copy, Clone)]
44
struct SendPtr(*mut u8);

src/tools/miri/tests/pass/adjacent-allocs.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-permissive-provenance
24

35
fn ensure_allocs_can_be_adjacent() {

src/tools/miri/tests/pass/associated-const.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
trait Foo {
24
const ID: i32;
35
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
fn main() {
24
vec![()].into_iter();
35
}

src/tools/miri/tests/pass/atomic.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-strict-provenance
24
#![feature(strict_provenance, strict_provenance_atomic_ptr)]
35
use std::sync::atomic::{
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
fn main() {
24
assert_eq!(std::thread::available_parallelism().unwrap().get(), 1);
35
}

src/tools/miri/tests/pass/box-custom-alloc.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
#![allow(incomplete_features)] // for trait upcasting
24
#![feature(allocator_api, trait_upcasting)]
35

src/tools/miri/tests/pass/box.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows -Zmiri-permissive-provenance
13
#![feature(ptr_internals)]
24

35
fn main() {
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
pair_foo = PairFoo { fst: Foo(42), snd: Foo(1337) }
2+
foo #0 = Foo(42)
3+
foo #1 = Foo(1337)

src/tools/miri/tests/pass/btreemap.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-strict-provenance
24
#![feature(btree_drain_filter)]
35
use std::collections::{BTreeMap, BTreeSet};

src/tools/miri/tests/pass/cast-rfc0401-vtable-kinds.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
// Check that you can cast between different pointers to trait objects
24
// whose vtable have the same kind (both lengths, or both trait pointers).
35

src/tools/miri/tests/pass/concurrency/channels.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-strict-provenance
24

35
use std::sync::mpsc::{channel, sync_channel};

src/tools/miri/tests/pass/concurrency/sync.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-disable-isolation -Zmiri-strict-provenance
24

35
use std::sync::{Arc, Barrier, Condvar, Mutex, Once, RwLock};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
before wait
2+
before wait
3+
before wait
4+
before wait
5+
before wait
6+
before wait
7+
before wait
8+
before wait
9+
before wait
10+
before wait
11+
after wait
12+
after wait
13+
after wait
14+
after wait
15+
after wait
16+
after wait
17+
after wait
18+
after wait
19+
after wait
20+
after wait

src/tools/miri/tests/pass/concurrency/thread_locals.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-strict-provenance
24

35
//! The main purpose of this test is to check that if we take a pointer to

src/tools/miri/tests/pass/concurrency/tls_lib_drop.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
3+
14
use std::cell::RefCell;
25
use std::thread;
36

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Dropping: 8 (should be before 'Continue main 1').
2+
Dropping: 8 (should be before 'Continue main 1').
3+
Continue main 1.
4+
Joining: 7 (should be before 'Continue main 2').
5+
Continue main 2.

src/tools/miri/tests/pass/disable-alignment-check.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-disable-alignment-check
24

35
fn main() {

src/tools/miri/tests/pass/dyn-arbitrary-self.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
#![feature(arbitrary_self_types, unsize, coerce_unsized, dispatch_from_dyn)]
24
#![feature(rustc_attrs)]
35

src/tools/miri/tests/pass/extern_types.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows -Zmiri-permissive-provenance
13
#![feature(extern_types)]
24

35
extern "C" {

src/tools/miri/tests/pass/stacked-borrows/future-self-referential.rs renamed to src/tools/miri/tests/pass/future-self-referential.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
3+
14
use std::future::*;
25
use std::marker::PhantomPinned;
36
use std::pin::*;

src/tools/miri/tests/pass/generator.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
#![feature(generators, generator_trait, never_type)]
24

35
use std::fmt::Debug;

src/tools/miri/tests/pass/hashmap.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
use std::collections::HashMap;
24
use std::hash::BuildHasher;
35

src/tools/miri/tests/pass/intptrcast.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-permissive-provenance
24

35
use std::mem;

src/tools/miri/tests/pass/linked-list.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
#![feature(linked_list_cursors)]
24
use std::collections::LinkedList;
35

src/tools/miri/tests/pass/many_shr_bor.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
// Make sure validation can handle many overlapping shared borrows for different parts of a data structure
24
use std::cell::RefCell;
35

src/tools/miri/tests/pass/memleak_ignored.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-ignore-leaks
24

35
fn main() {

src/tools/miri/tests/pass/option_box_transmute_ptr.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
// This tests that the size of Option<Box<i32>> is the same as *const i32.
24
fn option_box_deref() -> i32 {
35
let val = Some(Box::new(42));

src/tools/miri/tests/pass/pointers.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-permissive-provenance
24
#![feature(ptr_metadata, const_raw_ptr_comparison)]
35

src/tools/miri/tests/pass/provenance.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
#![feature(strict_provenance)]
24
#![feature(pointer_byte_offsets)]
35
use std::{mem, ptr};

src/tools/miri/tests/pass/ptr_int_casts.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-permissive-provenance
24
use std::mem;
35
use std::ptr;

src/tools/miri/tests/pass/ptr_int_from_exposed.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-permissive-provenance
24
#![feature(strict_provenance)]
35

src/tools/miri/tests/pass/ptr_int_transmute.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
// Test what happens when we read parts of a pointer.
24
// Related to <https://github.com/rust-lang/rust/issues/69488>.
35
fn ptr_partial_read() {

src/tools/miri/tests/pass/rc.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-strict-provenance
24
#![feature(new_uninit)]
35
#![feature(get_mut_unchecked)]

src/tools/miri/tests/pass/send-is-not-static-par-for.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
use std::sync::Mutex;
24

35
fn par_for<I, F>(iter: I, f: F)

src/tools/miri/tests/pass/slices.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-strict-provenance
24
#![feature(new_uninit)]
35
#![feature(slice_as_chunks)]

src/tools/miri/tests/pass/stacked-borrows/stack-printing.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,17 @@ use std::{
77

88
extern "Rust" {
99
fn miri_get_alloc_id(ptr: *const u8) -> u64;
10-
fn miri_print_borrow_stacks(alloc_id: u64);
10+
fn miri_print_borrow_state(alloc_id: u64, show_unnamed: bool);
1111
}
1212

1313
fn get_alloc_id(ptr: *const u8) -> u64 {
1414
unsafe { miri_get_alloc_id(ptr) }
1515
}
1616

1717
fn print_borrow_stacks(alloc_id: u64) {
18-
unsafe { miri_print_borrow_stacks(alloc_id) }
18+
unsafe {
19+
miri_print_borrow_state(alloc_id, /* ignored: show_unnamed */ false)
20+
}
1921
}
2022

2123
fn main() {

src/tools/miri/tests/pass/threadleak_ignored.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-ignore-leaks
24

35
//! Test that leaking threads works, and that their destructors are not executed.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Dropping 0

src/tools/miri/tests/pass/transmute_ptr.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
#![feature(strict_provenance)]
24
use std::{mem, ptr};
35

src/tools/miri/tests/pass/unsized.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
#![feature(unsized_tuple_coercion)]
24
#![feature(unsized_fn_params)]
35

src/tools/miri/tests/pass/vec.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-strict-provenance
24
#![feature(iter_advance_by, iter_next_chunk)]
35

src/tools/miri/tests/pass/vecdeque.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//@revisions: stack tree
2+
//@[tree]compile-flags: -Zmiri-tree-borrows
13
//@compile-flags: -Zmiri-strict-provenance
24
use std::collections::VecDeque;
35

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[2, 2] Iter([2, 2], [])
2+
Iter([], [])

0 commit comments

Comments
 (0)