mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2025-07-06 09:15:23 +08:00
qt 6.6.0 clean
This commit is contained in:
@ -16,6 +16,8 @@
|
||||
#include <qsysinfo.h>
|
||||
#if defined(Q_OS_UNIX) && !defined(Q_OS_VXWORKS)
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sys/stat.h> // utimensat
|
||||
#include <sys/time.h>
|
||||
#elif defined(Q_OS_WIN)
|
||||
# include <qt_windows.h>
|
||||
@ -24,6 +26,8 @@
|
||||
|
||||
#include <private/qlockfile_p.h> // for getLockFileHandle()
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
class tst_QLockFile : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -94,7 +98,7 @@ void tst_QLockFile::lockUnlock()
|
||||
QVERIFY(lockFile.getLockInfo(&pid, &hostname, &appname));
|
||||
QCOMPARE(pid, QCoreApplication::applicationPid());
|
||||
QCOMPARE(appname, qAppName());
|
||||
QVERIFY(!lockFile.tryLock(200));
|
||||
QVERIFY(!lockFile.tryLock(200ms));
|
||||
QCOMPARE(int(lockFile.error()), int(QLockFile::LockFailedError));
|
||||
|
||||
// Unlock deletes the lock file
|
||||
@ -339,8 +343,8 @@ void tst_QLockFile::staleLongLockFromBusyProcess()
|
||||
QTRY_VERIFY(QFile::exists(fileName));
|
||||
|
||||
QLockFile secondLock(fileName);
|
||||
secondLock.setStaleLockTime(0);
|
||||
QVERIFY(!secondLock.tryLock(100)); // never stale
|
||||
secondLock.setStaleLockTime(0ms);
|
||||
QVERIFY(!secondLock.tryLock(100ms)); // never stale
|
||||
QCOMPARE(int(secondLock.error()), int(QLockFile::LockFailedError));
|
||||
qint64 pid;
|
||||
QTRY_VERIFY(secondLock.getLockInfo(&pid, NULL, NULL));
|
||||
@ -508,15 +512,15 @@ void tst_QLockFile::corruptedLockFile()
|
||||
}
|
||||
|
||||
QLockFile secondLock(fileName);
|
||||
secondLock.setStaleLockTime(100);
|
||||
QVERIFY(secondLock.tryLock(10000));
|
||||
secondLock.setStaleLockTime(100ms);
|
||||
QVERIFY(secondLock.tryLock(10s));
|
||||
QCOMPARE(int(secondLock.error()), int(QLockFile::NoError));
|
||||
}
|
||||
|
||||
void tst_QLockFile::corruptedLockFileInTheFuture()
|
||||
{
|
||||
#if !defined(Q_OS_UNIX)
|
||||
QSKIP("This tests needs utimes");
|
||||
QSKIP("This test needs utimensat");
|
||||
#else
|
||||
// This test is the same as the previous one, but the corruption was so there is a corrupted
|
||||
// .rmlock whose timestamp is in the future
|
||||
@ -528,11 +532,12 @@ void tst_QLockFile::corruptedLockFileInTheFuture()
|
||||
QVERIFY(file.open(QFile::WriteOnly));
|
||||
}
|
||||
|
||||
struct timeval times[2];
|
||||
gettimeofday(times, 0);
|
||||
times[1].tv_sec = (times[0].tv_sec += 600);
|
||||
times[1].tv_usec = times[0].tv_usec;
|
||||
utimes(fileName.toLocal8Bit(), times);
|
||||
struct timespec times[2];
|
||||
clock_gettime(CLOCK_REALTIME, times);
|
||||
times[0].tv_sec += 600;
|
||||
times[1].tv_sec = times[0].tv_sec;
|
||||
times[1].tv_nsec = times[0].tv_nsec;
|
||||
utimensat(0 /* ignored */, fileName.toLocal8Bit(), times, 0);
|
||||
|
||||
QTest::ignoreMessage(QtInfoMsg, "QLockFile: Lock file '" + fileName.toUtf8() + "' has a modification time in the future");
|
||||
corruptedLockFile();
|
||||
@ -561,7 +566,7 @@ void tst_QLockFile::hostnameChange()
|
||||
{
|
||||
// we should fail to lock
|
||||
QLockFile lock2(lockFile);
|
||||
QVERIFY(!lock2.tryLock(1000));
|
||||
QVERIFY(!lock2.tryLock(1s));
|
||||
}
|
||||
}
|
||||
|
||||
@ -588,7 +593,7 @@ void tst_QLockFile::differentMachines()
|
||||
{
|
||||
// we should fail to lock
|
||||
QLockFile lock2(lockFile);
|
||||
QVERIFY(!lock2.tryLock(1000));
|
||||
QVERIFY(!lock2.tryLock(1s));
|
||||
}
|
||||
}
|
||||
|
||||
@ -617,7 +622,7 @@ void tst_QLockFile::reboot()
|
||||
f.close();
|
||||
|
||||
// we should succeed in locking
|
||||
QVERIFY(lock1.tryLock(0));
|
||||
QVERIFY(lock1.tryLock(0ms));
|
||||
}
|
||||
|
||||
bool tst_QLockFile::overwritePidInLockFile(const QString &filePath, qint64 pid)
|
||||
|
Reference in New Issue
Block a user