@@ -22,32 +22,24 @@ fn test_pointer_formats_data_pointer() {
22
22
#[ test]
23
23
fn test_fmt_debug_of_raw_pointers ( ) {
24
24
use core:: fmt:: Debug ;
25
+ use core:: ptr;
25
26
26
- fn check_fmt < T : Debug > ( t : T , expected : & str ) {
27
- use std:: sync:: LazyLock ;
28
-
29
- use regex:: Regex ;
30
-
31
- static ADDR_REGEX : LazyLock < Regex > =
32
- LazyLock :: new ( || Regex :: new ( r"0x[0-9a-fA-F]+" ) . unwrap ( ) ) ;
33
-
27
+ fn check_fmt < T : Debug > ( t : T , expected1 : & str , expected2 : & str ) {
34
28
let formatted = format ! ( "{:?}" , t) ;
35
- let normalized = ADDR_REGEX . replace_all ( & formatted, "$$HEX" ) ;
36
-
37
- assert_eq ! ( normalized, expected) ;
29
+ assert ! ( formatted. starts_with( expected1) , "{formatted:?} doesn't start with {expected1:?}" ) ;
30
+ assert ! ( formatted. contains( expected2) , "{formatted:?} doesn't contain {expected2:?}" ) ;
38
31
}
39
32
40
- let plain = & mut 100 ;
41
- check_fmt ( plain as * mut i32 , "$HEX" ) ;
42
- check_fmt ( plain as * const i32 , "$HEX" ) ;
33
+ assert_eq ! ( format!( "{:?}" , ptr:: without_provenance_mut:: <i32 >( 0x100 ) ) , "0x100" ) ;
34
+ assert_eq ! ( format!( "{:?}" , ptr:: without_provenance:: <i32 >( 0x100 ) ) , "0x100" ) ;
43
35
44
- let slice = & mut [ 200 , 300 , 400 ] [ .. ] ;
45
- check_fmt ( slice as * mut [ i32 ] , "Pointer { addr: $HEX , metadata: 3 }" ) ;
46
- check_fmt ( slice as * const [ i32 ] , "Pointer { addr: $HEX , metadata: 3 }" ) ;
36
+ let slice = ptr :: slice_from_raw_parts ( ptr :: without_provenance :: < i32 > ( 0x100 ) , 3 ) ;
37
+ assert_eq ! ( format! ( "{:?}" , slice as * mut [ i32 ] ) , "Pointer { addr: 0x100 , metadata: 3 }" ) ;
38
+ assert_eq ! ( format! ( "{:?}" , slice as * const [ i32 ] ) , "Pointer { addr: 0x100 , metadata: 3 }" ) ;
47
39
48
40
let vtable = & mut 500 as & mut dyn Debug ;
49
- check_fmt ( vtable as * mut dyn Debug , "Pointer { addr: $HEX, metadata: DynMetadata($HEX) } " ) ;
50
- check_fmt ( vtable as * const dyn Debug , "Pointer { addr: $HEX, metadata: DynMetadata($HEX) } " ) ;
41
+ check_fmt ( vtable as * mut dyn Debug , "Pointer { addr: " , ", metadata: DynMetadata(") ;
42
+ check_fmt ( vtable as * const dyn Debug , "Pointer { addr: " , ", metadata: DynMetadata(") ;
51
43
}
52
44
53
45
#[ test]
0 commit comments