From 5641465a3a5a4887f232d6516d1648e2232084ae Mon Sep 17 00:00:00 2001 From: Lukas W Date: Mon, 12 Jan 2015 23:58:34 +0100 Subject: [PATCH 1/2] Add a testing framework --- CMakeLists.txt | 1 + src/CMakeLists.txt | 6 +++++- src/core/CMakeLists.txt | 1 - tests/CMakeLists.txt | 15 +++++++++++++++ tests/QTestSuite.cpp | 19 +++++++++++++++++++ tests/QTestSuite.h | 21 +++++++++++++++++++++ tests/main.cpp | 13 +++++++++++++ 7 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 tests/CMakeLists.txt create mode 100644 tests/QTestSuite.cpp create mode 100644 tests/QTestSuite.h create mode 100644 tests/main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 82c906b54..4cb740777 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -434,6 +434,7 @@ ENDIF(WIN32) # make sub-directories ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(plugins) +ADD_SUBDIRECTORY(tests) ADD_SUBDIRECTORY(data) ADD_SUBDIRECTORY(doc) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 596f3b270..93b9f8bdd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -64,13 +64,17 @@ ENDIF() # Enable C++11 ADD_DEFINITIONS("-std=c++0x") -ADD_EXECUTABLE(lmms +ADD_LIBRARY(lmmslib STATIC ${LMMS_SRCS} ${LMMS_INCLUDES} ${LMMS_UI_OUT} ${LMMS_ER_H} +) +ADD_EXECUTABLE(lmms + core/main.cpp "${WINRC}" ) +TARGET_LINK_LIBRARIES(lmms lmmslib) SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LMMS_ER_H} ${LMMS_UI_OUT} lmmsconfig.h lmms.1.gz") diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index c59cd6680..ae23ae6d9 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -30,7 +30,6 @@ set(LMMS_SRCS core/LadspaControl.cpp core/LadspaManager.cpp core/LfoController.cpp - core/main.cpp core/MemoryHelper.cpp core/MemoryManager.cpp core/MeterModel.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 000000000..1c29996e2 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,15 @@ +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}") +INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include") + +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11") + +SET(CMAKE_AUTOMOC ON) + +ADD_EXECUTABLE(tests + EXCLUDE_FROM_ALL + main.cpp + QTestSuite +) +TARGET_LINK_LIBRARIES(tests ${QT_LIBRARIES} ${QT_QTTEST_LIBRARY}) +TARGET_LINK_LIBRARIES(tests lmmslib) diff --git a/tests/QTestSuite.cpp b/tests/QTestSuite.cpp new file mode 100644 index 000000000..a5a49fd20 --- /dev/null +++ b/tests/QTestSuite.cpp @@ -0,0 +1,19 @@ +#include "QTestSuite.h" + +QList QTestSuite::m_suites; + +QTestSuite::QTestSuite(QObject *parent) : QObject(parent) +{ + m_suites << this; +} + +QTestSuite::~QTestSuite() +{ + m_suites.removeAll(this); +} + +QList QTestSuite::suites() +{ + return m_suites; +} + diff --git a/tests/QTestSuite.h b/tests/QTestSuite.h new file mode 100644 index 000000000..05ae1fb66 --- /dev/null +++ b/tests/QTestSuite.h @@ -0,0 +1,21 @@ +#ifndef QTESTSUITE_H +#define QTESTSUITE_H + +#include +#include +#include + +class QTestSuite : public QObject +{ + Q_OBJECT +public: + explicit QTestSuite(QObject *parent = 0); + ~QTestSuite(); + + static QList suites(); + +private: + static QList m_suites; +}; + +#endif // QTESTSUITE_H diff --git a/tests/main.cpp b/tests/main.cpp new file mode 100644 index 000000000..1f3e95355 --- /dev/null +++ b/tests/main.cpp @@ -0,0 +1,13 @@ +#include "QTestSuite.h" + +#include + +#include + +int main(int argc, char* argv[]) +{ + for (QTestSuite*& suite : QTestSuite::suites()) + { + QTest::qExec(suite, argc, argv); + } +} From cb10b5aabefa58f56714da40a31dffa896772e43 Mon Sep 17 00:00:00 2001 From: Lukas W Date: Tue, 13 Jan 2015 01:13:14 +0100 Subject: [PATCH 2/2] Try fixing windows build --- src/CMakeLists.txt | 12 ++++++------ tests/CMakeLists.txt | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 93b9f8bdd..308726e95 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -64,17 +64,17 @@ ENDIF() # Enable C++11 ADD_DEFINITIONS("-std=c++0x") -ADD_LIBRARY(lmmslib STATIC +ADD_EXECUTABLE(lmms + core/main.cpp ${LMMS_SRCS} ${LMMS_INCLUDES} ${LMMS_UI_OUT} ${LMMS_ER_H} -) -ADD_EXECUTABLE(lmms - core/main.cpp "${WINRC}" ) -TARGET_LINK_LIBRARIES(lmms lmmslib) +SET_TARGET_PROPERTIES(lmms PROPERTIES + ENABLE_EXPORTS ON +) SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LMMS_ER_H} ${LMMS_UI_OUT} lmmsconfig.h lmms.1.gz") @@ -134,7 +134,7 @@ ENDFOREACH(_item ${qm_targets}) IF(LMMS_BUILD_WIN32) SET_TARGET_PROPERTIES(lmms PROPERTIES LINK_FLAGS "${LINK_FLAGS} -mwindows" - ENABLE_EXPORTS ON) + ) ADD_CUSTOM_COMMAND(TARGET lmms POST_BUILD COMMAND "${STRIP}" "$") INSTALL(TARGETS lmms RUNTIME DESTINATION "${BIN_DIR}") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 1c29996e2..377063751 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -12,4 +12,4 @@ ADD_EXECUTABLE(tests QTestSuite ) TARGET_LINK_LIBRARIES(tests ${QT_LIBRARIES} ${QT_QTTEST_LIBRARY}) -TARGET_LINK_LIBRARIES(tests lmmslib) +TARGET_LINK_LIBRARIES(tests lmms)