Async tests: Add tests taking static function

Change-Id: Id10b40c7d50c36b8e9406f1ae7ab8915c908212c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Jarek Kobus
2023-11-08 21:33:24 +01:00
parent 9e556d1142
commit 845337436c

View File

@@ -33,12 +33,25 @@ void report3(QPromise<int> &promise)
promise.addResult(1);
}
static void staticReport3(QPromise<int> &promise)
{
promise.addResult(0);
promise.addResult(2);
promise.addResult(1);
}
void reportN(QPromise<double> &promise, int n)
{
for (int i = 0; i < n; ++i)
promise.addResult(0);
}
static void staticReportN(QPromise<double> &promise, int n)
{
for (int i = 0; i < n; ++i)
promise.addResult(0);
}
void reportString1(QPromise<QString> &promise, const QString &s)
{
promise.addResult(s);
@@ -135,6 +148,24 @@ std::shared_ptr<Async<ResultType>> createAsyncTask(Function &&function, Args &&.
void tst_Async::runAsync()
{
// tesing QtConcurrent::run()
QCOMPARE(QtConcurrent::run(&report3).results(),
QList<int>({0, 2, 1}));
QCOMPARE(QtConcurrent::run(report3).results(),
QList<int>({0, 2, 1}));
QCOMPARE(QtConcurrent::run(&staticReport3).results(),
QList<int>({0, 2, 1}));
QCOMPARE(QtConcurrent::run(staticReport3).results(),
QList<int>({0, 2, 1}));
QCOMPARE(QtConcurrent::run(&reportN, 2).results(),
QList<double>({0, 0}));
QCOMPARE(QtConcurrent::run(reportN, 2).results(),
QList<double>({0, 0}));
QCOMPARE(QtConcurrent::run(&staticReportN, 2).results(),
QList<double>({0, 0}));
QCOMPARE(QtConcurrent::run(staticReportN, 2).results(),
QList<double>({0, 0}));
// free function pointer
QCOMPARE(createAsyncTask(&report3)->results(),
QList<int>({0, 2, 1}));
@@ -144,15 +175,31 @@ void tst_Async::runAsync()
QList<int>({0, 2, 1}));
QCOMPARE(Utils::asyncRun(report3).results(),
QList<int>({0, 2, 1}));
QCOMPARE(createAsyncTask(&staticReport3)->results(),
QList<int>({0, 2, 1}));
QCOMPARE(Utils::asyncRun(&staticReport3).results(),
QList<int>({0, 2, 1}));
QCOMPARE(createAsyncTask(staticReport3)->results(),
QList<int>({0, 2, 1}));
QCOMPARE(Utils::asyncRun(staticReport3).results(),
QList<int>({0, 2, 1}));
QCOMPARE(createAsyncTask(reportN, 4)->results(),
QList<double>({0, 0, 0, 0}));
QCOMPARE(Utils::asyncRun(reportN, 4).results(),
QList<double>({0, 0, 0, 0}));
QCOMPARE(createAsyncTask(&reportN, 2)->results(),
QList<double>({0, 0}));
QCOMPARE(Utils::asyncRun(&reportN, 2).results(),
QList<double>({0, 0}));
QCOMPARE(createAsyncTask(reportN, 2)->results(),
QList<double>({0, 0}));
QCOMPARE(Utils::asyncRun(reportN, 2).results(),
QList<double>({0, 0}));
QCOMPARE(createAsyncTask(&staticReportN, 2)->results(),
QList<double>({0, 0}));
QCOMPARE(Utils::asyncRun(&staticReportN, 2).results(),
QList<double>({0, 0}));
QCOMPARE(createAsyncTask(staticReportN, 2)->results(),
QList<double>({0, 0}));
QCOMPARE(Utils::asyncRun(staticReportN, 2).results(),
QList<double>({0, 0}));
QString s = QLatin1String("string");
const QString &crs = QLatin1String("cr string");