@@ -348,9 +348,11 @@ mod tests {
348
348
use std:: prelude:: v1:: * ;
349
349
350
350
macro_rules! t {
351
- ( $a: expr, $b: expr) => ( {
352
- assert_eq!( super :: demangle( $a) . to_string( ) , $b) ;
353
- } )
351
+ ( $a: expr, $b: expr) => ( assert!( ok( $a, $b) ) )
352
+ }
353
+
354
+ macro_rules! t_err {
355
+ ( $a: expr) => ( assert!( ok_err( $a) ) )
354
356
}
355
357
356
358
macro_rules! t_nohash {
@@ -359,11 +361,31 @@ mod tests {
359
361
} )
360
362
}
361
363
364
+ fn ok ( sym : & str , expected : & str ) -> bool {
365
+ match super :: try_demangle ( sym) {
366
+ Ok ( s) => s. to_string ( ) == expected,
367
+ Err ( _) => {
368
+ println ! ( "error demangling" ) ;
369
+ false
370
+ }
371
+ }
372
+ }
373
+
374
+ fn ok_err ( sym : & str ) -> bool {
375
+ match super :: try_demangle ( sym) {
376
+ Ok ( _) => {
377
+ println ! ( "succeeded in demangling" ) ;
378
+ false
379
+ }
380
+ Err ( _) => super :: demangle ( sym) . to_string ( ) == sym,
381
+ }
382
+ }
383
+
362
384
#[ test]
363
385
fn demangle ( ) {
364
- t ! ( "test" , "test" ) ;
386
+ t_err ! ( "test" ) ;
365
387
t ! ( "_ZN4testE" , "test" ) ;
366
- t ! ( "_ZN4test" , "_ZN4test" ) ;
388
+ t_err ! ( "_ZN4test" ) ;
367
389
t ! ( "_ZN4test1a2bcE" , "test::a::bc" ) ;
368
390
}
369
391
@@ -451,7 +473,7 @@ mod tests {
451
473
452
474
#[ test]
453
475
fn demangle_ignores_suffix_that_doesnt_look_like_a_symbol ( ) {
454
- t ! ( "_ZN3fooE.llvm moocow" , "_ZN3fooE.llvm moocow" ) ;
476
+ t_err ! ( "_ZN3fooE.llvm moocow" ) ;
455
477
}
456
478
457
479
#[ test]
@@ -468,6 +490,6 @@ mod tests {
468
490
469
491
#[ test]
470
492
fn invalid_no_chop ( ) {
471
- t ! ( "_ZNfooE" , "_ZNfooE" ) ;
493
+ t_err ! ( "_ZNfooE" ) ;
472
494
}
473
495
}
0 commit comments