Tests: Allow specifying test suit name
This commit is contained in:
@@ -6,20 +6,49 @@
|
||||
|
||||
#include "Engine.h"
|
||||
|
||||
void printAvailableSuits()
|
||||
{
|
||||
QStringList suitNames;
|
||||
for (QTestSuite* suite : QTestSuite::suites()) {
|
||||
suitNames.push_back(suite->metaObject()->className());
|
||||
}
|
||||
qDebug().noquote() << "Available test suits are: " << suitNames.join(", ");
|
||||
}
|
||||
|
||||
int runSuit(const QString& name, const QStringList& args)
|
||||
{
|
||||
for (QTestSuite* suite : QTestSuite::suites()) {
|
||||
if (suite->metaObject()->className() == name) {
|
||||
return QTest::qExec(suite, args);
|
||||
}
|
||||
}
|
||||
throw std::invalid_argument("No such test suit " + name.toStdString());
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
new QCoreApplication(argc, argv);
|
||||
auto app = new QCoreApplication(argc, argv);
|
||||
Engine::init(true);
|
||||
|
||||
int numsuites = QTestSuite::suites().size();
|
||||
qDebug() << ">> Will run" << numsuites << "test suites";
|
||||
int failed = 0;
|
||||
for (QTestSuite*& suite : QTestSuite::suites())
|
||||
{
|
||||
failed += QTest::qExec(suite, argc, argv);
|
||||
int rc = 0;
|
||||
|
||||
if (app->arguments().size() > 1) {
|
||||
try {
|
||||
runSuit(app->arguments()[1], app->arguments().mid(1));
|
||||
} catch (const std::invalid_argument& e) {
|
||||
qDebug().noquote() << e.what();
|
||||
printAvailableSuits();
|
||||
rc = -1;
|
||||
}
|
||||
} else {
|
||||
int numsuites = QTestSuite::suites().size();
|
||||
qDebug() << ">> Will run" << numsuites << "test suites";
|
||||
for (QTestSuite* suite : QTestSuite::suites()) {
|
||||
rc += QTest::qExec(suite, argc, argv);
|
||||
}
|
||||
qDebug() << "<<" << rc << "out of"<<numsuites<<"test suites failed.";
|
||||
}
|
||||
qDebug() << "<<" << failed << "out of"<<numsuites<<"test suites failed.";
|
||||
|
||||
Engine::destroy();
|
||||
return failed;
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -36,11 +36,12 @@ private slots:
|
||||
void MemoryPoolTests()
|
||||
{
|
||||
using T = std::array<char, 16>;
|
||||
MemoryPool<T> pool(256);
|
||||
int n = 256;
|
||||
MemoryPool<T> pool(n);
|
||||
|
||||
std::stack<T*> ptrs;
|
||||
|
||||
for (int i=0; i < 256; i++) {
|
||||
for (int i=0; i < n; i++) {
|
||||
ptrs.push(pool.allocate_bounded());
|
||||
QVERIFY(ptrs.top());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user