From a2b85eba83e9af615db30f90051d9cb76df7dfe9 Mon Sep 17 00:00:00 2001 From: Michael Mandl Date: Sat, 24 Nov 2018 19:55:16 +0100 Subject: [PATCH] Added Catch2 tests, moved Age-class to own library --- CMakeLists.txt | 1 + conanfile.txt | 1 + source/{ => Age}/Age.cpp | 0 source/{ => Age}/Age.h | 0 source/Age/CMakeLists.txt | 23 +++++++++++++++++++++++ source/CMakeLists.txt | 3 ++- source/MetaData/CMakeLists.txt | 1 + source/MetaData/MetaDataModel.h | 2 +- source/ResultWidget/CMakeLists.txt | 1 + source/ResultWidget/PRMap.h | 2 +- source/ResultWidget/ResultModel.h | 2 +- test/Age.cpp | 17 +++++++++++++++++ test/CMakeLists.txt | 21 +++++++++++++++++++++ test/dummy.cpp | 7 +++++++ test/main.cpp | 2 ++ 15 files changed, 79 insertions(+), 4 deletions(-) rename source/{ => Age}/Age.cpp (100%) rename source/{ => Age}/Age.h (100%) create mode 100644 source/Age/CMakeLists.txt create mode 100644 test/Age.cpp create mode 100644 test/CMakeLists.txt create mode 100644 test/dummy.cpp create mode 100644 test/main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index d819e35..4603e7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,3 +6,4 @@ include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) conan_basic_setup() add_subdirectory(source) +add_subdirectory(test) diff --git a/conanfile.txt b/conanfile.txt index dd246ef..7591bc8 100644 --- a/conanfile.txt +++ b/conanfile.txt @@ -1,5 +1,6 @@ [requires] protobuf/3.6.1@bincrafters/stable +catch2/2.4.2@bincrafters/stable [generators] cmake diff --git a/source/Age.cpp b/source/Age/Age.cpp similarity index 100% rename from source/Age.cpp rename to source/Age/Age.cpp diff --git a/source/Age.h b/source/Age/Age.h similarity index 100% rename from source/Age.h rename to source/Age/Age.h diff --git a/source/Age/CMakeLists.txt b/source/Age/CMakeLists.txt new file mode 100644 index 0000000..820be2c --- /dev/null +++ b/source/Age/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.6) + +project(Age LANGUAGES CXX) + +find_package(Qt5Core REQUIRED) + +add_library(${PROJECT_NAME} + Age.cpp +) + +set_target_properties(${PROJECT_NAME} + PROPERTIES CXX_STANDARD 14 +) + +target_include_directories(${PROJECT_NAME} + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} +) + +target_link_libraries(${PROJECT_NAME} + PUBLIC + Qt5::Core +) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index ab95560..72bf70e 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -37,7 +37,6 @@ add_executable(${PROJECT_NAME} WIN32 LogoTest.cpp DataModel.cpp mainwindow.cpp - Age.cpp ${LOGO_TEST_UI} ${LOGO_TEST_QRC} ${DataModel_PROTO_SRCS} @@ -57,6 +56,7 @@ target_include_directories(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME} PRIVATE + Age CheckableItem CheckableTest CheckableTestModel @@ -73,6 +73,7 @@ target_link_libraries(${PROJECT_NAME} ${Protobuf_LIBRARIES} ) +add_subdirectory(Age) add_subdirectory(CheckableItem) add_subdirectory(CheckableTest) add_subdirectory(CheckableTestModel) diff --git a/source/MetaData/CMakeLists.txt b/source/MetaData/CMakeLists.txt index b61703a..e00d8de 100644 --- a/source/MetaData/CMakeLists.txt +++ b/source/MetaData/CMakeLists.txt @@ -41,6 +41,7 @@ target_include_directories(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME} PRIVATE + Age Qt5::Widgets ${Protobuf_LIBRARIES} ) diff --git a/source/MetaData/MetaDataModel.h b/source/MetaData/MetaDataModel.h index d2ebaa7..0c8bbeb 100644 --- a/source/MetaData/MetaDataModel.h +++ b/source/MetaData/MetaDataModel.h @@ -1,6 +1,6 @@ #pragma once -#include "../Age.h" +#include "Age.h" #include "MetaDataModel.pb.h" diff --git a/source/ResultWidget/CMakeLists.txt b/source/ResultWidget/CMakeLists.txt index b85d0c1..bfdd22c 100644 --- a/source/ResultWidget/CMakeLists.txt +++ b/source/ResultWidget/CMakeLists.txt @@ -30,5 +30,6 @@ target_include_directories(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME} PRIVATE + Age Qt5::Widgets ) diff --git a/source/ResultWidget/PRMap.h b/source/ResultWidget/PRMap.h index 5ad5bcf..6d9104c 100644 --- a/source/ResultWidget/PRMap.h +++ b/source/ResultWidget/PRMap.h @@ -1,6 +1,6 @@ #pragma once -#include "../Age.h" +#include "Age.h" #include class PRMap diff --git a/source/ResultWidget/ResultModel.h b/source/ResultWidget/ResultModel.h index 1c290f4..ae6dd78 100644 --- a/source/ResultWidget/ResultModel.h +++ b/source/ResultWidget/ResultModel.h @@ -1,6 +1,6 @@ #pragma once -#include "../Age.h" +#include "Age.h" #include class TestResult diff --git a/test/Age.cpp b/test/Age.cpp new file mode 100644 index 0000000..46948b8 --- /dev/null +++ b/test/Age.cpp @@ -0,0 +1,17 @@ +#include + +#include "Age.h" + +TEST_CASE("default initialization") +{ + Age age; + REQUIRE(age.years() == 0); + REQUIRE(age.months() == 0); + REQUIRE(age.toString() == "0;0"); + + Age age2; + REQUIRE(!(age < age)); + REQUIRE(!(age < age2)); +} + + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..5984746 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.5) +project(run-tests) + +find_package(Catch2 REQUIRED) + +add_executable(${PROJECT_NAME} + main.cpp + dummy.cpp + Age.cpp +) + +target_link_libraries(${PROJECT_NAME} + PRIVATE + Catch2::Catch2 + Age +) + +include(CTest) +include(Catch) +catch_discover_tests(${PROJECT_NAME}) + diff --git a/test/dummy.cpp b/test/dummy.cpp new file mode 100644 index 0000000..0eb8941 --- /dev/null +++ b/test/dummy.cpp @@ -0,0 +1,7 @@ +#include + +TEST_CASE("Dummy") +{ + REQUIRE(true == true); +} + diff --git a/test/main.cpp b/test/main.cpp new file mode 100644 index 0000000..4ed06df --- /dev/null +++ b/test/main.cpp @@ -0,0 +1,2 @@ +#define CATCH_CONFIG_MAIN +#include