[2/3] cmd/tests: Add support for todo_wine constructions (try 2)

Jacek Caban jacek at codeweavers.com
Tue Jun 14 04:19:38 CDT 2011


On 6/14/11 10:55 AM, Frédéric Delanoy wrote:
> 011/6/14 Jacek Caban<jacek at codeweavers.com>:
>> Hi Frédéric,
>>
>> On 6/13/11 10:19 PM, Frédéric Delanoy wrote:
>>> +        }else if(err) {
>>> +            if (!is_todo_wine)
>>> +                ok(0, "unexpected char 0x%x position %d in line %d (got
>>> '%.*s', wanted '%.*s')\n",
>>> +                   *err, (int)(err-out_ptr), line, (int)(out_nl-out_ptr),
>>> +                   out_ptr, (int)(exp_nl-exp_ptr), exp_ptr);
>>> +            else
>>> +                todo_wine
>>> +                ok(0, "unexpected char 0x%x position %d in line %d (got
>>> '%.*s', wanted '%.*s')\n",
>>> +                   *err, (int)(err-out_ptr), line, (int)(out_nl-out_ptr),
>>> out_ptr,
>>> +                   (int)(exp_nl-exp_ptr-sizeof(todo_wine_cmd)),
>>> exp_ptr+sizeof(todo_wine_cmd));
>> You may change tests to ok(!err, ....) here and make this else unconditional
>> to avoid having ok(TRUE, ...) tests later.
> Which else are you talking about?
>
> The following ok(TRUE,...) serves when there's a todo_wine which has
> "succeeded", to get messages like "Test succeeded inside todo block:
> match at line XXX"
> Without it (i.e. without at least one "true" OK), successful todos
> aren't caught, as Dan Kegel pointed out (and I've verified).

I was talking about something like this:

}else {
     if(!is_todo_wine)
         ...
     else todo_wine
         ok(!err, ...);
}

If the tests succeeded, err will be NULL, so this ok will produce "Test 
succeeded inside todo block" error.


Jacek



More information about the wine-devel mailing list