From 4404cadf5dfca969ef42265b702adc89c376e5df Mon Sep 17 00:00:00 2001 From: cxworks Date: Sat, 9 Dec 2023 17:10:50 -0500 Subject: [PATCH 1/2] Add missing test for demangle for OSX --- src/v0.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/v0.rs b/src/v0.rs index 3e88fa6..b1502c3 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] @@ -1287,6 +1288,10 @@ mod tests { "_RNqCs4fqI2P2rA04_11utf8_identsu30____7hkackfecea1cbdathfdh9hlq6y", "utf8_idents::საჭმელად_გემრიელი_სადილი" ); + t_nohash!( + "__RNqCs4fqI2P2rA04_11utf8_identsu30____7hkackfecea1cbdathfdh9hlq6y", + "utf8_idents::საჭმელად_გემრიელი_სადილი" + ); } #[test] @@ -1299,6 +1304,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] @@ -1307,6 +1320,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] From 59446fce4a95ec4f9ba229abe8bdf68640c8e175 Mon Sep 17 00:00:00 2001 From: cxworks Date: Thu, 25 Jul 2024 00:21:48 -0400 Subject: [PATCH 2/2] add missing tests for demangle --- src/lib.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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, ""); + } }