diff options
Diffstat (limited to 'tests/auto/concurrent/qtconcurrentrun/tst_qtconcurrentrun.cpp')
-rw-r--r-- | tests/auto/concurrent/qtconcurrentrun/tst_qtconcurrentrun.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/tests/auto/concurrent/qtconcurrentrun/tst_qtconcurrentrun.cpp b/tests/auto/concurrent/qtconcurrentrun/tst_qtconcurrentrun.cpp index f3f4be3f3f..acb4840ca8 100644 --- a/tests/auto/concurrent/qtconcurrentrun/tst_qtconcurrentrun.cpp +++ b/tests/auto/concurrent/qtconcurrentrun/tst_qtconcurrentrun.cpp @@ -60,8 +60,12 @@ private slots: #ifndef QT_NO_EXCEPTIONS void exceptions(); #endif +#ifdef Q_COMPILER_DECLTYPE void functor(); +#endif +#ifdef Q_COMPILER_LAMBDA void lambda(); +#endif }; void light() @@ -398,6 +402,8 @@ void tst_QtConcurrentRun::exceptions() } #endif +#ifdef Q_COMPILER_DECLTYPE +// Compiler supports decltype struct Functor { int operator()() { return 42; } double operator()(double a, double b) { return a/b; } @@ -412,9 +418,6 @@ struct Functor { // This tests functor without result_type; decltype need to be supported by the compiler. void tst_QtConcurrentRun::functor() { -#ifndef Q_COMPILER_DECLTYPE - QSKIP("Compiler does not support decltype"); -#else Functor f; { QFuture<int> fut = QtConcurrent::run(f); @@ -435,14 +438,13 @@ void tst_QtConcurrentRun::functor() QtConcurrent::run(f, 1,2,3,4).waitForFinished(); QtConcurrent::run(f, 1,2,3,4,5).waitForFinished(); } -#endif } +#endif +#ifdef Q_COMPILER_LAMBDA +// Compiler supports lambda void tst_QtConcurrentRun::lambda() { -#ifndef Q_COMPILER_LAMBDA - QSKIP("Compiler does not support lambda"); -#else QCOMPARE(QtConcurrent::run([](){ return 45; }).result(), 45); QCOMPARE(QtConcurrent::run([](int a){ return a+15; }, 12).result(), 12+15); QCOMPARE(QtConcurrent::run([](int a, double b){ return a + b; }, 12, 15).result(), double(12+15)); @@ -456,8 +458,8 @@ void tst_QtConcurrentRun::lambda() QCOMPARE(r, QStringList({"Hello", "World", "Foo"})); } #endif -#endif } +#endif QTEST_MAIN(tst_QtConcurrentRun) #include "tst_qtconcurrentrun.moc" |