XPlor/tests/autotest_cod.h

133 lines
3.9 KiB
C
Raw Normal View History

2025-04-04 20:40:12 -04:00
#ifndef AUTOTEST_COD_CPP
#define AUTOTEST_COD_CPP
2025-03-01 20:38:52 -05:00
#include <QtTest/QtTest>
#include "fastfile_factory.h"
2025-05-03 09:57:47 -04:00
#define FILE_MAX 1
2025-03-01 20:38:52 -05:00
class AutoTest_COD : public QObject {
Q_OBJECT
2025-04-23 00:09:35 -04:00
protected:
QList<QPair<QString, bool>> m_subtestResults;
2025-04-04 20:40:12 -04:00
public:
2025-04-23 00:09:35 -04:00
const QList<QPair<QString, bool>>& getCollectedTestResults() const {
return m_subtestResults;
}
void recordResult(const QString& name, bool passed) {
m_subtestResults.append({ name, passed });
}
2025-04-04 20:40:12 -04:00
void setFastFileDirectory(const QString aFastFileDir) {
mFastFileDirectory = aFastFileDir;
}
QString getFastFileDirectory() {
return mFastFileDirectory;
}
void setZoneFileDirectory(const QString aZoneFileDir) {
mZoneFileDirectory = aZoneFileDir;
}
QString getZoneFileDirectory() {
return mZoneFileDirectory;
}
void createDirectory(const QString aDir) {
2025-04-23 00:09:35 -04:00
QDir newDir(".");
newDir.mkpath(aDir);
2025-04-04 20:40:12 -04:00
}
QStringList findZoneFiles(const QString &aBaseDir, int aMaxIter = FILE_MAX) {
QList<QPair<qint64, QString>> fileList;
2025-04-04 20:40:12 -04:00
QDirIterator it(aBaseDir, QStringList() << "*.zone", QDir::Files, QDirIterator::Subdirectories);
2025-04-04 20:40:12 -04:00
int i = 0;
while (it.hasNext() && i < aMaxIter) {
QString path = it.next();
QFileInfo fi(path);
fileList.append(qMakePair(fi.size(), path));
2025-04-04 20:40:12 -04:00
++i;
}
std::sort(fileList.begin(), fileList.end(),
[](const QPair<qint64, QString> &a, const QPair<qint64, QString> &b) {
return a.first < b.first; // sort by size
});
QStringList sorted;
for (const auto &pair : fileList)
sorted << pair.second;
return sorted;
2025-04-04 20:40:12 -04:00
}
QStringList findFastFiles(const QString &aBaseDir, int aMaxIter = FILE_MAX) {
QList<QPair<qint64, QString>> fileList;
2025-04-04 20:40:12 -04:00
QDirIterator it(aBaseDir, QStringList() << "*.ff", QDir::Files, QDirIterator::Subdirectories);
2025-04-04 20:40:12 -04:00
int i = 0;
while (it.hasNext() && i < aMaxIter) {
QString path = it.next();
QFileInfo fi(path);
fileList.append(qMakePair(fi.size(), path));
2025-04-04 20:40:12 -04:00
++i;
}
std::sort(fileList.begin(), fileList.end(),
[](const QPair<qint64, QString> &a, const QPair<qint64, QString> &b) {
return a.first < b.first; // sort by size
});
QStringList sorted;
for (const auto &pair : fileList)
sorted << pair.second;
return sorted;
2025-04-04 20:40:12 -04:00
}
2025-04-04 20:40:12 -04:00
virtual void initTestCase() = 0;
void testDecompression_data() {
QTest::addColumn<QString>("fastFilePath");
QStringList ffFiles = findFastFiles(getFastFileDirectory());
for (const QString &filePath : ffFiles) {
QString fileName = QFileInfo(filePath).fileName();
QTest::newRow(qPrintable(fileName)) << filePath;
}
}
2025-04-04 20:34:24 -04:00
virtual void testDecompression() = 0;
void testCompression_data() {
QTest::addColumn<QString>("zoneFilePath");
QStringList zoneFiles = findZoneFiles(getZoneFileDirectory());
for (const QString &filePath : zoneFiles) {
QString fileName = QFileInfo(filePath).fileName();
QTest::newRow(qPrintable(fileName)) << filePath;
break;
}
}
2025-04-04 20:40:12 -04:00
virtual void testCompression() = 0;
void testFactory_data() {
QTest::addColumn<QString>("fastFilePath");
QStringList ffFiles = findFastFiles(getFastFileDirectory());
for (const QString &filePath : ffFiles) {
QString fileName = QFileInfo(filePath).fileName();
QTest::newRow(qPrintable(fileName)) << filePath;
}
}
virtual void testFactory() = 0;
2025-04-04 20:40:12 -04:00
virtual void cleanupTestCase() = 0;
private:
QString mFastFileDirectory;
QString mZoneFileDirectory;
2025-03-01 20:38:52 -05:00
};
2025-04-04 20:40:12 -04:00
#endif // AUTOTEST_COD_CPP