summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/mangling/itanium.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/mangling/itanium.py b/tests/mangling/itanium.py
index 6808a99..57a1129 100644
--- a/tests/mangling/itanium.py
+++ b/tests/mangling/itanium.py
@@ -177,6 +177,24 @@ class TestItaniumMangling(ChrysalideTestCase):
self.check_demangling(demangled, 'void std::partial_sort<__gnu_cxx::__normal_iterator<CPR_MAI_ADPTY_SectorSequence *, std::vector<CPR_MAI_ADPTY_SectorSequence, std::allocator<CPR_MAI_ADPTY_SectorSequence>>>>(__gnu_cxx::__normal_iterator<CPR_MAI_ADPTY_SectorSequence *, std::vector<CPR_MAI_ADPTY_SectorSequence, std::allocator<CPR_MAI_ADPTY_SectorSequence>>>, __gnu_cxx::__normal_iterator<CPR_MAI_ADPTY_SectorSequence *, std::vector<CPR_MAI_ADPTY_SectorSequence, std::allocator<CPR_MAI_ADPTY_SectorSequence>>>, __gnu_cxx::__normal_iterator<CPR_MAI_ADPTY_SectorSequence *, std::vector<CPR_MAI_ADPTY_SectorSequence, std::allocator<CPR_MAI_ADPTY_SectorSequence>>>)')
+ def testPrefixLoop(self):
+ """Handle the loop between prefixes defined in the specifications."""
+
+ demangler = ItaniumDemangler()
+
+ demangled = demangler.decode_routine('_ZN2aaIN4ccccIfEEE5dddddEj')
+ self.check_demangling(demangled, '??? aa<cccc<float>>::ddddd(unsigned int)')
+
+ demangled = demangler.decode_routine('_ZN2aaIN4cccc4xxxxIfEEE5dddddEj')
+ self.check_demangling(demangled, '??? aa<cccc::xxxx<float>>::ddddd(unsigned int)')
+
+ demangled = demangler.decode_routine('_ZN3zzz2aaIN4cccc4xxxxIfEEE5dddddEj')
+ self.check_demangling(demangled, '??? zzz::aa<cccc::xxxx<float>>::ddddd(unsigned int)')
+
+ demangled = demangler.decode_routine('_ZN3aaa3bbbINS_3cccIfEEE3dddEj')
+ self.check_demangling(demangled, '??? aaa::bbb<ccc<float>>::ddd(unsigned int)')
+
+
def testAndroidSystem(self):
"""Check Itanium routine demangling from Android system cases."""
@@ -187,3 +205,6 @@ class TestItaniumMangling(ChrysalideTestCase):
demangled = demangler.decode_routine('_ZN6icu_556LocaleaSERKS0_')
self.check_demangling(demangled, '??? icu_55::Locale::operator=(const icu_55::Locale &)')
+
+ demangled = demangler.decode_routine('_ZNSt3__16vectorIfNS_9allocatorIfEEE8__appendEj')
+ self.check_demangling(demangled, '??? std::__1::vector<float, allocator<float>>::__append(unsigned int)')