diff options
author | João Abecasis <joao.abecasis@nokia.com> | 2010-12-08 15:18:58 (GMT) |
---|---|---|
committer | João Abecasis <joao.abecasis@nokia.com> | 2010-12-08 17:30:31 (GMT) |
commit | 98b709fec4e0e9d6f1740309936dcb95475d6ee1 (patch) | |
tree | fb6d46d63cd3fda86d3d192d2afd47e608d20ba7 /tests/auto | |
parent | fde1968b4577e73f4feecdf278fb564494033ac2 (diff) | |
download | Qt-98b709fec4e0e9d6f1740309936dcb95475d6ee1.zip Qt-98b709fec4e0e9d6f1740309936dcb95475d6ee1.tar.gz Qt-98b709fec4e0e9d6f1740309936dcb95475d6ee1.tar.bz2 |
Use effective user id instead of getlogin
And check if this gives us more reliable results.
Reviewed-by: Prasanth Ullattil
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/qfileinfo/tst_qfileinfo.cpp | 28 |
1 files 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 <fcntl.h> #include <unistd.h> #include <sys/stat.h> +#include <sys/types.h> +#include <pwd.h> #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 |