Add first unit test
+proof of concept of Catch2 builds working in our repopull/14/head
parent
23a8c9081a
commit
7eb346a54d
|
|
@ -155,7 +155,7 @@ endif()
|
||||||
# Import definitions of all libraries
|
# Import definitions of all libraries
|
||||||
#
|
#
|
||||||
|
|
||||||
# add_subdirectory(lib)
|
add_subdirectory(lib)
|
||||||
|
|
||||||
#
|
#
|
||||||
# MMU firmware
|
# MMU firmware
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
if(NOT CMAKE_CROSSCOMPILING)
|
||||||
|
add_subdirectory(Catch2)
|
||||||
|
endif()
|
||||||
|
|
@ -1 +1 @@
|
||||||
#
|
add_subdirectory(unit)
|
||||||
|
|
|
||||||
|
|
@ -1 +1,28 @@
|
||||||
#
|
# first, let's create a symbolic target for all tests
|
||||||
|
add_custom_target(tests)
|
||||||
|
|
||||||
|
# this had a reason on the Buddy FW, but on the AVR we cannot get close to having 16bit ints and
|
||||||
|
# pointers so the unit tests may be compiled 64bit afterall
|
||||||
|
set(CMAKE_C_FLAGS -m32)
|
||||||
|
set(CMAKE_CXX_FLAGS -m32)
|
||||||
|
|
||||||
|
# include catch_discover_tests function from Catch2
|
||||||
|
include(${Catch2_SOURCE_DIR}/contrib/Catch.cmake)
|
||||||
|
|
||||||
|
add_library(catch_main ${CMAKE_CURRENT_SOURCE_DIR}/test_main.cpp)
|
||||||
|
target_link_libraries(catch_main Catch2::Catch2)
|
||||||
|
|
||||||
|
# registers given target as a catch test
|
||||||
|
function(add_catch_test target)
|
||||||
|
target_link_libraries(${target} catch_main Catch2::Catch2)
|
||||||
|
catch_discover_tests(${target})
|
||||||
|
add_dependencies(tests ${target})
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
add_executable(system_tests ${CMAKE_CURRENT_SOURCE_DIR}/system_test.cpp)
|
||||||
|
add_catch_test(system_tests)
|
||||||
|
|
||||||
|
# now, include all the unit tests; they should add themselves using the add_catch_test function
|
||||||
|
add_subdirectory(hal)
|
||||||
|
add_subdirectory(logic)
|
||||||
|
add_subdirectory(modules)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
#
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
#
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
add_subdirectory(protocol)
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
# define the test executable
|
||||||
|
add_executable(protocol_tests test_protocol.cpp)
|
||||||
|
|
||||||
|
# define required search paths
|
||||||
|
target_include_directories(protocol_tests PUBLIC ${CMAKE_SOURCE_DIR}/src/modules)
|
||||||
|
|
||||||
|
# tell build system about the test case
|
||||||
|
add_catch_test(protocol_tests)
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
#include "catch2/catch.hpp"
|
||||||
|
#include "protocol.h"
|
||||||
|
|
||||||
|
using Catch::Matchers::Equals;
|
||||||
|
|
||||||
|
TEST_CASE("protocol::1", "[protocol]") {
|
||||||
|
CHECK(true);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
#include "catch2/catch.hpp"
|
||||||
|
|
||||||
|
TEST_CASE("type tests", "[system]") {
|
||||||
|
REQUIRE(sizeof(uint64_t) == 8);
|
||||||
|
REQUIRE(sizeof(char *) == 4);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define CATCH_CONFIG_MAIN
|
||||||
|
//#define CATCH_CONFIG_ENABLE_BENCHMARKING
|
||||||
|
#include "catch2/catch.hpp"
|
||||||
Loading…
Reference in New Issue