QFileInfo autotest - don't fail on default configured windows systems
authorShane Kearns <ext-shane.2.kearns@nokia.com>
Thu, 19 Jan 2012 15:12:29 +0000 (15:12 +0000)
committerQt by Nokia <qt-info@nokia.com>
Fri, 20 Jan 2012 17:48:22 +0000 (18:48 +0100)
NTFS file access times are disabled by default since windows 6 for
performance reasons. The test now checks the registry setting and
reports XFAIL if access times are disabled.

Change-Id: Ia84ed0c8736e6c7d5817425006f6115d9f3e70a4
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp

index 7ca41d3..182c2c6 100644 (file)
@@ -1028,6 +1028,19 @@ void tst_QFileInfo::fileTimes()
     //In Vista the last-access timestamp is not updated when the file is accessed/touched (by default).
     //To enable this the HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisableLastAccessUpdate
     //is set to 0, in the test machine.
+#ifdef Q_OS_WIN
+    HKEY key;
+    if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Control\\FileSystem",
+        0, KEY_READ, &key)) {
+            DWORD disabledAccessTimes = 0;
+            DWORD size = sizeof(DWORD);
+            LONG error = RegQueryValueEx(key, L"NtfsDisableLastAccessUpdate"
+                , NULL, NULL, (LPBYTE)&disabledAccessTimes, &size);
+            if (ERROR_SUCCESS == error && disabledAccessTimes)
+                QEXPECT_FAIL("", "File access times are disabled in windows registry (this is the default setting)", Continue);
+            RegCloseKey(key);
+    }
+#endif
 #ifdef Q_OS_WINCE
     QEXPECT_FAIL("simple", "WinCE only stores date of access data, not the time", Continue);
 #endif