1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
# This file holds test cases for the Rust demangler.
# Each test case looks like this:
# options
# input to be demangled
# expected output
#
# See demangle-expected for documentation of supported options.
#
# A line starting with `#' is ignored.
# However, blank lines in this file are NOT ignored.
#
############
#
# Coverage Tests
#
#
# Demangles as rust symbol.
--format=rust
_ZN4main4main17he714a2e23ed7db23E
main::main
# Also demangles as c++ gnu v3 mangled symbol. But with extra Rust hash.
--format=gnu-v3
_ZN4main4main17he714a2e23ed7db23E
main::main::he714a2e23ed7db23
# But auto should demangle fully gnu-v3 -> rust -> demangled, not partially.
--format=auto
_ZN4main4main17he714a2e23ed7db23E
main::main
# Hash is exactly 16 hex chars. Not more.
--format=auto
_ZN4main4main18h1e714a2e23ed7db23E
main::main::h1e714a2e23ed7db23
# Not less.
--format=auto
_ZN4main4main16h714a2e23ed7db23E
main::main::h714a2e23ed7db23
# And not non-hex.
--format=auto
_ZN4main4main17he714a2e23ed7db2gE
main::main::he714a2e23ed7db2g
# $XX$ substitutions should not contain just numbers.
--format=auto
_ZN4main4$99$17he714a2e23ed7db23E
main::$99$
# _ at start of path should be removed.
# ".." translates to "::" "$GT$" to ">" and "$LT$" to "<".
--format=rust
_ZN71_$LT$Test$u20$$u2b$$u20$$u27$static$u20$as$u20$foo..Bar$LT$Test$GT$$GT$3bar17h930b740aa94f1d3aE
<Test + 'static as foo::Bar<Test>>::bar
#
--format=rust
_ZN54_$LT$I$u20$as$u20$core..iter..traits..IntoIterator$GT$9into_iter17h8581507801fb8615E
<I as core::iter::traits::IntoIterator>::into_iter
#
--format=rust
_ZN10parse_tsan4main17hdbbfdf1c6a7e27d9E
parse_tsan::main
#
--format=rust
_ZN65_$LT$std..env..Args$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h420a7c8d0c7eef40E
<std::env::Args as core::iter::iterator::Iterator>::next
#
--format=rust
_ZN4core3str9from_utf817hdcea28871313776dE
core::str::from_utf8
#
--format=rust
_ZN4core3mem7size_of17h18bde9bb8c22e2cfE
core::mem::size_of
#
--format=rust
_ZN5alloc4heap8allocate17hd55c03e6cb81d924E
alloc::heap::allocate
#
--format=rust
_ZN4core3ptr8null_mut17h736cce09ca0ac11aE
core::ptr::null_mut
#
--format=rust
_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17h7f9de798bc3f0879E
core::ptr::<impl *mut T>::is_null
#
--format=rust
_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$6double17h4166e2b47539e1ffE
<alloc::raw_vec::RawVec<T>>::double
#
--format=rust
_ZN39_$LT$collections..vec..Vec$LT$T$GT$$GT$4push17hd4b6b23c1b88141aE
<collections::vec::Vec<T>>::push
#
--format=rust
_ZN70_$LT$collections..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..DerefMut$GT$9deref_mut17hf299b860dc5a831cE
<collections::vec::Vec<T> as core::ops::DerefMut>::deref_mut
#
--format=rust
_ZN63_$LT$core..ptr..Unique$LT$T$GT$$u20$as$u20$core..ops..Deref$GT$5deref17hc784b4a166cb5e5cE
<core::ptr::Unique<T> as core::ops::Deref>::deref
#
--format=rust
_ZN40_$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$3ptr17h7570b6e9070b693bE
<alloc::raw_vec::RawVec<T>>::ptr
#
--format=rust
_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17h0f3228f343444ac8E
core::ptr::<impl *mut T>::is_null
#
--format=rust
_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$10as_mut_ptr17h153241df1c7d1666E
<[T] as core::slice::SliceExt>::as_mut_ptr
#
--format=rust
_ZN11collections5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$10as_mut_ptr17hf12a6d0409938c96E
collections::slice::<impl [T]>::as_mut_ptr
#
--format=rust
_ZN4core3ptr5write17h651fe53ec860e780E
core::ptr::write
#
--format=rust
_ZN65_$LT$std..env..Args$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h420a7c8d0c7eef40E
<std::env::Args as core::iter::iterator::Iterator>::next
#
--format=rust
_ZN54_$LT$I$u20$as$u20$core..iter..traits..IntoIterator$GT$9into_iter17he06cb713aae5b465E
<I as core::iter::traits::IntoIterator>::into_iter
#
--format=rust
_ZN71_$LT$collections..vec..IntoIter$LT$T$GT$$u20$as$u20$core..ops..Drop$GT$4drop17hf7f23304ebe62eedE
<collections::vec::IntoIter<T> as core::ops::Drop>::drop
#
--format=rust
_ZN86_$LT$collections..vec..IntoIter$LT$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$4next17h04b3fbf148c39713E
<collections::vec::IntoIter<T> as core::iter::iterator::Iterator>::next
#
--format=rust
_ZN75_$LT$$RF$$u27$a$u20$mut$u20$I$u20$as$u20$core..iter..iterator..Iterator$GT$4next17ha050492063e0fd20E
<&'a mut I as core::iter::iterator::Iterator>::next
# Different hashes are OK, they are just stripped.
--format=rust
_ZN13drop_contents17hfe3c0a68c8ad1c74E
drop_contents
#
--format=rust
_ZN13drop_contents17h48cb59bef15bb555E
drop_contents
#
--format=rust
_ZN4core3mem7size_of17h900b33157bf58f26E
core::mem::size_of
#
--format=rust
_ZN67_$LT$alloc..raw_vec..RawVec$LT$T$GT$$u20$as$u20$core..ops..Drop$GT$4drop17h96a5cf6e94807905E
<alloc::raw_vec::RawVec<T> as core::ops::Drop>::drop
#
--format=rust
_ZN68_$LT$core..nonzero..NonZero$LT$T$GT$$u20$as$u20$core..ops..Deref$GT$5deref17hc49056f882aa46dbE
<core::nonzero::NonZero<T> as core::ops::Deref>::deref
#
--format=rust
_ZN63_$LT$core..ptr..Unique$LT$T$GT$$u20$as$u20$core..ops..Deref$GT$5deref17h19f2ad4920655e85E
<core::ptr::Unique<T> as core::ops::Deref>::deref
#
--format=rust
_ZN11issue_609253foo37Foo$LT$issue_60925..llv$u6d$..Foo$GT$3foo17h059a991a004536adE
issue_60925::foo::Foo<issue_60925::llvm::Foo>::foo
|