Hi again,
More comments about your tests #2:
+ DeleteFileA(test_file); +[...] + has_test_file = create_test_file(test_file); Why do you recreate an identical file between test group 2 and 3?
+ has_test_file = create_test_file(test_file); + ok(has_test_file, "failed to create test file\n"); This is redundant and thus superfluous because your create_test_file ensures an ok() failure prior to every "return FALSE". (perhaps add one ok check to CloseHandle?)
It's not always that easy to avoid correlated error messages, I mean to try and produce only one error message per cause. This will ease the job of people looking at failures on test.winehq.org.
+ char temp_path[MAX_PATH-14]; + ret = GetTempPath(sizeof(temp_path), temp_path); + ret = GetTempFileName(temp_path, "mmio", 0, temp_file); This is bogus. I believe you should use: + char temp_path[MAX_PATH]; + ret = GetTempPath(sizeof(temp_path), temp_path); + ret = GetTempFileName(temp_path, "mmio", 0, temp_file); and leave the -14 test to the implementation of GetTempFileName.
Regards, Jörg Höhle