CQtDeployer/UnitTests/testutils.cpp

73 lines
1.4 KiB
C++
Raw Normal View History

2019-09-08 14:18:58 +03:00
#include "testutils.h"
#include <QDir>
#include <QFileInfo>
TestUtils::TestUtils()
{
}
QSet<QString> TestUtils::getTree(const QString &path) {
QFileInfo info(path);
if (!info.exists()) {
return {};
}
auto result = QSet<QString>{};
if (!info.isDir()) {
result.insert(getFilePath(info.absoluteFilePath()));
2019-09-08 14:18:58 +03:00
return result;
}
QDir dir(info.absoluteFilePath());
auto list = dir.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot);
for (auto &i: list) {
result.unite(getTree(i.absoluteFilePath()));
}
return result;
}
QString TestUtils::getFilePath(const QString& i) {
auto file = QFileInfo(i).absoluteFilePath();
auto delimiter = file.lastIndexOf("/");
auto shared = file.indexOf(".so.", Qt::CaseInsensitive);
if (shared > delimiter) {
file = file.left(shared);
file.push_back(".so");
}
return file;
}
QSet<QString> TestUtils::createTree(const QStringList &tree) {
QSet<QString> res;
for (auto &i : tree) {
res.insert(getFilePath(i));
}
return res;
}
2019-09-08 14:18:58 +03:00
QHash<QString, int> TestUtils::compareTree(const QSet<QString> &leftTree, const QSet<QString> &rightTree) {
QHash<QString, int> result;
auto valuel = leftTree - rightTree;
auto valuer = rightTree - leftTree;
for(auto &i :valuel) {
result.insert(i, 1);
}
for(auto &i :valuer) {
result.insert(i, -1);
}
return result;
}