A new demangler test?

Nikolay Sivov nsivov at codeweavers.com
Sun Feb 24 05:28:23 CST 2013


On 2/24/2013 15:13, Eric Pouech wrote:
> Le 24/02/2013 10:18, Nikolay Sivov a écrit :
>> On 2/24/2013 10:07, Max TenEyck Woodbury wrote:
>>> On 02/23/2013 02:54 AM, Eric Pouech wrote:
>>>> Le 21/02/2013 14:33, Max TenEyck Woodbury a écrit :
>>>>> Would it be appropriate to add a test to the name demangler that:
>>>>>
>>>>> 1) Scans all '.dll' and '.spec' files for mangled names, and
>>>>>
>>>>> 2) Tries to decode those names.
>>>>>
>>>>> 3) Prints the mangled and decoded names and where they occur.
>>>>>
>>>>> Success would be that all names decode without the decoder blowing up
>>>>> or failing.
>>>>>
>>>>>
>>>>>
>>>> adding tests for demangler is good
>>>> but you just need to have a set of mangled/unmangled strings for 
>>>> the test
>>>> as core demangler in msvcrt, test should be added here...
>>>> (but grabbing the mangled strings shall be left out of the test 
>>>> itself)
>>>> A+
>>>>
>>> One of the important aspects of name demangling is that it should work
>>> on _all_ the names in the current system.  The current test does
>>> demangle a list of known strings, but that list was incomplete with
>>> respect to all the features used in real names the last time I dug into
>>> the details (which was none too recently).
>>>
>>> Scanning for all the real mangled names not only makes sure that the
>>> demangler is working properly, it also assures that all the names used
>>> are properly formed and decode to their intended values.
>> I don't see a point to extend test data that much, it's enough to add 
>> some most common cases,
>> and add more when something breaks because of it. Otherwise it 
>> doesn't deserve that much of attention imho.
>>
>> By the way, do you see something broken or it's just something you 
>> want to work on?
>>>
>>>
> there are lots of broken stuff (in msvcrt), and demangler in winedump 
> is ante-deluvian (and doesn't share its code with msvcrt)
> A+
Okay, don't know if winedump part is of any use, I mean it tries to 
provide a sane C name for decorated names, and usually such names are 
hand-crafted anyway later.

Msvcrt being broken is important of course (at least for dbghelp).




More information about the wine-devel mailing list