- Demangler was including function return types, which foiled the pattern matching tests.
- Demangler was not putting spaces after commas (e.g., in parameter lists), which also foiled the pattern matching.
- Checking to see if dis -f does the same thing as disassemble -f was overly complicated and architecture specific (and didn't account for arch = i686).
- Environment variables aren't always inherited all the way down to always making it down the make commands to build the targets, causing OS to resolve to "" which then defaulted to "windows32" which didn't match the tests for "Windows_NT". While not specific to the abbreviations test, this was important for debugging the Python through Visual Studio.
I kind of want to block this. I know it's the most straightforward solution, but I don't think it's safe to make assumptions about the format of a mangled name. Even the __cxa_demangle function that is used on other platforms that have it, there is no guarantee that a particualr implementation of __cxa_demangle will separate arguments with spaces. Plus, this would mean changing an actual implementation to satisfy the peculiarities of a particular test.
I think we should consider any test that uses a regex to match a demangled name to be broken. A test should never regex match a demangled name. If it's trying to extract the function name or argument list, we should use SBFunction or something like that. We can probably extend the API wherever necessary to introduce the things we need. Or alternatively, it's possible the test is regex matching more than it actually needs to verify that the test was successful. You might see if there's a way to reduce (or even better, eliminate) the regex and change the code to use other SB apis to verify that the actual state of the thing is as expected.