Generate instances of types in the CMake tests.
All modules currently have a test_modules CMake test. The new module_includes test has very similar requirements, and can obsolete the hand-maintained test_modules tests in all modules. After all test_modules have been removed in other repos, the module_includes test can be renamed to that name. The types chosen need to have a constructor which can be invoked with no arguments. QtConcurrent has no public classes which fit that description so it is still tested separately Change-Id: Id7929cd32b3112c293cbf5e6964cc894a697f9b1 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
This commit is contained in:
parent
21d74702d1
commit
03b9b423b0
@ -102,6 +102,7 @@ function(test_module_includes)
|
||||
|
||||
set(all_args ${ARGN})
|
||||
set(includes_string "")
|
||||
set(instances_string "")
|
||||
while(all_args)
|
||||
list(GET all_args 0 qtmodule)
|
||||
list(GET all_args 1 qtinclude)
|
||||
@ -113,6 +114,10 @@ function(test_module_includes)
|
||||
#include <Qt${qtmodule}>
|
||||
#include <Qt${qtmodule}/Qt${qtmodule}>"
|
||||
)
|
||||
set(instances_string
|
||||
"${instances_string}
|
||||
${qtinclude} local${qtinclude};
|
||||
")
|
||||
endwhile()
|
||||
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/module_includes/main.cpp"
|
||||
@ -120,7 +125,7 @@ function(test_module_includes)
|
||||
|
||||
${includes_string}
|
||||
|
||||
int main(int, char **) { return 0; }\n"
|
||||
int main(int, char **) { ${instances_string} return 0; }\n"
|
||||
)
|
||||
|
||||
add_test(module_includes ${CMAKE_CTEST_COMMAND}
|
||||
|
@ -74,7 +74,6 @@ if (NOT WIN32)
|
||||
expect_pass(test_add_resources_delayed_file)
|
||||
endif()
|
||||
expect_pass(test_private_includes)
|
||||
expect_pass(test_modules)
|
||||
expect_pass(test_testlib_definitions)
|
||||
expect_pass(test_json_plugin_includes)
|
||||
|
||||
@ -92,23 +91,23 @@ execute_process(COMMAND ${CMAKE_COMMAND} -E copy
|
||||
|
||||
set(qt_module_includes
|
||||
Core QObject
|
||||
Concurrent QtConcurrentRun
|
||||
Gui QImage
|
||||
Widgets QWidget
|
||||
Network QHostInfo
|
||||
OpenGL QGLContext
|
||||
OpenGL QGLBuffer
|
||||
Sql QSqlError
|
||||
Test QSignalSpy
|
||||
Test QTestEventList
|
||||
Xml QDomDocument
|
||||
PrintSupport QPrintDialog
|
||||
)
|
||||
|
||||
if (UNIX AND NOT APPLE AND NOT QNXNTO)
|
||||
list(APPEND qt_module_includes
|
||||
DBus QDBusConnection
|
||||
DBus QDBusMessage
|
||||
)
|
||||
endif()
|
||||
|
||||
test_module_includes(
|
||||
${qt_module_includes}
|
||||
)
|
||||
expect_pass(test_concurrent_module)
|
||||
|
22
tests/auto/cmake/test_concurrent_module/CMakeLists.txt
Normal file
22
tests/auto/cmake/test_concurrent_module/CMakeLists.txt
Normal file
@ -0,0 +1,22 @@
|
||||
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
project(test_concurrent_module)
|
||||
|
||||
find_package(Qt5Concurrent REQUIRED)
|
||||
|
||||
include_directories(
|
||||
${Qt5Concurrent_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
add_definitions(
|
||||
${Qt5Concurrent_DEFINITIONS}
|
||||
)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
|
||||
|
||||
add_executable(mainapp main.cpp)
|
||||
|
||||
target_link_libraries(mainapp
|
||||
${Qt5Concurrent_LIBRARIES}
|
||||
)
|
@ -39,44 +39,15 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QString>
|
||||
#include <qtconcurrentiteratekernel.h>
|
||||
#include <QImage>
|
||||
#include <QHostAddress>
|
||||
#include <QGLBuffer>
|
||||
#include <QSqlQuery>
|
||||
#include <QtTest>
|
||||
#include <QWidget>
|
||||
#include <QDomDocument>
|
||||
#include <QPrintDialog>
|
||||
|
||||
#ifdef EXPECT_DBUS_AVAILABLE
|
||||
#include <QDBusMessage>
|
||||
#endif
|
||||
#include <QtConcurrent>
|
||||
#include <QtConcurrent/QtConcurrent>
|
||||
#include <QtConcurrent/QtConcurrentRun>
|
||||
#include <QtConcurrentRun>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
QObject object;
|
||||
|
||||
QtConcurrent::BlockSizeManager blockSizeManager(42);
|
||||
|
||||
QHostAddress hostAddress;
|
||||
|
||||
QGLBuffer glBuffer;
|
||||
|
||||
QSqlQuery sqlQuery;
|
||||
|
||||
QSignalSpy signalSpy(&object, SIGNAL(destroyed()));
|
||||
|
||||
QWidget widget;
|
||||
|
||||
QDomDocument domDocument;
|
||||
|
||||
QPrintDialog printDialog;
|
||||
|
||||
#ifdef EXPECT_DBUS_AVAILABLE
|
||||
QDBusMessage dBusMessage;
|
||||
#endif
|
||||
QByteArray bytearray = "hello world";
|
||||
QtConcurrent::run(bytearray, &QByteArray::split, ',');
|
||||
|
||||
return 0;
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
project(test_modules)
|
||||
|
||||
set(qtbase_modules
|
||||
Core
|
||||
Concurrent
|
||||
Gui
|
||||
Widgets
|
||||
Network
|
||||
OpenGL
|
||||
Sql
|
||||
Test
|
||||
Xml
|
||||
PrintSupport
|
||||
)
|
||||
|
||||
if (UNIX AND NOT APPLE AND NOT QNXNTO)
|
||||
add_definitions(-DEXPECT_DBUS_AVAILABLE)
|
||||
list(APPEND qtbase_modules DBus)
|
||||
endif()
|
||||
|
||||
foreach(_module ${qtbase_modules})
|
||||
find_package(Qt5${_module} REQUIRED)
|
||||
|
||||
include_directories(
|
||||
${Qt5${_module}_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
add_definitions(
|
||||
${Qt5${_module}_DEFINITIONS}
|
||||
)
|
||||
endforeach()
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
|
||||
|
||||
add_executable(mainapp main.cpp)
|
||||
|
||||
foreach(_module ${qtbase_modules})
|
||||
target_link_libraries(mainapp
|
||||
${Qt5${_module}_LIBRARIES}
|
||||
)
|
||||
endforeach()
|
Loading…
Reference in New Issue
Block a user