summaryrefslogtreecommitdiffstats
path: root/tests/auto/qfileinfo
diff options
context:
space:
mode:
authorJoão Abecasis <joao.abecasis@nokia.com>2010-12-08 16:18:58 +0100
committerJoão Abecasis <joao.abecasis@nokia.com>2010-12-08 18:30:31 +0100
commit98b709fec4e0e9d6f1740309936dcb95475d6ee1 (patch)
treefb6d46d63cd3fda86d3d192d2afd47e608d20ba7 /tests/auto/qfileinfo
parentfde1968b4577e73f4feecdf278fb564494033ac2 (diff)
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/qfileinfo')
-rw-r--r--tests/auto/qfileinfo/tst_qfileinfo.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp
index 2e1ab39066..0a61d55566 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