YongHao Hu : msvcp120/tests: Add tr2_sys__Last_write_time test.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Oct 1 10:57:00 CDT 2015


Module: wine
Branch: master
Commit: c1737515d5aae6b7a9b57ce112aac565204faaa7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c1737515d5aae6b7a9b57ce112aac565204faaa7

Author: YongHao Hu <christopherwuy at gmail.com>
Date:   Sat Sep 19 08:44:06 2015 +0800

msvcp120/tests: Add tr2_sys__Last_write_time test.

---

 dlls/msvcp120/tests/msvcp120.c | 47 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/dlls/msvcp120/tests/msvcp120.c b/dlls/msvcp120/tests/msvcp120.c
index 9255ff1..bf7ed8f 100644
--- a/dlls/msvcp120/tests/msvcp120.c
+++ b/dlls/msvcp120/tests/msvcp120.c
@@ -108,6 +108,8 @@ static struct space_info (__cdecl *p_tr2_sys__Statvfs)(char const*);
 static struct space_info (__cdecl *p_tr2_sys__Statvfs_wchar)(WCHAR const*);
 static enum file_type (__cdecl *p_tr2_sys__Stat)(char const*, int *);
 static enum file_type (__cdecl *p_tr2_sys__Lstat)(char const*, int *);
+static __int64 (__cdecl *p_tr2_sys__Last_write_time)(char const*);
+static void (__cdecl *p_tr2_sys__Last_write_time_set)(char const*, __int64);
 
 static HMODULE msvcp;
 #define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y)
@@ -178,6 +180,10 @@ static BOOL init(void)
                 "?_Stat at sys@tr2 at std@@YA?AW4file_type at 123@PEBDAEAH at Z");
         SET(p_tr2_sys__Lstat,
                 "?_Lstat at sys@tr2 at std@@YA?AW4file_type at 123@PEBDAEAH at Z");
+        SET(p_tr2_sys__Last_write_time,
+                "?_Last_write_time at sys@tr2 at std@@YA_JPEBD at Z");
+        SET(p_tr2_sys__Last_write_time_set,
+                "?_Last_write_time at sys@tr2 at std@@YAXPEBD_J at Z");
     } else {
         SET(p_tr2_sys__File_size,
                 "?_File_size at sys@tr2 at std@@YA_KPBD at Z");
@@ -219,6 +225,10 @@ static BOOL init(void)
                 "?_Stat at sys@tr2 at std@@YA?AW4file_type at 123@PBDAAH at Z");
         SET(p_tr2_sys__Lstat,
                 "?_Lstat at sys@tr2 at std@@YA?AW4file_type at 123@PBDAAH at Z");
+        SET(p_tr2_sys__Last_write_time,
+                "?_Last_write_time at sys@tr2 at std@@YA_JPBD at Z");
+        SET(p_tr2_sys__Last_write_time_set,
+                "?_Last_write_time at sys@tr2 at std@@YAXPBD_J at Z");
     }
 
     msvcr = GetModuleHandleA("msvcr120.dll");
@@ -946,6 +956,42 @@ static void test_tr2_sys__Stat(void)
     ok(RemoveDirectoryA("tr2_test_dir"), "expect tr2_test_dir to exist\n");
 }
 
+static void test_tr2_sys__Last_write_time(void)
+{
+    HANDLE file;
+    int ret;
+    __int64 last_write_time, newtime;
+    ret = p_tr2_sys__Make_dir("tr2_test_dir");
+    ok(ret == 1, "tr2_sys__Make_dir() expect 1 got %d\n", ret);
+
+    file = CreateFileA("tr2_test_dir/f1", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
+    ok(file != INVALID_HANDLE_VALUE, "create file failed: INVALID_HANDLE_VALUE\n");
+    CloseHandle(file);
+
+    last_write_time = p_tr2_sys__Last_write_time("tr2_test_dir/f1");
+    newtime = last_write_time + 123456789;
+    p_tr2_sys__Last_write_time_set("tr2_test_dir/f1", newtime);
+    todo_wine ok(last_write_time == p_tr2_sys__Last_write_time("tr2_test_dir/f1"),
+            "last_write_time before modfied should not equal to last_write_time %s\n",
+            debugstr_longlong(last_write_time));
+
+    errno = 0xdeadbeef;
+    last_write_time = p_tr2_sys__Last_write_time("not_exist");
+    ok(errno == 0xdeadbeef, "tr2_sys__Last_write_time(): errno expect 0xdeadbeef, got %d\n", errno);
+    ok(last_write_time == 0, "expect 0 got %s\n", debugstr_longlong(last_write_time));
+    last_write_time = p_tr2_sys__Last_write_time(NULL);
+    ok(last_write_time == 0, "expect 0 got %s\n", debugstr_longlong(last_write_time));
+
+    p_tr2_sys__Last_write_time_set("not_exist", newtime);
+    errno = 0xdeadbeef;
+    p_tr2_sys__Last_write_time_set(NULL, newtime);
+    ok(errno == 0xdeadbeef, "tr2_sys__Last_write_time(): errno expect 0xdeadbeef, got %d\n", errno);
+
+    ok(DeleteFileA("tr2_test_dir/f1"), "expect tr2_test_dir/f1 to exist\n");
+    ret = p_tr2_sys__Remove_dir("tr2_test_dir");
+    ok(ret == 1, "test_tr2_sys__Remove_dir(): expect 1 got %d\n", ret);
+}
+
 START_TEST(msvcp120)
 {
     if(!init()) return;
@@ -966,5 +1012,6 @@ START_TEST(msvcp120)
     test_tr2_sys__Rename();
     test_tr2_sys__Statvfs();
     test_tr2_sys__Stat();
+    test_tr2_sys__Last_write_time();
     FreeLibrary(msvcp);
 }




More information about the wine-cvs mailing list