diff options
Diffstat (limited to 'tests/auto/installer/shared/commonfunctions.h')
-rw-r--r-- | tests/auto/installer/shared/commonfunctions.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/installer/shared/commonfunctions.h b/tests/auto/installer/shared/commonfunctions.h index bf96c5648..aac1e11e4 100644 --- a/tests/auto/installer/shared/commonfunctions.h +++ b/tests/auto/installer/shared/commonfunctions.h @@ -33,6 +33,8 @@ #include <QTest> #include <QString> #include <QStringList> +#include <QCryptographicHash> +#include <QFile> struct VerifyInstaller { @@ -67,5 +69,27 @@ struct VerifyInstaller QDir dir(installDir); QCOMPARE(dir.entryList(QStringList() << "*.*", QDir::Files).count(), fileList.count()); } + + static void addToFileMap(const QDir &baseDir, const QFileInfo &fileInfo, QMap<QString, QByteArray> &map) + { + QDir directory(fileInfo.absoluteFilePath()); + directory.setFilter(QDir::NoDotAndDotDot | QDir::NoSymLinks | QDir::AllDirs | QDir::Files); + QFileInfoList fileInfoList = directory.entryInfoList(); + + foreach (const QFileInfo &info, fileInfoList) { + if (info.isDir()) { + map.insert(baseDir.relativeFilePath(info.filePath()), QByteArray()); + addToFileMap(baseDir, info, map); + } else { + QCryptographicHash hash(QCryptographicHash::Sha1); + QFile file(info.absoluteFilePath()); + QVERIFY(file.open(QIODevice::ReadOnly)); + QVERIFY(hash.addData(&file)); + map.insert(baseDir.relativeFilePath(info.filePath()), hash.result().toHex()); + file.close(); + } + } + } + }; #endif |