From 44e9d56c0463e35bdfede1af4f9da9dd70e13820 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 30 May 2023 13:52:11 +0200 Subject: [PATCH] Utils: Fix macOS permissions parsing Change-Id: I5fdde04c197b5db323fc8630c4ee4b2c197d947a Reviewed-by: Marcus Tillmanns Reviewed-by: Qt CI Bot --- src/libs/utils/fileutils.cpp | 12 +++++++++--- tests/auto/utils/fileutils/tst_fileutils.cpp | 14 ++++++++++---- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp index a6cbebf3681..2cecc2810b9 100644 --- a/src/libs/utils/fileutils.cpp +++ b/src/libs/utils/fileutils.cpp @@ -629,12 +629,18 @@ FilePathInfo::FileFlags fileInfoFlagsfromStatMode(const QString &hexString, int FilePathInfo::FileFlags result; - if (mode & IRUSR) + if (mode & IRUSR) { result |= FilePathInfo::ReadOwnerPerm; - if (mode & IWUSR) + result |= FilePathInfo::ReadUserPerm; + } + if (mode & IWUSR) { result |= FilePathInfo::WriteOwnerPerm; - if (mode & IXUSR) + result |= FilePathInfo::WriteUserPerm; + } + if (mode & IXUSR) { result |= FilePathInfo::ExeOwnerPerm; + result |= FilePathInfo::ExeUserPerm; + } if (mode & IRGRP) result |= FilePathInfo::ReadGroupPerm; if (mode & IWGRP) diff --git a/tests/auto/utils/fileutils/tst_fileutils.cpp b/tests/auto/utils/fileutils/tst_fileutils.cpp index f4596cb1a5c..198abf3398b 100644 --- a/tests/auto/utils/fileutils/tst_fileutils.cpp +++ b/tests/auto/utils/fileutils/tst_fileutils.cpp @@ -136,6 +136,9 @@ void tst_fileutils::filePathInfoFromTriple_data() FilePathInfo::ReadOwnerPerm | FilePathInfo::WriteOwnerPerm | FilePathInfo::ExeOwnerPerm + | FilePathInfo::ReadUserPerm + | FilePathInfo::WriteUserPerm + | FilePathInfo::ExeUserPerm | FilePathInfo::ReadGroupPerm | FilePathInfo::ExeGroupPerm | FilePathInfo::ReadOtherPerm @@ -149,10 +152,11 @@ void tst_fileutils::filePathInfoFromTriple_data() << FilePathInfo{808104, FilePathInfo::FileFlags( FilePathInfo::ReadOwnerPerm | FilePathInfo::WriteOwnerPerm - | FilePathInfo::ExeOwnerPerm | FilePathInfo::ReadGroupPerm - | FilePathInfo::ExeGroupPerm | FilePathInfo::ReadOtherPerm - | FilePathInfo::ExeOtherPerm | FilePathInfo::FileType - | FilePathInfo::ExistsFlag), + | FilePathInfo::ExeOwnerPerm | FilePathInfo::ReadUserPerm + | FilePathInfo::WriteUserPerm | FilePathInfo::ExeUserPerm + | FilePathInfo::ReadGroupPerm | FilePathInfo::ExeGroupPerm + | FilePathInfo::ReadOtherPerm | FilePathInfo::ExeOtherPerm + | FilePathInfo::FileType | FilePathInfo::ExistsFlag), QDateTime::fromSecsSinceEpoch(1668852790)}; QTest::newRow("linux-disk") << QString("61b0 1651167746 0") @@ -160,6 +164,8 @@ void tst_fileutils::filePathInfoFromTriple_data() FilePathInfo::FileFlags( FilePathInfo::ReadOwnerPerm | FilePathInfo::WriteOwnerPerm + | FilePathInfo::ReadUserPerm + | FilePathInfo::WriteUserPerm | FilePathInfo::ReadGroupPerm | FilePathInfo::WriteGroupPerm | FilePathInfo::LocalDiskFlag