From ffc6257c506aaf7289737c0f06e6c765491f46ad Mon Sep 17 00:00:00 2001 From: Moncef STITI Date: Fri, 7 Feb 2025 17:31:17 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20tests=20pour=20la=20gestion=20des?= =?UTF-8?q?=20d=C3=A9pendances=20multiples?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/C/test-07-dependency/README.md | 1 + tests/C/test-07-dependency/bake/Bakefile | 26 ++++++++++++++++++++++++ tests/C/test-07-dependency/bake/main.c | 8 ++++++++ tests/C/test-07-dependency/bake/module.c | 6 ++++++ tests/C/test-07-dependency/bake/module.h | 6 ++++++ tests/C/test-07-dependency/make/Makefile | 26 ++++++++++++++++++++++++ tests/C/test-07-dependency/make/main.c | 8 ++++++++ tests/C/test-07-dependency/make/module.c | 6 ++++++ tests/C/test-07-dependency/make/module.h | 6 ++++++ 9 files changed, 93 insertions(+) create mode 100644 tests/C/test-07-dependency/README.md create mode 100644 tests/C/test-07-dependency/bake/Bakefile create mode 100644 tests/C/test-07-dependency/bake/main.c create mode 100644 tests/C/test-07-dependency/bake/module.c create mode 100644 tests/C/test-07-dependency/bake/module.h create mode 100644 tests/C/test-07-dependency/make/Makefile create mode 100644 tests/C/test-07-dependency/make/main.c create mode 100644 tests/C/test-07-dependency/make/module.c create mode 100644 tests/C/test-07-dependency/make/module.h diff --git a/tests/C/test-07-dependency/README.md b/tests/C/test-07-dependency/README.md new file mode 100644 index 0000000..b2926c0 --- /dev/null +++ b/tests/C/test-07-dependency/README.md @@ -0,0 +1 @@ +Dépendances multiples : Vérifier que si un fichier .c dépend de plusieurs fichiers .h, toute modification d'un .h entraîne la recompilation du .c. \ No newline at end of file diff --git a/tests/C/test-07-dependency/bake/Bakefile b/tests/C/test-07-dependency/bake/Bakefile new file mode 100644 index 0000000..38b0eba --- /dev/null +++ b/tests/C/test-07-dependency/bake/Bakefile @@ -0,0 +1,26 @@ +CC = gcc +CFLAGS = -Wall -Wextra -Werror + +# Règle par défaut +all: program + +# Compilation de l'exécutable +program: main.o module.o + $(CC) $(CFLAGS) -o program main.o module.o + +# Compilation des fichiers .c en .o +main.o: main.c module.h + $(CC) $(CFLAGS) -c main.c -o main.o + +module.o: module.c module.h + $(CC) $(CFLAGS) -c module.c -o module.o + +# Nettoyage des fichiers objets et de l'exécutable +clean: + rm -f main.o module.o program + +# Nettoyage complet +mrproper: clean + +# Force la recompilation +rebuild: clean all diff --git a/tests/C/test-07-dependency/bake/main.c b/tests/C/test-07-dependency/bake/main.c new file mode 100644 index 0000000..1f93d59 --- /dev/null +++ b/tests/C/test-07-dependency/bake/main.c @@ -0,0 +1,8 @@ +#include +#include "module.h" + +int main() { + printf("Test du programme Bake/Make !\n"); + print_message(); + return 0; +} diff --git a/tests/C/test-07-dependency/bake/module.c b/tests/C/test-07-dependency/bake/module.c new file mode 100644 index 0000000..990bf34 --- /dev/null +++ b/tests/C/test-07-dependency/bake/module.c @@ -0,0 +1,6 @@ +#include +#include "module.h" + +void print_message() { + printf("Module chargé avec succès !\n"); +} diff --git a/tests/C/test-07-dependency/bake/module.h b/tests/C/test-07-dependency/bake/module.h new file mode 100644 index 0000000..2c03942 --- /dev/null +++ b/tests/C/test-07-dependency/bake/module.h @@ -0,0 +1,6 @@ +#ifndef MODULE_H +#define MODULE_H + +void print_message(); + +#endif diff --git a/tests/C/test-07-dependency/make/Makefile b/tests/C/test-07-dependency/make/Makefile new file mode 100644 index 0000000..38b0eba --- /dev/null +++ b/tests/C/test-07-dependency/make/Makefile @@ -0,0 +1,26 @@ +CC = gcc +CFLAGS = -Wall -Wextra -Werror + +# Règle par défaut +all: program + +# Compilation de l'exécutable +program: main.o module.o + $(CC) $(CFLAGS) -o program main.o module.o + +# Compilation des fichiers .c en .o +main.o: main.c module.h + $(CC) $(CFLAGS) -c main.c -o main.o + +module.o: module.c module.h + $(CC) $(CFLAGS) -c module.c -o module.o + +# Nettoyage des fichiers objets et de l'exécutable +clean: + rm -f main.o module.o program + +# Nettoyage complet +mrproper: clean + +# Force la recompilation +rebuild: clean all diff --git a/tests/C/test-07-dependency/make/main.c b/tests/C/test-07-dependency/make/main.c new file mode 100644 index 0000000..1f93d59 --- /dev/null +++ b/tests/C/test-07-dependency/make/main.c @@ -0,0 +1,8 @@ +#include +#include "module.h" + +int main() { + printf("Test du programme Bake/Make !\n"); + print_message(); + return 0; +} diff --git a/tests/C/test-07-dependency/make/module.c b/tests/C/test-07-dependency/make/module.c new file mode 100644 index 0000000..990bf34 --- /dev/null +++ b/tests/C/test-07-dependency/make/module.c @@ -0,0 +1,6 @@ +#include +#include "module.h" + +void print_message() { + printf("Module chargé avec succès !\n"); +} diff --git a/tests/C/test-07-dependency/make/module.h b/tests/C/test-07-dependency/make/module.h new file mode 100644 index 0000000..2c03942 --- /dev/null +++ b/tests/C/test-07-dependency/make/module.h @@ -0,0 +1,6 @@ +#ifndef MODULE_H +#define MODULE_H + +void print_message(); + +#endif