Umbrella project for an GenericWidgets client using the GenericCore library (Using submodules). With a GoogleTest project testing GenericCore::toString() method.

This commit is contained in:
2025-10-02 20:28:38 +02:00
parent d6f8ca89a0
commit 588414be83
8 changed files with 169 additions and 0 deletions

10
.clang-format Normal file
View File

@ -0,0 +1,10 @@
BasedOnStyle: Chromium
ColumnLimit: 100
AllowShortLoopsOnASingleLine: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
BreakConstructorInitializersBeforeComma: true
AlignConsecutiveAssignments: true
AllowShortFunctionsOnASingleLine: true
BraceWrapping:
AfterControlStatement: Always
InsertBraces: true

83
.gitignore vendored Normal file
View File

@ -0,0 +1,83 @@
# 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*
*.qbs.user*
CMakeLists.txt.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
# Directories with generated files
.moc/
.obj/
.pch/
.rcc/
.uic/
/build*/
_build*/

6
.gitmodules vendored Normal file
View File

@ -0,0 +1,6 @@
[submodule "libs/GenericCore"]
path = libs/GenericCore
url = ssh://wococo1@git.working-copy.org:46100/bent/GenericQtClientCore.git
[submodule "UIs/GenericWidgets"]
path = UIs/GenericWidgets
url = ssh://wococo1@git.working-copy.org:46100/bent/GenericQtClientWidgets.git

18
CMakeLists.txt Normal file
View File

@ -0,0 +1,18 @@
cmake_minimum_required(VERSION 3.16)
set(TARGET_APP "GenericQtClient")
project(${TARGET_APP} VERSION 0.0.1 LANGUAGES CXX)
enable_testing()
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_subdirectory(libs/GenericCore)
set (CORE_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libs/GenericCore)
# Frontend applications
add_subdirectory(UIs/GenericWidgets)
### Tests
add_subdirectory(tests/GenericCoreTests)

1
UIs/GenericWidgets Submodule

Submodule UIs/GenericWidgets added at 1b0e257602

1
libs/GenericCore Submodule

Submodule libs/GenericCore added at b631f4200e

View File

@ -0,0 +1,30 @@
include(FetchContent)
set(TARGET_APP "core_test")
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG v1.17.0
)
FetchContent_MakeAvailable(googletest)
add_library(GTest::GTest INTERFACE IMPORTED)
target_link_libraries(GTest::GTest INTERFACE gtest_main)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(QT NAMES Qt6 REQUIRED COMPONENTS Core LinguistTools)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core LinguistTools)
add_executable(${TARGET_APP} core_test.cpp)
target_include_directories(${TARGET_APP} PRIVATE ${CORE_LIB_DIR}/include)
target_link_libraries(${TARGET_APP}
PRIVATE
GTest::GTest
GenericCore)
target_link_libraries(${TARGET_APP} PUBLIC Qt${QT_VERSION_MAJOR}::Core)
add_test(core_gtests ${TARGET_APP})

View File

@ -0,0 +1,20 @@
#include <gtest/gtest.h>
#include <QString>
#include "../../libs/GenericCore/genericcore.h"
TEST(CoreTests, TestEqualString) {
const auto expected = "GenericCore (Version x.y.z)";
auto core = std::make_unique<GenericCore>();
const auto actual = core->toString();
// const auto actual = multiply(1, 1);
ASSERT_EQ(expected, actual);
}
TEST(CoreTests, TestNotEqualString) {
const auto expected = "Hello from the Core!";
auto core = std::make_unique<GenericCore>();
const auto actual = core->toString();
ASSERT_NE(expected, actual);
}