From 5191b4c7034d2e3e41c374e90d322d9c25293612 Mon Sep 17 00:00:00 2001 From: Paul T Date: Wed, 9 Oct 2019 08:50:27 -0400 Subject: [PATCH] Added GTest (googletest) Example (#84) * Added GTest (googletest) Example The examples tests the Fibonacci library similar to the doctest example. * Update examples/gtest/CMakeLists.txt Co-Authored-By: Lars Melchior --- examples/gtest/CMakeLists.txt | 45 +++++++++++++++++++++++++++++++++++ examples/gtest/main.cpp | 13 ++++++++++ 2 files changed, 58 insertions(+) create mode 100644 examples/gtest/CMakeLists.txt create mode 100644 examples/gtest/main.cpp diff --git a/examples/gtest/CMakeLists.txt b/examples/gtest/CMakeLists.txt new file mode 100644 index 0000000..382c83d --- /dev/null +++ b/examples/gtest/CMakeLists.txt @@ -0,0 +1,45 @@ +cmake_minimum_required(VERSION 3.14 FATAL_ERROR) + +project(CPMExampleGtest) + +# ---- Options ---- + +option(ENABLE_TEST_COVERAGE "Enable test coverage" OFF) + +# ---- Dependencies ---- + +include(../../cmake/CPM.cmake) + +CPMAddPackage( + NAME fibonacci + GIT_REPOSITORY https://github.com/TheLartians/Fibonacci.git + VERSION 1.0 +) + +CPMAddPackage( + NAME googletest + GITHUB_REPOSITORY google/googletest + GIT_TAG release-1.8.1 + VERSION 1.8.1 + OPTIONS + "INSTALL_GTEST OFF" + "gtest_force_shared_crt ON" +) + +# ---- Create binary ---- + +add_executable(CPMExampleGtest main.cpp) +target_link_libraries(CPMExampleGtest fibonacci gtest gtest_main gmock) +set_target_properties(CPMExampleGtest PROPERTIES CXX_STANDARD 17) + +# ---- Enable testing ---- + +enable_testing() +add_test(CPMExampleGtest CPMExampleGtest) + +# ---- Add code coverage ---- + +if (${ENABLE_TEST_COVERAGE}) + set_target_properties(CPMExampleGtest PROPERTIES CXX_STANDARD 17 COMPILE_FLAGS "-O0 -g -fprofile-arcs -ftest-coverage --coverage") + target_link_options(CPMExampleGtest PUBLIC "--coverage") +endif() diff --git a/examples/gtest/main.cpp b/examples/gtest/main.cpp new file mode 100644 index 0000000..c818345 --- /dev/null +++ b/examples/gtest/main.cpp @@ -0,0 +1,13 @@ +#include +#include + +TEST(FibonacciTests, BasicChecks) +{ + ASSERT_TRUE(fibonnacci(0) == 0); + ASSERT_TRUE(fibonnacci(1) == 1); + ASSERT_TRUE(fibonnacci(2) == 1); + ASSERT_TRUE(fibonnacci(3) == 2); + ASSERT_TRUE(fibonnacci(4) == 3); + ASSERT_TRUE(fibonnacci(5) == 5); + ASSERT_TRUE(fibonnacci(13) == 233); +}