[PATCH 3/4] msvcp110: Add tr2_sys__Last_write_time implementation and test.(resend)

Piotr Caban piotr.caban at gmail.com
Mon Jul 20 03:51:21 CDT 2015


On 07/18/15 05:15, YongHao Hu wrote:
> +    /* test the formula */
> +    file = CreateFileA("tr2_test_dir/f1", 0, FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
> +            NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
> +    ok(file != INVALID_HANDLE_VALUE, "create file failed: INVALID_HANDLE_VALUE\n");
> +    ok(GetFileTime(file, 0, 0, &lwt), "GetFileTime failed\n");
> +    CloseHandle(file);
> +    last_write_time = (((__int64)lwt.dwHighDateTime)<< 32) + lwt.dwLowDateTime;
> +    last_write_time -= TICKS_1601_TO_1970;
> +    last_write_time /= TICKSPERSEC;
> +    ok(last_write_time == newtime, "last_write_time after converting from FILETIME to UNIX Timestamp should equal to newtime\n");
There's no guarantee that the filesystem will store the time accurately. 
As far as I know the test will not work on fat file system.

> +    /* test negative time */
> +    newtime = 1111111;
> +    p_tr2_sys__Last_write_time_set("tr2_test_dir/f1", -newtime);
> +    last_write_time = p_tr2_sys__Last_write_time("tr2_test_dir/f1");
> +    todo_wine ok(1844674407369-newtime+1 == last_write_time, "last_write_time expect %s, got %s\n",
> +            debugstr_longlong(1844674407369-newtime+1), debugstr_longlong(last_write_time));
You can't use debugstr_longlong 2 times inside one ok call. You can't 
use 64-bit constants this way. Also please avoid using "magic" 
constants. Is this test still failing on wine if unsigned __int64 is 
used in computations?

> +    /* maximum time */
> +    newtime = 9223372036854775807;
> +    p_tr2_sys__Last_write_time_set("tr2_test_dir/f1", newtime);
> +    todo_wine ok(1844674407369 == p_tr2_sys__Last_write_time("tr2_test_dir/f1"), "last_write_time expect 1844674407369, got %s\n",
> +             debugstr_longlong(p_tr2_sys__Last_write_time("tr2_test_dir/f1")));
I'm expecting it to fail on some filesystems. It would be nice to run 
this tests on fat32 filesystem.

Cheers,
Piotr



More information about the wine-devel mailing list