diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 5dfb9dab1..c0268d005 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -27,3 +27,4 @@ message("QET_DIR: " ${QET_DIR}) add_subdirectory(qttest) add_subdirectory(catch) add_subdirectory(googletest) +add_subdirectory(googlemock) diff --git a/tests/googlemock/.clang-format b/tests/googlemock/.clang-format new file mode 100644 index 000000000..3f1da8525 --- /dev/null +++ b/tests/googlemock/.clang-format @@ -0,0 +1,67 @@ +--- +BasedOnStyle: LLVM +AlignAfterOpenBracket: AlwaysBreak +AlignConsecutiveMacros: 'true' +AlignConsecutiveAssignments: 'true' +AlignConsecutiveDeclarations: 'true' +AlignEscapedNewlines: Right +AlignOperands: 'true' +AlignTrailingComments: 'true' +AllowAllArgumentsOnNextLine: 'false' +AllowAllConstructorInitializersOnNextLine: 'true' +AllowAllParametersOfDeclarationOnNextLine: 'true' +AllowShortBlocksOnASingleLine: 'true' +AllowShortCaseLabelsOnASingleLine: 'true' +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: Always +AllowShortLambdasOnASingleLine: All +AllowShortLoopsOnASingleLine: 'true' +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: 'true' +AlwaysBreakTemplateDeclarations: 'Yes' +BinPackArguments: 'false' +BinPackParameters: 'false' +BreakAfterJavaFieldAnnotations: 'true' +BreakBeforeBinaryOperators: NonAssignment +BreakBeforeBraces: Allman +BreakBeforeTernaryOperators: 'false' +BreakConstructorInitializers: AfterColon +BreakInheritanceList: AfterColon +BreakStringLiterals: 'true' +ColumnLimit: '80' +CompactNamespaces: 'false' +ConstructorInitializerAllOnOneLineOrOnePerLine: 'true' +Cpp11BracedListStyle: 'true' +FixNamespaceComments: 'true' +IncludeBlocks: Regroup +IndentCaseLabels: 'false' +IndentPPDirectives: AfterHash +IndentWidth: '4' +JavaScriptWrapImports: 'true' +Language: Cpp +MaxEmptyLinesToKeep: '1' +NamespaceIndentation: All +PointerAlignment: Left +ReflowComments: 'true' +SortIncludes: 'true' +SortUsingDeclarations: 'true' +SpaceAfterCStyleCast: 'true' +SpaceAfterLogicalNot: 'true' +SpaceAfterTemplateKeyword: 'true' +SpaceBeforeAssignmentOperators: 'true' +SpaceBeforeCpp11BracedList: 'true' +SpaceBeforeCtorInitializerColon: 'true' +SpaceBeforeInheritanceColon: 'true' +SpaceBeforeParens: ControlStatements +SpaceBeforeRangeBasedForLoopColon: 'true' +SpaceInEmptyParentheses: 'false' +SpacesInAngles: 'false' +SpacesInCStyleCastParentheses: 'false' +SpacesInContainerLiterals: 'false' +SpacesInParentheses: 'false' +SpacesInSquareBrackets: 'false' +Standard: Cpp11 +TabWidth: '4' +UseTab: Always + +... diff --git a/tests/googlemock/.gitignore b/tests/googlemock/.gitignore new file mode 100644 index 000000000..fab7372d7 --- /dev/null +++ b/tests/googlemock/.gitignore @@ -0,0 +1,73 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + diff --git a/tests/googlemock/CMakeLists.txt b/tests/googlemock/CMakeLists.txt new file mode 100644 index 000000000..44b3c3aad --- /dev/null +++ b/tests/googlemock/CMakeLists.txt @@ -0,0 +1,75 @@ +# Copyright 2006 The QElectroTech Team +# This file is part of QElectroTech. +# +# QElectroTech is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# QElectroTech is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with QElectroTech. If not, see . + +cmake_minimum_required(VERSION 3.5) + +message("_____________________________________________________________________") + +project(G_unitmocktests LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) +SET(CMAKE_CXX_STANDARD 17) + +if(DEFINED ENV{QET_DIR}) + set(QET_DIR "../..") + message("QET_DIR is not set, assuming QET is ../..") +endif() + +message("PROJECT_NAME: " ${PROJECT_NAME}) +message("PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR}) +message("QET_DIR: " ${QET_DIR}) + +SET(CMAKE_CXX_STANDARD 17) + +find_package(Qt5Gui REQUIRED) +find_package(Qt5Xml REQUIRED) +find_package(Qt5Svg REQUIRED) +find_package(Qt5Sql REQUIRED) +find_package(Qt5Concurrent REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(KF5WidgetsAddons) +find_package(KF5CoreAddons) + +Include(FetchContent) + +FetchContent_Declare( + GTest + GIT_REPOSITORY https://github.com/google/googletest.git + GIT_TAG release-1.10.0) + +FetchContent_MakeAvailable(GTest) + +add_executable( + ${PROJECT_NAME} + tst_My_test.cpp + main.cpp) + +target_link_libraries( + ${PROJECT_NAME} + PUBLIC + gmock gmock_main + PRIVATE + KF5::WidgetsAddons + KF5::CoreAddons + Qt5::Gui + Qt5::Xml + Qt5::Svg + Qt5::Sql + Qt5::Widgets + Qt5::Concurrent) + diff --git a/tests/googlemock/main.cpp b/tests/googlemock/main.cpp new file mode 100644 index 000000000..b378aa5fa --- /dev/null +++ b/tests/googlemock/main.cpp @@ -0,0 +1,15 @@ +#include +#include + +int main(int argc, char** argv) +{ + QGuiApplication app(argc, argv); + + // disable the whole debug output (we want only the output from gtest) + // Debug::instance()->setDebugLevelLogFile(Debug::DebugLevel_t::Nothing); + // Debug::instance()->setDebugLevelStderr(Debug::DebugLevel_t::Nothing); + + // init gtest and run all tests + ::testing::InitGoogleMock(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/tests/googlemock/tst_My_test.cpp b/tests/googlemock/tst_My_test.cpp new file mode 100644 index 000000000..a69cafe0f --- /dev/null +++ b/tests/googlemock/tst_My_test.cpp @@ -0,0 +1,5 @@ +#include "../../sources/borderproperties.h" + +#include + +TEST(googlemocktest, sample_mock) { EXPECT_EQ(1, 1); }