diff --git a/src/lib.rs b/src/lib.rs index cafec2f..7a38f6a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -406,6 +406,8 @@ mod tests { t!("_ZN4testE", "test"); t_err!("_ZN4test"); t!("_ZN4test1a2bcE", "test::a::bc"); + t_err!("_RIIC0pLLpOvR_RIIC0pLLLLppOvRvR]AvR]A?"); + t_err!("_RYFFFFFFFFFGFF_RC4$estEFFFFGFF_UC4$estEFFGFF_UC4$estEtesC4$estEt___d@FFFtesC4$estEt___d@FFF.FFFFTFFFFFFAmBmB/Y"); } #[test] @@ -415,6 +417,9 @@ mod tests { t!("_ZN8$BP$test4foobE", "*test::foob"); t!("_ZN9$u20$test4foobE", " test::foob"); t!("_ZN35Bar$LT$$u5b$u32$u3b$$u20$4$u5d$$GT$E", "Bar<[u32; 4]>"); + t_err!("_ZN4ts$eEt_sd"); + t_err!("_RC4$estEtesd"); + t_err!("_ZN4.estEtesd"); } #[test] @@ -585,4 +590,19 @@ mod tests { "foo.llvm moocow ::select foo.llvm" ); } + + #[test] + #[cfg(feature = "std")] + fn test_demangle_with_suffix() { + assert_eq!( + crate::demangle("RIB_RDB_IIB_RDIB_B_RDB_IIB_RDIRDB_B").suffix, + "" + ); + assert_eq!( + crate::demangle("RYYFK17o05YYQLF___NQQQYFFFFK17o05YYQQqLfF___NQQQYYFFF9E1o_ZB6").suffix, + "" + ); + assert_eq!(crate::demangle("33\nRYFKC*F").suffix, ""); + assert_eq!(crate::demangle("RYFK0ZFF").suffix, ""); + } } diff --git a/src/v0.rs b/src/v0.rs index 81cbdc4..555962e 100644 --- a/src/v0.rs +++ b/src/v0.rs @@ -1279,6 +1279,7 @@ mod tests { #[test] fn demangle_crate_with_leading_digit() { t_nohash!("_RNvC6_123foo3bar", "123foo::bar"); + t_nohash!("__RNvC6_123foo3bar", "123foo::bar"); } #[test] @@ -1293,6 +1294,10 @@ mod tests { "_RNqCs4fqI2P2rA04_11utf8_identsu30____7hkackfecea1cbdathfdh9hlq6y", "utf8_idents::საჭმელად_გემრიელი_სადილი" ); + t_nohash!( + "__RNqCs4fqI2P2rA04_11utf8_identsu30____7hkackfecea1cbdathfdh9hlq6y", + "utf8_idents::საჭმელად_გემრიელი_სადილი" + ); } #[test] @@ -1305,6 +1310,14 @@ mod tests { "_RNCINkXs25_NgCsbmNqQUJIY6D_4core5sliceINyB9_4IterhENuNgNoBb_4iter8iterator8Iterator9rpositionNCNgNpB9_6memchr7memrchrs_0E0Bb_", " as core::iter::iterator::Iterator>::rposition::::{closure#0}" ); + t_nohash!( + "__RNCNCNgCs6DXkGYLi8lr_2cc5spawn00B5_", + "cc::spawn::{closure#0}::{closure#0}" + ); + t_nohash!( + "__RNCINkXs25_NgCsbmNqQUJIY6D_4core5sliceINyB9_4IterhENuNgNoBb_4iter8iterator8Iterator9rpositionNCNgNpB9_6memchr7memrchrs_0E0Bb_", + " as core::iter::iterator::Iterator>::rposition::::{closure#0}" + ); } #[test] @@ -1313,6 +1326,10 @@ mod tests { "_RINbNbCskIICzLVDPPb_5alloc5alloc8box_freeDINbNiB4_5boxed5FnBoxuEp6OutputuEL_ECs1iopQbuBiw2_3std", "alloc::alloc::box_free::>" ); + t_nohash!( + "__RINbNbCskIICzLVDPPb_5alloc5alloc8box_freeDINbNiB4_5boxed5FnBoxuEp6OutputuEL_ECs1iopQbuBiw2_3std", + "alloc::alloc::box_free::>" + ); } #[test]