Skip to content

Commit 4763d12

Browse files
committed
ignore some vtable/fn ptr equality tests in Miri, their result is not fully predictable
1 parent 9a233bb commit 4763d12

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

Diff for: library/alloc/tests/task.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use alloc::task::{LocalWake, Wake};
44
use core::task::{LocalWaker, Waker};
55

66
#[test]
7-
#[cfg_attr(miri, should_panic)] // `will_wake` doesn't guarantee that this test will work, and indeed on Miri it fails
7+
#[cfg_attr(miri, ignore)] // `will_wake` doesn't guarantee that this test will work, and indeed on Miri it can fail
88
fn test_waker_will_wake_clone() {
99
struct NoopWaker;
1010

@@ -20,7 +20,7 @@ fn test_waker_will_wake_clone() {
2020
}
2121

2222
#[test]
23-
#[cfg_attr(miri, should_panic)] // `will_wake` doesn't guarantee that this test will work, and indeed on Miri it fails
23+
#[cfg_attr(miri, ignore)] // `will_wake` doesn't guarantee that this test will work, and indeed on Miri it can fail
2424
fn test_local_waker_will_wake_clone() {
2525
struct NoopWaker;
2626

Diff for: library/core/tests/ptr.rs

+6-3
Original file line numberDiff line numberDiff line change
@@ -810,9 +810,12 @@ fn ptr_metadata() {
810810
assert_ne!(address_1, address_2);
811811
// Different erased type => different vtable pointer
812812
assert_ne!(address_2, address_3);
813-
// Same erased type and same trait => same vtable pointer
814-
assert_eq!(address_3, address_4);
815-
assert_eq!(address_3, address_5);
813+
// Same erased type and same trait => same vtable pointer.
814+
// This is *not guaranteed*, so we skip it in Miri.
815+
if !cfg!(miri) {
816+
assert_eq!(address_3, address_4);
817+
assert_eq!(address_3, address_5);
818+
}
816819
}
817820
}
818821

0 commit comments

Comments
 (0)