From 0f156e7211848012464792dffcd49f56a6c321e6 Mon Sep 17 00:00:00 2001
From: "Le-Bao-Tin.Ha" <le-bao-tin.ha@insa-rennes.fr>
Date: Mon, 15 Mar 2021 00:04:41 +0100
Subject: [PATCH] add module test

---
 GAME/CMakeLists.txt            | 39 ++++++++++++++++++++++++++++------
 GAME/include/test_personnage.h | 34 +++++++++++++++++++++++++++++
 GAME/test_main.cpp             | 12 +++++++++++
 3 files changed, 79 insertions(+), 6 deletions(-)
 create mode 100644 GAME/include/test_personnage.h
 create mode 100644 GAME/test_main.cpp

diff --git a/GAME/CMakeLists.txt b/GAME/CMakeLists.txt
index 68a467f..bee338e 100644
--- a/GAME/CMakeLists.txt
+++ b/GAME/CMakeLists.txt
@@ -1,19 +1,46 @@
 cmake_minimum_required(VERSION 3.17)
-project(INSAGAME C)
+
 
 
 set(CMAKE_C_STANDARD 90)
+set(CMAKE_CXX_STANDARD 11)
 
 if (WIN32)
     message ([STATUS]" os Windows")
-    include_directories(include)
 
     set(SDL2_INCLUDE_DIR C:/TDM-GCC-64/x86_64-w64-mingw32/include)
     set(SDL2_LIB_DIR C:/TDM-GCC-64/x86_64-w64-mingw32/lib)
 
-    file(GLOB_RECURSE SOURCES "src/*c" main.c)
-    add_executable(INSAGAME ${SOURCES})
-    target_link_libraries(${PROJECT_NAME} mingw32 SDL2main SDL2 SDL2_image)
+    option(BUILD_TESTS OFF)
+    set(BUILD_TESTS ON)
+
+    if(BUILD_TESTS)
+        project(INSAGAMETEST C CXX)
+
+        set(GTEST_INCLUDE_DIR /googletest/googletest/include)
+        include_directories(include)
+        include_directories(${GTEST_INCLUDE_DIR})
+        enable_testing()
+
+        add_subdirectory(googletest)
+        file(GLOB_RECURSE SOURCES "src/*c" test_main.cpp)
+
+        add_executable(INSAGAMETEST ${SOURCES})
+        target_link_libraries(${PROJECT_NAME} mingw32 SDL2main SDL2 SDL2_image gtest gtest_main)
+        add_test(
+                NAME INSAGAMETEST
+                COMMAND INSAGAMETEST
+        )
+    else()
+        include_directories(include)
+        project(INSAGAME C)
+        file(GLOB_RECURSE SOURCES "src/*c" main.c)
+        add_executable(INSAGAME ${SOURCES})
+        target_link_libraries(${PROJECT_NAME} mingw32 SDL2main SDL2 SDL2_image)
+
+    endif(BUILD_TESTS)
+
+
 
 
 else(APPLE)
@@ -27,7 +54,7 @@ else(APPLE)
     include_directories( ${SDL2_INCLUDE_DIRS} "/usr/local/Cellar/sdl2_image/2.0.5/include/SDL2" "include" )
 
     file(GLOB_RECURSE SOURCES "src/*c" main.c)
-    add_executable(INSAGAME ${SOURCES} include/GAME.c include/GAME.h)
+    add_executable(INSAGAME ${SOURCES} include/GAME.c include/GAME.h test_main.c test/testpersonnage.cpp)
     target_link_libraries(${PROJECT_NAME} ${SDL2_LIBRARIES} "-L/usr/local/Cellar/sdl2_image/2.0.5/lib  -lSDL2")
 
 
diff --git a/GAME/include/test_personnage.h b/GAME/include/test_personnage.h
new file mode 100644
index 0000000..6af28f6
--- /dev/null
+++ b/GAME/include/test_personnage.h
@@ -0,0 +1,34 @@
+/*
+// Created by Tiny on 3/14/2021.
+*/
+
+#ifndef INSAGAME_TEST_PERSONNAGE_H
+#define INSAGAME_TEST_PERSONNAGE_H
+
+#include <gtest/gtest.h>
+extern "C"{
+#include "personnage.h"
+}
+
+TEST(test_init_personnage,values_3_3_3_3_3_testimage){
+    Personnage person;
+    init_pers(&person,3,3,3,3,3,"testimage");
+    EXPECT_EQ(3,person.x_pers);
+    EXPECT_EQ(3,person.y_pers);
+    EXPECT_EQ(3,person.long_pers);
+    EXPECT_EQ(3,person.larg_pers);
+    EXPECT_STREQ("testimage",person.image_pers);
+}
+TEST(test_calcul_point,values_3_3){
+    Personnage person;
+    init_pers(&person,3,3,3,3,3,"testimage");
+    calculpointspers(&person);
+    EXPECT_EQ(6,person.x_hr);
+    EXPECT_EQ(3,person.y_hr);
+    EXPECT_EQ(3,person.x_ll);
+    EXPECT_EQ(6,person.y_ll);
+    EXPECT_EQ(6,person.x_lr);
+    EXPECT_EQ(6,person.y_lr);
+
+}
+#endif /*INSAGAME_TEST_PERSONNAGE_H*/
diff --git a/GAME/test_main.cpp b/GAME/test_main.cpp
new file mode 100644
index 0000000..419e2b4
--- /dev/null
+++ b/GAME/test_main.cpp
@@ -0,0 +1,12 @@
+#include <gtest/gtest.h>
+
+#include "test_personnage.h"
+
+
+
+int main(int argc, char* args[]){
+
+    ::testing::InitGoogleTest(&argc, args);
+    return RUN_ALL_TESTS();
+
+}
\ No newline at end of file
-- 
GitLab