How managing crashing tests ?

Andrew Eikum andrew at brightnightgames.com
Mon Aug 23 16:47:43 CDT 2010


On 08/23/2010 12:59 PM, GOUJON Alexandre wrote:
> Anyway, I've seen mainly two approaches
> - if(0)
> - /* comment
> the crashing ok()
> */
>
> What's the difference ? And why not #if 0 ?

Using if(0) means the code in the body of the if-statement still has to 
compile.  This can check against errors while modifying headers, help 
protect against misplaced braces in some cases, etc.  Commenting the 
code out loses that verification, to no advantage.  Really, it doesn't 
matter much.

> I maybe lack some basic C knowledges but I think that /**/ and #if 0 are
> not added to the executable (from preprocessing stage).
> If it's right, it means we can then 'enable' these blocks maybe with
> (gdb) edit something

Likely not, since the optimizer probably just removes the body of the 
if-statement entirely.

> And what about a test crashing on a specific Windows ?

Just don't execute the code on that platforms that don't support it. 
How to check if the platform supports that codepath can be tricky, and 
there are a lot of ways to do it.  Some examples are to use 
GetProcAddress; use a different function (if it's not the one being 
tested, obviously); or call the function in a certain way that can tip 
you off to platform differences.

If you have a specific problem in mind, people on the list might be able 
to help.

Andrew



More information about the wine-devel mailing list