From f75b7e78a3c14d8d66e398a94634cc9c98789c33 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 12 Mar 2013 16:12:13 +0100 Subject: Manual file test: Add permission and compile with Qt 4.8. Change-Id: I604b3107d3e049af5cd14ae5bf5bd6785330eac7 Reviewed-by: Frederik Gladhorn --- tests/manual/filetest/main.cpp | 45 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/tests/manual/filetest/main.cpp b/tests/manual/filetest/main.cpp index 9d94265df7..2f7c5cdd06 100644 --- a/tests/manual/filetest/main.cpp +++ b/tests/manual/filetest/main.cpp @@ -46,6 +46,7 @@ #include #include +#include static const char usage1[] = "\nTests various file functionality in Qt\n\n" @@ -58,11 +59,46 @@ static const char usage2[] =" [KEYWORD] [ARGUMENTS]\n\n" " rmr DIR remove directory recursively\n" " using QDir::removeRecursively\n"; +static inline std::string permissions(QFile::Permissions permissions) +{ + std::string result(10, '-'); + if (permissions & QFile::ReadOwner) + result[1] = 'r'; + if (permissions & QFile::WriteOwner) + result[2] = 'w'; + if (permissions & QFile::ExeOwner) + result[3] = 'x'; + if (permissions & QFile::ReadGroup) + result[4] = 'r'; + if (permissions & QFile::WriteGroup) + result[5] = 'w'; + if (permissions & QFile::ExeGroup) + result[6] = 'x'; + if (permissions & QFile::ReadOther) + result[7] = 'r'; + if (permissions & QFile::WriteOther) + result[8] = 'w'; + if (permissions & QFile::ExeOther) + result[9] = 'x'; + return result; +} + +static inline std::string permissions(const QFileInfo &fi) +{ + std::string result = permissions(fi.permissions()); + if (fi.isSymLink()) + result[0] = 'l'; + else if (fi.isDir()) + result[0] = 'd'; + return result; +} + static int ls(int argCount, char **args) { for (int i = 0 ; i < argCount; ++i) { const QFileInfo fi(QString::fromLocal8Bit(args[i])); - std::cout << QDir::toNativeSeparators(fi.absoluteFilePath()).toStdString() << ' ' << fi.size(); + std::cout << QDir::toNativeSeparators(fi.absoluteFilePath()).toStdString() << ' ' << fi.size() + << ' ' << permissions(fi); if (fi.exists()) std::cout << " [exists]"; if (fi.isFile()) @@ -73,6 +109,7 @@ static int ls(int argCount, char **args) } if (fi.isDir()) std::cout << " [dir]"; + std::cout << std::endl; } return 0; @@ -110,12 +147,18 @@ static int rm(const char *fileName) static int rmr(const char *dirName) { +#if QT_VERSION < 0x050000 + Q_UNUSED(dirName) + return 1; +#else QDir dir(QString::fromLocal8Bit(dirName)); if (!dir.removeRecursively()) { qWarning().nospace() << "Failed to remove " << dir.absolutePath(); return -1; } + return 0; +#endif } int main(int argc, char *argv[]) -- cgit v1.2.3