From d5c541bb117eeaa58e9bf7823d0823d8c550f68d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Smoczy=C5=84ski?= Date: Mon, 12 Jul 2021 13:53:21 +0200 Subject: [PATCH] [EGD-7141] Fix GUI googletest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix invalidly added GUI gtest. Test dummies moved to individual files to deal with a bug in cmake test discovery for gtest. Signed-off-by: Marcin SmoczyƄski --- module-gui/test/test-google/CMakeLists.txt | 51 ++++++------------- module-gui/test/test-google/TestBoxLayout.hpp | 28 ++++++++++ module-gui/test/test-google/TestListView.hpp | 43 ++++++++++++++++ .../test/test-google/test-gui-boxlayout.cpp | 23 ++------- .../test/test-google/test-gui-listview.cpp | 41 ++------------- test/CMakeLists.txt | 10 +++- 6 files changed, 103 insertions(+), 93 deletions(-) create mode 100644 module-gui/test/test-google/TestBoxLayout.hpp create mode 100644 module-gui/test/test-google/TestListView.hpp diff --git a/module-gui/test/test-google/CMakeLists.txt b/module-gui/test/test-google/CMakeLists.txt index 86619fcfd8fe6a43bee3146d2673150b57e7aa5e..25aa104da58a0e26a3b4e5b95047c7d5ff9c02e9 100644 --- a/module-gui/test/test-google/CMakeLists.txt +++ b/module-gui/test/test-google/CMakeLists.txt @@ -1,36 +1,15 @@ -project(googletest-gui) - -include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR}) -include_directories(${gmock_SOURCE_DIR}/include ${gmock_SOURCE_DIR}) - -add_executable(${PROJECT_NAME} EXCLUDE_FROM_ALL - test-gui-listview.cpp - test-gui-boxlayout.cpp - test-gui-gridlayout.cpp - test-gui-depthfirst-itemtree.cpp - test-gui-visitor-call.cpp - test-gui-dom-dump.cpp - ../mock/TestListViewProvider.cpp - ) - -target_include_directories(${PROJECT_NAME} - PUBLIC - "${CMAKE_CURRENT_LIST_DIR}" - "${CMAKE_SOURCE_DIR}/module-utils" - "${CMAKE_SOURCE_DIR}/module-gui/test/" - ) - -target_link_directories(${PROJECT_NAME} PUBLIC "${PROJECT_LIB_DIRECTORY}") - -target_link_libraries(${PROJECT_NAME} PUBLIC module-utils module-gui) - -target_link_libraries(${PROJECT_NAME} PUBLIC gtest gtest_main) -target_link_libraries(${PROJECT_NAME} PUBLIC gmock gmock_main) - -add_test(NAME ${PROJECT_NAME} - COMMAND ${PROJECT_NAME} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - ) - -add_dependencies(check ${PROJECT_NAME}) -add_dependencies(unittests ${PROJECT_NAME}) +add_gtest_executable( + NAME + gui + SRCS + test-gui-listview.cpp + test-gui-boxlayout.cpp + test-gui-gridlayout.cpp + test-gui-depthfirst-itemtree.cpp + test-gui-visitor-call.cpp + test-gui-dom-dump.cpp + ../mock/TestListViewProvider.cpp + LIBS + module-utils + module-gui +) diff --git a/module-gui/test/test-google/TestBoxLayout.hpp b/module-gui/test/test-google/TestBoxLayout.hpp new file mode 100644 index 0000000000000000000000000000000000000000..49455b3be2f1508d39b6950ea04b93a900117bd6 --- /dev/null +++ b/module-gui/test/test-google/TestBoxLayout.hpp @@ -0,0 +1,28 @@ +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. +// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md + +#pragma once + +#include + +#include + +class TestBoxLayout : public gui::BoxLayout +{ + + public: + friend class BoxLayoutTesting; + + FRIEND_TEST(BoxLayoutTesting, Constructor_Destructor_Test); + FRIEND_TEST(BoxLayoutTesting, Fill_Box_Test); + FRIEND_TEST(BoxLayoutTesting, Navigate_Test); + FRIEND_TEST(BoxLayoutTesting, Border_Callback_Test); + FRIEND_TEST(BoxLayoutTesting, Box_Alignment_Test); + FRIEND_TEST(BoxLayoutTesting, Box_Widget_Min_Max_Resize_Test); + FRIEND_TEST(BoxLayoutTesting, Box_Widgets_Alignment_Test); + FRIEND_TEST(BoxLayoutTesting, Box_Widgets_Alignment_Magrin_Test); + FRIEND_TEST(BoxLayoutTesting, Box_Margins_Test); + + TestBoxLayout(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h) : BoxLayout(parent, x, y, w, h){}; + ~TestBoxLayout() = default; +}; diff --git a/module-gui/test/test-google/TestListView.hpp b/module-gui/test/test-google/TestListView.hpp new file mode 100644 index 0000000000000000000000000000000000000000..8c934ae11d9ab224d4008f41e6311e26639c4950 --- /dev/null +++ b/module-gui/test/test-google/TestListView.hpp @@ -0,0 +1,43 @@ +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. +// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md + +#pragma once + +#include + +#include + +class TestListView : public gui::ListView +{ + + public: + friend class ListViewTesting; + FRIEND_TEST(ListViewTesting, Constructor_Destructor_Test); + FRIEND_TEST(ListViewTesting, Fill_List_And_Item_Magin_Test); + FRIEND_TEST(ListViewTesting, Not_Equal_Items_Test); + FRIEND_TEST(ListViewTesting, List_Clear_Test); + FRIEND_TEST(ListViewTesting, Scroll_Test); + FRIEND_TEST(ListViewTesting, Navigate_Test); + FRIEND_TEST(ListViewTesting, Continuous_Type_Test); + FRIEND_TEST(ListViewTesting, Data_Deletion_Test); + FRIEND_TEST(ListViewTesting, Rebuild_Type_Test); + + bool listBorderReached = false; + + bool requestNextPage() override + { + listBorderReached = true; + return ListView::requestNextPage(); + } + + bool requestPreviousPage() override + { + listBorderReached = true; + return ListView::requestPreviousPage(); + } + + TestListView( + Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h, std::shared_ptr prov) + : ListView(parent, x, y, w, h, prov){}; + ~TestListView() = default; +}; diff --git a/module-gui/test/test-google/test-gui-boxlayout.cpp b/module-gui/test/test-google/test-gui-boxlayout.cpp index 93e856a5427c99ad599c5ceccbfc49b916aedc51..5c7a648fffe3b9bba0afa8c221e99d72c673fb16 100644 --- a/module-gui/test/test-google/test-gui-boxlayout.cpp +++ b/module-gui/test/test-google/test-gui-boxlayout.cpp @@ -2,8 +2,10 @@ // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "gtest/gtest.h" + +#include "TestBoxLayout.hpp" + #include -#include #include #include @@ -33,25 +35,6 @@ class TestItem : public gui::Rect ~TestItem() = default; }; -class TestBoxLayout : public gui::BoxLayout -{ - - public: - friend class BoxLayoutTesting; - FRIEND_TEST(BoxLayoutTesting, Constructor_Destructor_Test); - FRIEND_TEST(BoxLayoutTesting, Fill_Box_Test); - FRIEND_TEST(BoxLayoutTesting, Navigate_Test); - FRIEND_TEST(BoxLayoutTesting, Border_Callback_Test); - FRIEND_TEST(BoxLayoutTesting, Box_Alignment_Test); - FRIEND_TEST(BoxLayoutTesting, Box_Widget_Min_Max_Resize_Test); - FRIEND_TEST(BoxLayoutTesting, Box_Widgets_Alignment_Test); - FRIEND_TEST(BoxLayoutTesting, Box_Widgets_Alignment_Magrin_Test); - FRIEND_TEST(BoxLayoutTesting, Box_Margins_Test); - - TestBoxLayout(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h) : BoxLayout(parent, x, y, w, h){}; - ~TestBoxLayout() = default; -}; - class BoxLayoutTesting : public ::testing::Test { protected: diff --git a/module-gui/test/test-google/test-gui-listview.cpp b/module-gui/test/test-google/test-gui-listview.cpp index 42a6938cc4741a7930040b07451aa870d7ed3050..d59f9f34aa734b7e7a34efb834dae4456fca90ef 100644 --- a/module-gui/test/test-google/test-gui-listview.cpp +++ b/module-gui/test/test-google/test-gui-listview.cpp @@ -2,45 +2,14 @@ // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "gtest/gtest.h" -#include -#include -#include -#include - -class TestListView : public gui::ListView -{ - public: - friend class ListViewTesting; - FRIEND_TEST(ListViewTesting, Constructor_Destructor_Test); - FRIEND_TEST(ListViewTesting, Fill_List_And_Item_Magin_Test); - FRIEND_TEST(ListViewTesting, Not_Equal_Items_Test); - FRIEND_TEST(ListViewTesting, List_Clear_Test); - FRIEND_TEST(ListViewTesting, Scroll_Test); - FRIEND_TEST(ListViewTesting, Navigate_Test); - FRIEND_TEST(ListViewTesting, Continuous_Type_Test); - FRIEND_TEST(ListViewTesting, Data_Deletion_Test); - FRIEND_TEST(ListViewTesting, Rebuild_Type_Test); - - bool listBorderReached = false; - - bool requestNextPage() override - { - listBorderReached = true; - return ListView::requestNextPage(); - } +#include "TestListView.hpp" - bool requestPreviousPage() override - { - listBorderReached = true; - return ListView::requestPreviousPage(); - } +#include +#include +#include - TestListView( - Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h, std::shared_ptr prov) - : ListView(parent, x, y, w, h, prov){}; - ~TestListView() = default; -}; +#include class ListViewTesting : public ::testing::Test { diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 33ad77892da8bb1b10b3f894cd02938aa1334c5e..218546b628d45de7ba7b8d48e836883425aa527d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -74,11 +74,19 @@ function(add_gtest_executable) add_dependencies(unittests ${_TESTNAME}) add_dependencies(check ${_TESTNAME}) + set(_TEST_LABELS "") if(_TEST_ENTITY) add_dependencies(unittests-${_TEST_ENTITY} ${_TESTNAME}) + list(APPEND _TEST_LABELS ${_TEST_ENTITY}) endif() - gtest_add_tests(${_TESTNAME} "" AUTO) + gtest_add_tests( + TARGET ${_TESTNAME} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + TEST_LIST _TEST_LIST + ) + + set_tests_properties(${_TEST_LIST} PROPERTIES LABELS ${_TEST_ENTITY}) endfunction() function(add_catch2_executable)