]> git.lizzy.rs Git - rust.git/blob - src/tools/rust-demangler/tests/lib.rs
Merge commit '8da837185714cefbb261e93e9846afb11c1dc60e' into sync-rustfmt-subtree
[rust.git] / src / tools / rust-demangler / tests / lib.rs
1 use rust_demangler::*;
2
3 const MANGLED_INPUT: &str = r"
4 _RNvC6_123foo3bar
5 _RNqCs4fqI2P2rA04_11utf8_identsu30____7hkackfecea1cbdathfdh9hlq6y
6 _RNCNCNgCs6DXkGYLi8lr_2cc5spawn00B5_
7 _RNCINkXs25_NgCsbmNqQUJIY6D_4core5sliceINyB9_4IterhENuNgNoBb_4iter8iterator8Iterator9rpositionNCNgNpB9_6memchr7memrchrs_0E0Bb_
8 _RINbNbCskIICzLVDPPb_5alloc5alloc8box_freeDINbNiB4_5boxed5FnBoxuEp6OutputuEL_ECs1iopQbuBiw2_3std
9 INtC8arrayvec8ArrayVechKj7b_E
10 _RMCs4fqI2P2rA04_13const_genericINtB0_8UnsignedKhb_E
11 _RMCs4fqI2P2rA04_13const_genericINtB0_6SignedKs98_E
12 _RMCs4fqI2P2rA04_13const_genericINtB0_6SignedKanb_E
13 _RMCs4fqI2P2rA04_13const_genericINtB0_4BoolKb0_E
14 _RMCs4fqI2P2rA04_13const_genericINtB0_4BoolKb1_E
15 _RMCs4fqI2P2rA04_13const_genericINtB0_4CharKc76_E
16 _RMCs4fqI2P2rA04_13const_genericINtB0_4CharKca_E
17 _RMCs4fqI2P2rA04_13const_genericINtB0_4CharKc2202_E
18 _RNvNvMCs4fqI2P2rA04_13const_genericINtB4_3FooKpE3foo3FOO
19 _RC3foo.llvm.9D1C9369
20 _RC3foo.llvm.9D1C9369@@16
21 _RNvC9backtrace3foo.llvm.A5310EB9
22 _RNvNtNtNtNtCs92dm3009vxr_4rand4rngs7adapter9reseeding4fork23FORK_HANDLER_REGISTERED.0.0
23 ";
24
25 const DEMANGLED_OUTPUT: &str = r"
26 123foo[0]::bar
27 utf8_idents[317d481089b8c8fe]::საჭმელად_გემრიელი_სადილი
28 cc[4d6468d6c9fd4bb3]::spawn::{closure#0}::{closure#0}
29 <core[846817f741e54dfd]::slice::Iter<u8> as core[846817f741e54dfd]::iter::iterator::Iterator>::rposition::<core[846817f741e54dfd]::slice::memchr::memrchr::{closure#1}>::{closure#0}
30 alloc[f15a878b47eb696b]::alloc::box_free::<dyn alloc[f15a878b47eb696b]::boxed::FnBox<(), Output = ()>>
31 INtC8arrayvec8ArrayVechKj7b_E
32 <const_generic[317d481089b8c8fe]::Unsigned<11: u8>>
33 <const_generic[317d481089b8c8fe]::Signed<152: i16>>
34 <const_generic[317d481089b8c8fe]::Signed<-11: i8>>
35 <const_generic[317d481089b8c8fe]::Bool<false: bool>>
36 <const_generic[317d481089b8c8fe]::Bool<true: bool>>
37 <const_generic[317d481089b8c8fe]::Char<'v': char>>
38 <const_generic[317d481089b8c8fe]::Char<'\n': char>>
39 <const_generic[317d481089b8c8fe]::Char<'∂': char>>
40 <const_generic[317d481089b8c8fe]::Foo<_>>::foo::FOO
41 foo[0]
42 foo[0]
43 backtrace[0]::foo
44 rand[693ea8e72247470f]::rngs::adapter::reseeding::fork::FORK_HANDLER_REGISTERED.0.0
45 ";
46
47 const DEMANGLED_OUTPUT_NO_CRATE_DISAMBIGUATORS: &str = r"
48 123foo[0]::bar
49 utf8_idents::საჭმელად_გემრიელი_სადილი
50 cc::spawn::{closure#0}::{closure#0}
51 <core::slice::Iter<u8> as core::iter::iterator::Iterator>::rposition::<core::slice::memchr::memrchr::{closure#1}>::{closure#0}
52 alloc::alloc::box_free::<dyn alloc::boxed::FnBox<(), Output = ()>>
53 INtC8arrayvec8ArrayVechKj7b_E
54 <const_generic::Unsigned<11: u8>>
55 <const_generic::Signed<152: i16>>
56 <const_generic::Signed<-11: i8>>
57 <const_generic::Bool<false: bool>>
58 <const_generic::Bool<true: bool>>
59 <const_generic::Char<'v': char>>
60 <const_generic::Char<'\n': char>>
61 <const_generic::Char<'∂': char>>
62 <const_generic::Foo<_>>::foo::FOO
63 foo[0]
64 foo[0]
65 backtrace[0]::foo
66 rand::rngs::adapter::reseeding::fork::FORK_HANDLER_REGISTERED.0.0
67 ";
68
69 #[test]
70 fn test_demangle_lines() {
71     let demangled_lines = demangle_lines(MANGLED_INPUT.lines(), None);
72     for (expected, actual) in DEMANGLED_OUTPUT.lines().zip(demangled_lines) {
73         assert_eq!(expected, actual);
74     }
75 }
76
77 #[test]
78 fn test_demangle_lines_no_crate_disambiguators() {
79     let demangled_lines = demangle_lines(MANGLED_INPUT.lines(), Some(create_disambiguator_re()));
80     for (expected, actual) in DEMANGLED_OUTPUT_NO_CRATE_DISAMBIGUATORS.lines().zip(demangled_lines)
81     {
82         assert_eq!(expected, actual);
83     }
84 }