🎉 init(cmake): init modern cmake template
This commit is contained in:
20
tests/CMakeLists.txt
Normal file
20
tests/CMakeLists.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
# Testing library
|
||||
FetchContent_Declare(
|
||||
catch
|
||||
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
|
||||
GIT_TAG v2.13.6)
|
||||
FetchContent_MakeAvailable(catch)
|
||||
# Adds Catch2::Catch2
|
||||
|
||||
# Tests need to be added as executables first
|
||||
add_executable(testlib testlib.cpp)
|
||||
|
||||
# I'm using C++17 in the test
|
||||
target_compile_features(testlib PRIVATE cxx_std_17)
|
||||
|
||||
# Should be linked to the main library, as well as the Catch2 testing library
|
||||
target_link_libraries(testlib PRIVATE modern_library Catch2::Catch2)
|
||||
|
||||
# If you register a test, then ctest and make test will run it.
|
||||
# You can also run examples and check the output, as well.
|
||||
add_test(NAME testlibtest COMMAND testlib) # Command can be a target
|
11
tests/testlib.cpp
Normal file
11
tests/testlib.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include <catch2/catch.hpp>
|
||||
#include <modern/lib.hpp>
|
||||
|
||||
TEST_CASE( "Quick check", "[main]" ) {
|
||||
std::vector<double> values {1, 2., 3.};
|
||||
auto [mean, moment] = accumulate_vector(values);
|
||||
|
||||
REQUIRE( mean == 2.0 );
|
||||
REQUIRE( moment == Approx(4.666666) );
|
||||
}
|
Reference in New Issue
Block a user