From 14866848dc5f948ecf0423cf96830a2daa590873 Mon Sep 17 00:00:00 2001 From: Willy Date: Mon, 8 Jun 2026 14:02:47 +0200 Subject: [PATCH] Add variables --- CMakeLists.txt | 89 +++++++++++++++++++++++------- TestJenkins.cpp | 12 ---- src/Person.cpp | 11 ++++ src/Person.h | 10 ++++ src/TestJenkins.cpp | 13 +++++ TestJenkins.h => src/TestJenkins.h | 0 tests/UT_Person.cpp | 14 +++++ 7 files changed, 117 insertions(+), 32 deletions(-) delete mode 100644 TestJenkins.cpp create mode 100644 src/Person.cpp create mode 100644 src/Person.h create mode 100644 src/TestJenkins.cpp rename TestJenkins.h => src/TestJenkins.h (100%) create mode 100644 tests/UT_Person.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c41541..b110469 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,21 +1,70 @@ -# CMakeList.txt : projet CMake pour TestJenkins, incluez la source et définissez -# la logique spécifique au projet ici. +cmake_minimum_required(VERSION 3.10) + +project(TestJenkins VERSION 1.0) + +# C++ Standard +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Enable testing +enable_testing() + +# ----------------------------------------------------------------------------- +# Person library +# ----------------------------------------------------------------------------- + +add_library(Person + src/Person.cpp +) + +target_include_directories(Person + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/src +) + +# ----------------------------------------------------------------------------- +# Main executable +# ----------------------------------------------------------------------------- + +add_executable(TestJenkins + src/TestJenkins.cpp +) + +target_link_libraries(TestJenkins + PRIVATE + Person +) + +# ----------------------------------------------------------------------------- +# GoogleTest +# ----------------------------------------------------------------------------- # -cmake_minimum_required (VERSION 3.8) - -# Activez Rechargement à chaud pour les compilateurs MSVC si cela est pris en charge. -if (POLICY CMP0141) - cmake_policy(SET CMP0141 NEW) - set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$,$>,$<$:EditAndContinue>,$<$:ProgramDatabase>>") -endif() - -project ("TestJenkins") - -# Ajoutez une source à l'exécutable de ce projet. -add_executable (TestJenkins "TestJenkins.cpp" "TestJenkins.h") - -if (CMAKE_VERSION VERSION_GREATER 3.12) - set_property(TARGET TestJenkins PROPERTY CXX_STANDARD 20) -endif() - -# TODO: Ajoutez des tests et installez des cibles si nécessaire. +#include(FetchContent) +# +#FetchContent_Declare( +# googletest +# URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip +#) +# +#FetchContent_MakeAvailable(googletest) +# +#add_executable(UT_Person +# tests/UT_Person.cpp +#) +# +#target_link_libraries(UT_Person +# PRIVATE +# Person +# GTest::gtest +# GTest::gtest_main +#) +# +#include(GoogleTest) +#gtest_discover_tests(UT_Person) +# +## Optional: place executables in a common output folder +#set_target_properties(TestJenkins UT_Person PROPERTIES +# RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin +#) +# \ No newline at end of file diff --git a/TestJenkins.cpp b/TestJenkins.cpp deleted file mode 100644 index 275aa3a..0000000 --- a/TestJenkins.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// TestJenkins.cpp : définit le point d'entrée de l'application. -// - -#include "TestJenkins.h" - -using namespace std; - -int main() -{ - cout << "Hello World Willy test 3!" << endl; - return 0; -} diff --git a/src/Person.cpp b/src/Person.cpp new file mode 100644 index 0000000..251ff3c --- /dev/null +++ b/src/Person.cpp @@ -0,0 +1,11 @@ +#include "Person.h" + +std::string Person::getName() const +{ + return "Willy"; +} + +unsigned int Person::getAge() const +{ + return 32; +} \ No newline at end of file diff --git a/src/Person.h b/src/Person.h new file mode 100644 index 0000000..ffcfb7e --- /dev/null +++ b/src/Person.h @@ -0,0 +1,10 @@ +#pragma once + +#include + +class Person +{ +public: + std::string getName() const; + unsigned int getAge() const; +}; \ No newline at end of file diff --git a/src/TestJenkins.cpp b/src/TestJenkins.cpp new file mode 100644 index 0000000..52ed2fb --- /dev/null +++ b/src/TestJenkins.cpp @@ -0,0 +1,13 @@ +#include "TestJenkins.h" +#include "Person.h" + + +using namespace std; + +int main() +{ + + Person p; + cout << "Hello " << p.getName() << " : " << p.getAge() << " yo !" << endl; + return 0; +} diff --git a/TestJenkins.h b/src/TestJenkins.h similarity index 100% rename from TestJenkins.h rename to src/TestJenkins.h diff --git a/tests/UT_Person.cpp b/tests/UT_Person.cpp new file mode 100644 index 0000000..169edb3 --- /dev/null +++ b/tests/UT_Person.cpp @@ -0,0 +1,14 @@ +#include +#include "Person.h" + +TEST(PersonTest, VerifyName) +{ + Person person; + EXPECT_EQ(person.getName(), "Willy"); +} + +TEST(PersonTest, VerifyAge) +{ + Person person; + EXPECT_EQ(person.getAge(), 32u); +} \ No newline at end of file