diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-06-03 15:26:34 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-06-03 15:51:20 +0200 |
commit | 5591e821358b9111c79336a66eac4d04bb5811ba (patch) | |
tree | 4b4c1da4f5ccaead1cf4f487622de1d0b242b0b9 /src/testlib | |
parent | e4079eca49adce16e31dac2a18d49d7a55817891 (diff) | |
parent | ca0c9f82cbf7c8c37acdcbdfdc3fa0c5fc138059 (diff) |
Merge remote-tracking branch 'origin/dev' into wip/cmake
Change-Id: Ide5b3408bfefca410323cf26b810b44c06d3a227
Diffstat (limited to 'src/testlib')
-rw-r--r-- | src/testlib/.prev_CMakeLists.txt | 141 | ||||
-rw-r--r-- | src/testlib/CMakeLists.txt | 70 | ||||
-rw-r--r-- | src/testlib/configure.cmake | 5 | ||||
-rw-r--r-- | src/testlib/configure.json | 6 | ||||
-rw-r--r-- | src/testlib/qbenchmark.cpp | 2 | ||||
-rw-r--r-- | src/testlib/qbenchmark_p.h | 8 | ||||
-rw-r--r-- | src/testlib/qbenchmarkvalgrind.cpp | 4 | ||||
-rw-r--r-- | src/testlib/qbenchmarkvalgrind_p.h | 2 | ||||
-rw-r--r-- | src/testlib/qtestcase.cpp | 12 | ||||
-rw-r--r-- | src/testlib/testlib.pro | 9 |
10 files changed, 210 insertions, 49 deletions
diff --git a/src/testlib/.prev_CMakeLists.txt b/src/testlib/.prev_CMakeLists.txt new file mode 100644 index 0000000000..aef2ceefd0 --- /dev/null +++ b/src/testlib/.prev_CMakeLists.txt @@ -0,0 +1,141 @@ +# Generated from testlib.pro. + +##################################################################### +## Test Module: +##################################################################### + +add_qt_module(Test + QMAKE_MODULE_CONFIG console testlib_defines + SOURCES + qabstracttestlogger.cpp qabstracttestlogger_p.h + qasciikey.cpp + qbenchmark.cpp qbenchmark.h qbenchmark_p.h + qbenchmarkevent.cpp qbenchmarkevent_p.h + qbenchmarkmeasurement.cpp qbenchmarkmeasurement_p.h + qbenchmarkmetric.cpp qbenchmarkmetric.h qbenchmarkmetric_p.h + qbenchmarkperfevents.cpp qbenchmarkperfevents_p.h + qbenchmarktimemeasurers_p.h + qcsvbenchmarklogger.cpp qcsvbenchmarklogger_p.h + qplaintestlogger.cpp qplaintestlogger_p.h + qsignaldumper.cpp qsignaldumper_p.h + qsignalspy.h + qtaptestlogger.cpp qtaptestlogger_p.h + qteamcitylogger.cpp qteamcitylogger_p.h + qtest.h + qtest_gui.h + qtest_network.h + qtest_widgets.h + qtestaccessible.h + qtestassert.h + qtestblacklist.cpp qtestblacklist_p.h + qtestcase.cpp qtestcase.h + qtestcoreelement_p.h + qtestcorelist_p.h + qtestdata.cpp qtestdata.h + qtestelement.cpp qtestelement_p.h + qtestelementattribute.cpp qtestelementattribute_p.h + qtestevent.h + qtesteventloop.h + qtesthelpers_p.h + qtestkeyboard.h + qtestlog.cpp qtestlog_p.h + qtestmouse.cpp qtestmouse.h + qtestresult.cpp qtestresult_p.h + qtestspontaneevent.h + qtestsystem.h + qtesttable.cpp qtesttable_p.h + qtesttouch.h + qtestxunitstreamer.cpp qtestxunitstreamer_p.h + qttestglobal.h + qxmltestlogger.cpp qxmltestlogger_p.h + qxunittestlogger.cpp qxunittestlogger_p.h + DEFINES + QT_NO_CAST_FROM_ASCII + QT_NO_CAST_TO_ASCII + QT_NO_DATASTREAM + QT_NO_FOREACH + LIBRARIES + Qt::CorePrivate + PUBLIC_LIBRARIES + Qt::Core + COMPILE_OPTIONS + --cs-exclude-file-abs-wildcard=$$QT_SOURCE_TREE/* + --cs-include-file-abs-wildcard=*/src/testlib/* + --cs-mcc + --cs-mcdc + LINK_OPTIONS + "$$COVERAGE_OPTIONS" +) + +#### Keys ignored in scope 1:.:.:testlib.pro:<TRUE>: +# CONFIG = "exceptions" +# MODULE_CONFIG = "console" "testlib_defines" +# _LOADED = "qt_module" + +## Scopes: +##################################################################### + +#### Keys ignored in scope 2:.:.:testlib.pro:UNIX AND NOT embedded: +# QMAKE_PKGCONFIG_DESCRIPTION = "Qt" "Unit" "Testing" "Library" + +extend_target(Test CONDITION QT_FEATURE_itemmodeltester + SOURCES + qabstractitemmodeltester.cpp qabstractitemmodeltester.h +) + +extend_target(Test CONDITION QT_FEATURE_valgrind + SOURCES + qbenchmarkvalgrind.cpp qbenchmarkvalgrind_p.h +) + +extend_target(Test CONDITION embedded + COMPILE_OPTIONS + -fno-rtti +) + +extend_target(Test CONDITION APPLE_OSX + SOURCES + qappletestlogger.cpp qappletestlogger_p.h + qtestutil_macos.mm qtestutil_macos_p.h + PUBLIC_LIBRARIES + ${FWApplicationServices} + ${FWFoundation} + ${FWIOKit} + ${FWSecurity} +) + +extend_target(Test CONDITION (APPLE_OSX) AND (OFF AND NOT lessThan(QMAKE_XCODE_VERSION, "6.0")) + SOURCES + qxctestlogger.mm qxctestlogger_p.h + DEFINES + HAVE_XCTEST + PUBLIC_LIBRARIES + ${FWFoundation} +) + +#### Keys ignored in scope 8:.:.:testlib.pro:OFF AND NOT lessThan(QMAKE_XCODE_VERSION, "6.0"): +# _LOADED = "sdk" + +extend_target(Test CONDITION ((APPLE_OSX) AND (OFF AND NOT lessThan(QMAKE_XCODE_VERSION, "6.0"))) AND (NOT QMAKE_MAC_SDK_PLATFORM_PATH_ISEMPTY) + COMPILE_OPTIONS + -F/Developer/Library/Frameworks + LINK_OPTIONS + "-F$${platform_dev_frameworks_path}" + "-weak_framework" + "XCTest" +) + +#### Keys ignored in scope 9:.:.:testlib.pro:NOT QMAKE_MAC_SDK_PLATFORM_PATH_ISEMPTY: +# MODULE_CONFIG = "xctest" + +#### Keys ignored in scope 10:.:.:testlib.pro:NOT TARGET Qt::Gui: +# HEADERSCLEAN_EXCLUDE = "qtest_gui.h" "qtestaccessible.h" "qtestkeyboard.h" "qtestmouse.h" "qtesttouch.h" + +#### Keys ignored in scope 11:.:.:testlib.pro:NOT TARGET Qt::Widgets: +# HEADERSCLEAN_EXCLUDE = "qtest_widgets.h" + +#### Keys ignored in scope 12:.:.:testlib.pro:NOT TARGET Qt::Network: +# HEADERSCLEAN_EXCLUDE = "qtest_network.h" +add_qt_docs( + doc/qttestlib.qdocconf +) diff --git a/src/testlib/CMakeLists.txt b/src/testlib/CMakeLists.txt index 509748e51e..92864a9e01 100644 --- a/src/testlib/CMakeLists.txt +++ b/src/testlib/CMakeLists.txt @@ -7,7 +7,7 @@ add_qt_module(Test CONFIG_MODULE_NAME testlib # special case SOURCES - qabstracttestlogger.cpp + qabstracttestlogger.cpp qabstracttestlogger_p.h qasciikey.cpp qbenchmark.cpp qbenchmark.h qbenchmark_p.h qbenchmarkevent.cpp qbenchmarkevent_p.h @@ -15,13 +15,12 @@ add_qt_module(Test qbenchmarkmetric.cpp qbenchmarkmetric.h qbenchmarkmetric_p.h qbenchmarkperfevents.cpp qbenchmarkperfevents_p.h qbenchmarktimemeasurers_p.h - qbenchmarkvalgrind.cpp qbenchmarkvalgrind_p.h - qcsvbenchmarklogger.cpp - qplaintestlogger.cpp - qsignaldumper.cpp + qcsvbenchmarklogger.cpp qcsvbenchmarklogger_p.h + qplaintestlogger.cpp qplaintestlogger_p.h + qsignaldumper.cpp qsignaldumper_p.h qsignalspy.h qtaptestlogger.cpp qtaptestlogger_p.h - qteamcitylogger.cpp + qteamcitylogger.cpp qteamcitylogger_p.h qtest.h qtest_gui.h qtest_network.h @@ -30,37 +29,43 @@ add_qt_module(Test qtestassert.h qtestblacklist.cpp qtestblacklist_p.h qtestcase.cpp qtestcase.h + qtestcoreelement_p.h + qtestcorelist_p.h qtestdata.cpp qtestdata.h - qtestelement.cpp - qtestelementattribute.cpp + qtestelement.cpp qtestelement_p.h + qtestelementattribute.cpp qtestelementattribute_p.h qtestevent.h qtesteventloop.h qtesthelpers_p.h qtestkeyboard.h - qtestlog.cpp + qtestlog.cpp qtestlog_p.h qtestmouse.cpp qtestmouse.h - qtestresult.cpp + qtestresult.cpp qtestresult_p.h qtestspontaneevent.h qtestsystem.h - qtesttable.cpp + qtesttable.cpp qtesttable_p.h qtesttouch.h - qtestxunitstreamer.cpp + qtestxunitstreamer.cpp qtestxunitstreamer_p.h qttestglobal.h - qxmltestlogger.cpp - qxunittestlogger.cpp + qxmltestlogger.cpp qxmltestlogger_p.h + qxunittestlogger.cpp qxunittestlogger_p.h DEFINES - QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII - QT_NO_FOREACH + QT_NO_CAST_TO_ASCII QT_NO_DATASTREAM + QT_NO_FOREACH QT_BUILD_TESTLIB_LIB # special case LIBRARIES Qt::CorePrivate - PUBLIC_LIBRARIES # special case + PUBLIC_LIBRARIES Qt::Core + # special case begin + # remove COMPILE_OPTIONS, LINK_OPTIONS, COVERAGE_OPTIONS + # figure out how it should be handled. + # special case end ) -#### Keys ignored in scope 1:.:testlib.pro:<NONE>: +#### Keys ignored in scope 1:.:.:testlib.pro:<TRUE>: # CONFIG = "exceptions" # MODULE_CONFIG = "console" "testlib_defines" # _LOADED = "qt_module" @@ -68,7 +73,7 @@ add_qt_module(Test ## Scopes: ##################################################################### -#### Keys ignored in scope 2:.:testlib.pro:UNIX AND NOT embedded: +#### Keys ignored in scope 2:.:.:testlib.pro:UNIX AND NOT embedded: # QMAKE_PKGCONFIG_DESCRIPTION = "Qt" "Unit" "Testing" "Library" extend_target(Test CONDITION QT_FEATURE_itemmodeltester @@ -76,37 +81,44 @@ extend_target(Test CONDITION QT_FEATURE_itemmodeltester qabstractitemmodeltester.cpp qabstractitemmodeltester.h ) +extend_target(Test CONDITION QT_FEATURE_valgrind + SOURCES + qbenchmarkvalgrind.cpp qbenchmarkvalgrind_p.h +) + extend_target(Test CONDITION embedded COMPILE_OPTIONS - "-fno-rtti" + -fno-rtti ) extend_target(Test CONDITION APPLE_OSX SOURCES qappletestlogger.cpp qappletestlogger_p.h qtestutil_macos.mm qtestutil_macos_p.h - LIBRARIES + PUBLIC_LIBRARIES ${FWApplicationServices} ${FWFoundation} ${FWIOKit} ${FWSecurity} ) -# special case: Do not bother with disabld stuff: +# special case begin +# Do not bother with disabled stuff: # extend_target(Test CONDITION (APPLE_OSX) AND (OFF AND NOT lessThan(QMAKE_XCODE_VERSION, "6.0")) ... # extend_target(Test CONDITION ((APPLE_OSX) AND (OFF AND NOT lessThan(QMAKE_XCODE_VERSION, "6.0"))) AND (NOT QMAKE_MAC_SDK_PLATFORM_PATH_ISEMPTY) ... +# special case end -#### Keys ignored in scope 8:.:testlib.pro:NOT QMAKE_MAC_SDK_PLATFORM_PATH_ISEMPTY: +#### Keys ignored in scope 9:.:.:testlib.pro:NOT QMAKE_MAC_SDK_PLATFORM_PATH_ISEMPTY: # MODULE_CONFIG = "xctest" -# platform_dev_frameworks_path = "$${QMAKE_MAC_SDK_PLATFORM_PATH}/Developer/Library/Frameworks" -#### Keys ignored in scope 9:.:testlib.pro:NOT TARGET Qt::Gui: +#### Keys ignored in scope 10:.:.:testlib.pro:NOT TARGET Qt::Gui: # HEADERSCLEAN_EXCLUDE = "qtest_gui.h" "qtestaccessible.h" "qtestkeyboard.h" "qtestmouse.h" "qtesttouch.h" -#### Keys ignored in scope 10:.:testlib.pro:NOT TARGET Qt::Widgets: +#### Keys ignored in scope 11:.:.:testlib.pro:NOT TARGET Qt::Widgets: # HEADERSCLEAN_EXCLUDE = "qtest_widgets.h" -#### Keys ignored in scope 11:.:testlib.pro:NOT TARGET Qt::Network: +#### Keys ignored in scope 12:.:.:testlib.pro:NOT TARGET Qt::Network: # HEADERSCLEAN_EXCLUDE = "qtest_network.h" - -add_qt_docs(./doc/qttestlib.qdocconf) +add_qt_docs( + doc/qttestlib.qdocconf +) diff --git a/src/testlib/configure.cmake b/src/testlib/configure.cmake index 74d32e9dfc..b02487223c 100644 --- a/src/testlib/configure.cmake +++ b/src/testlib/configure.cmake @@ -24,3 +24,8 @@ qt_feature("itemmodeltester" PUBLIC PURPOSE "Provides a utility to test item models." CONDITION QT_FEATURE_itemmodel ) +qt_feature("valgrind" PUBLIC + LABEL "Valgrind" + PURPOSE "Profiling support with callgrind." + CONDITION ( LINUX OR APPLE ) AND QT_FEATURE_process AND QT_FEATURE_regularexpression +) diff --git a/src/testlib/configure.json b/src/testlib/configure.json index df6132cdc2..726f614ee5 100644 --- a/src/testlib/configure.json +++ b/src/testlib/configure.json @@ -16,6 +16,12 @@ "purpose": "Provides a utility to test item models.", "condition": "features.itemmodel", "output": [ "publicFeature" ] + }, + "valgrind": { + "label": "Valgrind", + "purpose": "Profiling support with callgrind.", + "condition": "(config.linux || config.darwin) && features.process && features.regularexpression", + "output": [ "publicFeature" ] } }, diff --git a/src/testlib/qbenchmark.cpp b/src/testlib/qbenchmark.cpp index d49d07bb70..8d5543a0fc 100644 --- a/src/testlib/qbenchmark.cpp +++ b/src/testlib/qbenchmark.cpp @@ -82,7 +82,7 @@ QBenchmarkMeasurerBase * QBenchmarkGlobalData::createMeasurer() { QBenchmarkMeasurerBase *measurer = 0; if (0) { -#ifdef QTESTLIB_USE_VALGRIND +#if QT_CONFIG(valgrind) } else if (mode_ == CallgrindChildProcess || mode_ == CallgrindParentProcess) { measurer = new QBenchmarkCallgrindMeasurer; #endif diff --git a/src/testlib/qbenchmark_p.h b/src/testlib/qbenchmark_p.h index 3fa9c5f534..49868ac23a 100644 --- a/src/testlib/qbenchmark_p.h +++ b/src/testlib/qbenchmark_p.h @@ -55,12 +55,6 @@ #include <QtCore/qglobal.h> -#if (defined(Q_OS_LINUX) || defined Q_OS_MACOS) && QT_CONFIG(process) -#define QTESTLIB_USE_VALGRIND -#else -#undef QTESTLIB_USE_VALGRIND -#endif - #if defined(Q_OS_LINUX) && !defined(QT_LINUXBASE) && !defined(Q_OS_ANDROID) #define QTESTLIB_USE_PERF_EVENTS #else @@ -70,7 +64,7 @@ #include <QtTest/private/qbenchmarkmeasurement_p.h> #include <QtCore/QMap> #include <QtTest/qttestglobal.h> -#ifdef QTESTLIB_USE_VALGRIND +#if QT_CONFIG(valgrind) #include <QtTest/private/qbenchmarkvalgrind_p.h> #endif #ifdef QTESTLIB_USE_PERF_EVENTS diff --git a/src/testlib/qbenchmarkvalgrind.cpp b/src/testlib/qbenchmarkvalgrind.cpp index 7d24eb8293..0dac804338 100644 --- a/src/testlib/qbenchmarkvalgrind.cpp +++ b/src/testlib/qbenchmarkvalgrind.cpp @@ -39,8 +39,6 @@ #include <QtTest/private/qbenchmark_p.h> -#ifdef QTESTLIB_USE_VALGRIND - #include <QtTest/private/qbenchmarkvalgrind_p.h> #include <QtCore/qstringlist.h> #include <QtCore/qcoreapplication.h> @@ -243,5 +241,3 @@ QTest::QBenchmarkMetric QBenchmarkCallgrindMeasurer::metricType() } QT_END_NAMESPACE - -#endif // QTESTLIB_USE_VALGRIND diff --git a/src/testlib/qbenchmarkvalgrind_p.h b/src/testlib/qbenchmarkvalgrind_p.h index 69219b9a65..0619be9f22 100644 --- a/src/testlib/qbenchmarkvalgrind_p.h +++ b/src/testlib/qbenchmarkvalgrind_p.h @@ -58,6 +58,8 @@ class QStringList; +QT_REQUIRE_CONFIG(valgrind); + QT_BEGIN_NAMESPACE class QBenchmarkValgrindUtils diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index cad29b5326..5faafba38d 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -574,7 +574,7 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, const char *const argv[], bool " -nocrashhandler : Disables the crash handler. Useful for debugging crashes.\n" "\n" " Benchmarking options:\n" -#ifdef QTESTLIB_USE_VALGRIND +#if QT_CONFIG(valgrind) " -callgrind : Use callgrind to time benchmarks\n" #endif #ifdef QTESTLIB_USE_PERF_EVENTS @@ -717,7 +717,7 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, const char *const argv[], bool } } else if (strcmp(argv[i], "-nocrashhandler") == 0) { QTest::noCrashHandler = true; -#ifdef QTESTLIB_USE_VALGRIND +#if QT_CONFIG(valgrind) } else if (strcmp(argv[i], "-callgrind") == 0) { if (QBenchmarkValgrindUtils::haveValgrind()) if (QFileInfo(QDir::currentPath()).isWritable()) { @@ -1459,7 +1459,7 @@ void TestMethods::invokeTests(QObject *testObject) const QScopedPointer<WatchDog> watchDog; if (!debuggerPresent() -#ifdef QTESTLIB_USE_VALGRIND +#if QT_CONFIG(valgrind) && QBenchmarkGlobalData::current->mode() != QBenchmarkGlobalData::CallgrindChildProcess #endif ) { @@ -1866,7 +1866,7 @@ int QTest::qRun() { QTEST_ASSERT(currentTestObject); -#ifdef QTESTLIB_USE_VALGRIND +#if QT_CONFIG(valgrind) int callgrindChildExitCode = 0; #endif @@ -1886,7 +1886,7 @@ int QTest::qRun() } // !noCrashHandler #endif // Q_OS_WIN -#ifdef QTESTLIB_USE_VALGRIND +#if QT_CONFIG(valgrind) if (QBenchmarkGlobalData::current->mode() == QBenchmarkGlobalData::CallgrindParentProcess) { if (Q_UNLIKELY(!qApp)) qFatal("QtTest: -callgrind option is not available with QTEST_APPLESS_MAIN"); @@ -1944,7 +1944,7 @@ int QTest::qRun() } #endif -#ifdef QTESTLIB_USE_VALGRIND +#if QT_CONFIG(valgrind) if (QBenchmarkGlobalData::current->mode() == QBenchmarkGlobalData::CallgrindParentProcess) return callgrindChildExitCode; #endif diff --git a/src/testlib/testlib.pro b/src/testlib/testlib.pro index f52a913a08..530bc6b425 100644 --- a/src/testlib/testlib.pro +++ b/src/testlib/testlib.pro @@ -17,7 +17,6 @@ HEADERS = \ qbenchmark_p.h \ qbenchmarkmeasurement_p.h \ qbenchmarktimemeasurers_p.h \ - qbenchmarkvalgrind_p.h \ qbenchmarkevent_p.h \ qbenchmarkperfevents_p.h \ qbenchmarkmetric.h \ @@ -70,7 +69,6 @@ SOURCES = \ qabstracttestlogger.cpp \ qbenchmark.cpp \ qbenchmarkmeasurement.cpp \ - qbenchmarkvalgrind.cpp \ qbenchmarkevent.cpp \ qbenchmarkperfevents.cpp \ qbenchmarkmetric.cpp \ @@ -92,6 +90,13 @@ qtConfig(itemmodeltester) { qabstractitemmodeltester.cpp } +qtConfig(valgrind) { + HEADERS += \ + qbenchmarkvalgrind_p.h + SOURCES += \ + qbenchmarkvalgrind.cpp +} + DEFINES *= QT_NO_CAST_TO_ASCII \ QT_NO_CAST_FROM_ASCII \ QT_NO_FOREACH \ |