From 98b709fec4e0e9d6f1740309936dcb95475d6ee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 8 Dec 2010 16:18:58 +0100 Subject: Use effective user id instead of getlogin And check if this gives us more reliable results. Reviewed-by: Prasanth Ullattil --- tests/auto/qfileinfo/tst_qfileinfo.cpp | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 2e1ab39..0a61d55 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -54,6 +54,8 @@ #include #include #include +#include +#include #endif #ifdef Q_OS_WIN #define _WIN32_WINNT 0x500 @@ -1675,8 +1677,10 @@ void tst_QFileInfo::owner() { QString userName; #if defined(Q_OS_UNIX) - char *usernameBuf = getlogin(); - if (usernameBuf) { + { + passwd *user = getpwuid(geteuid()); + QVERIFY(user); + char *usernameBuf = user->pw_name; userName = QString::fromLocal8Bit(usernameBuf); } #endif @@ -1715,18 +1719,18 @@ void tst_QFileInfo::owner() if (userName.isEmpty()) QSKIP("Can't retrieve the user name", SkipAll); QString fileName("ownertest.txt"); - if (QFile::exists(fileName)) - QFile::remove(fileName); - QFile testFile(fileName); - QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Text)); - QByteArray testData("testfile"); - QVERIFY(testFile.write(testData) != -1); - testFile.close(); + QVERIFY(!QFile::exists(fileName) || QFile::remove(fileName)); + { + QFile testFile(fileName); + QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Text)); + QByteArray testData("testfile"); + QVERIFY(testFile.write(testData) != -1); + } QFileInfo fi(fileName); QVERIFY(fi.exists()); - QCOMPARE(userName, fi.owner()); - if (QFile::exists(fileName)) - QFile::remove(fileName); + QCOMPARE(fi.owner(), userName); + + QFile::remove(fileName); #if defined(Q_OS_WIN) qt_ntfs_permission_lookup = 0; #endif -- cgit v0.12