Hi Ilya, I like this one rather better, thanks. Especially the use of broken() makes it clearer what's happening. I think you could tidy it up just a little more:
+ expected = 33; sprintf(fileA, testfile, tmpdir); + rc=shell_execute(NULL, fileA, NULL, NULL); + todo_wine { + ok(rc==expected || (rc>32 && expected>32), + "expected %s (%d), got %s (%d), lpFile: %s \n", + expected==33 ? "success" : "failure", expected, rc > 32 ? "success" : "failure", rc, fileA + ); + }
In this case, expected is 33, so the "expected == 33" is unneeded. Just replace "%s (%d)" with "success (32)". Same below with the remaining ok expressions: make them match the actual value of expected, rather than any possible value. Otherwise, looks good to me. Thanks, --Juan