From 8a639c2dc34cbfa6e07616a7fde06724a6c09cad Mon Sep 17 00:00:00 2001 From: pajlada Date: Sat, 22 Feb 2025 13:18:15 +0100 Subject: [PATCH] chore(tests): try to generate coverage better (#5972) --- CMakeLists.txt | 10 +++++ lib/twitch-eventsub-ws/tests/src/string.cpp | 49 +++++++++++++++++++++ src/CMakeLists.txt | 5 +-- 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a31caad5..8bd0c810 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,6 +47,16 @@ project(chatterino HOMEPAGE_URL "https://chatterino.com/" ) +if(CHATTERINO_GENERATE_COVERAGE) + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-fprofile-instr-generate -fcoverage-mapping) + add_link_options(-fprofile-instr-generate -fcoverage-mapping) + elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU") + add_compile_options(-coverage) + add_link_options(-coverage) + endif() +endif() + if(CHATTERINO_LTO) include(CheckIPOSupported) check_ipo_supported(RESULT CHATTERINO_ENABLE_LTO OUTPUT IPO_ERROR) diff --git a/lib/twitch-eventsub-ws/tests/src/string.cpp b/lib/twitch-eventsub-ws/tests/src/string.cpp index 1f7292f0..caac0535 100644 --- a/lib/twitch-eventsub-ws/tests/src/string.cpp +++ b/lib/twitch-eventsub-ws/tests/src/string.cpp @@ -425,6 +425,55 @@ TEST(String, MoveAssign) ASSERT_TRUE(u.isEmpty()); ASSERT_EQ(u.view(), ""); } + { + String u(REALLY_LONG); + ASSERT_FALSE(u.isQt()); + ASSERT_TRUE(u.isAlloc()); + ASSERT_FALSE(u.isEmpty()); + ASSERT_EQ(u.qt(), REALLY_LONG); + ASSERT_TRUE(u.isQt()); + ASSERT_FALSE(u.isAlloc()); + ASSERT_FALSE(u.isEmpty()); + String v(REALLY_LONG); + ASSERT_FALSE(v.isQt()); + ASSERT_TRUE(v.isAlloc()); + ASSERT_FALSE(v.isEmpty()); + v = std::move(u); + ASSERT_TRUE(v.isQt()); + ASSERT_FALSE(v.isAlloc()); + ASSERT_FALSE(v.isEmpty()); + ASSERT_EQ(v.view(), REALLY_LONG); + ASSERT_FALSE(u.isQt()); + ASSERT_FALSE(u.isAlloc()); + ASSERT_TRUE(u.isEmpty()); + ASSERT_EQ(u.view(), ""); + } + { + String u(REALLY_LONG); + ASSERT_FALSE(u.isQt()); + ASSERT_TRUE(u.isAlloc()); + ASSERT_FALSE(u.isEmpty()); + ASSERT_EQ(u.qt(), REALLY_LONG); + ASSERT_TRUE(u.isQt()); + ASSERT_FALSE(u.isAlloc()); + ASSERT_FALSE(u.isEmpty()); + String v(REALLY_LONG); + ASSERT_FALSE(v.isQt()); + ASSERT_TRUE(v.isAlloc()); + ASSERT_FALSE(v.isEmpty()); + ASSERT_EQ(v.qt(), REALLY_LONG); + ASSERT_TRUE(v.isQt()); + ASSERT_FALSE(v.isAlloc()); + v = std::move(u); + ASSERT_TRUE(v.isQt()); + ASSERT_FALSE(v.isAlloc()); + ASSERT_FALSE(v.isEmpty()); + ASSERT_EQ(v.view(), REALLY_LONG); + ASSERT_FALSE(u.isQt()); + ASSERT_FALSE(u.isAlloc()); + ASSERT_TRUE(u.isEmpty()); + ASSERT_EQ(u.view(), ""); + } } TEST(String, QtLifetime) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4c09fa60..952f62f7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -781,10 +781,7 @@ endif() if (CHATTERINO_GENERATE_COVERAGE) include(CodeCoverage) - if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") - target_compile_options(${LIBRARY_PROJECT} PRIVATE -coverage) - target_link_options(${LIBRARY_PROJECT} PRIVATE -coverage) - else() + if(NOT CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") append_coverage_compiler_flags_to_target(${LIBRARY_PROJECT}) endif() message(STATUS "project source dir: ${PROJECT_SOURCE_DIR}/src")