@@ -22,32 +22,24 @@ fn test_pointer_formats_data_pointer() {
2222#[ test]  
2323fn  test_fmt_debug_of_raw_pointers ( )  { 
2424    use  core:: fmt:: Debug ; 
25+     use  core:: ptr; 
2526
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 ,  start :  & str ,  contains :  & str )  { 
3428        let  formatted = format ! ( "{:?}" ,  t) ; 
35-         let  normalized = ADDR_REGEX . replace_all ( & formatted,  "$$HEX" ) ; 
36- 
37-         assert_eq ! ( normalized,  expected) ; 
29+         assert ! ( formatted. starts_with( start) ,  "{formatted:?} doesn't start with {start:?}" ) ; 
30+         assert ! ( formatted. contains( contains) ,  "{formatted:?} doesn't contain {contains:?}" ) ; 
3831    } 
3932
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" ) ; 
4335
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 }" ) ; 
4739
4840    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(") ; 
5143} 
5244
5345#[ test]  
0 commit comments