From e466bda000a3c3759e8ef2d16a3de6d5593f0bc4 Mon Sep 17 00:00:00 2001
From: Moncef STITI <moncef.stiti@etu.u-pec.fr>
Date: Sat, 1 Feb 2025 18:33:10 +0100
Subject: [PATCH] =?UTF-8?q?Pr=C3=A9parations=20du=20projet=20:=20Ajout=20d?=
 =?UTF-8?q?es=20tests=20pour=20l'utilitaire=20de=20compilation=20Bake?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 README.md                           | 13 ++++++++++++-
 TODO.md                             |  4 ++++
 tests/test-01-depuis-rien/Bakefile  |  2 ++
 tests/test-01-depuis-rien/README.md | 12 ++++++++++++
 tests/test-01-depuis-rien/main.c    |  6 ++++++
 tests/test-02-existe-deja/Bakefile  |  2 ++
 tests/test-02-existe-deja/README.md | 13 +++++++++++++
 tests/test-02-existe-deja/main.c    |  6 ++++++
 8 files changed, 57 insertions(+), 1 deletion(-)
 create mode 100644 TODO.md
 create mode 100644 tests/test-01-depuis-rien/Bakefile
 create mode 100644 tests/test-01-depuis-rien/README.md
 create mode 100644 tests/test-01-depuis-rien/main.c
 create mode 100644 tests/test-02-existe-deja/Bakefile
 create mode 100644 tests/test-02-existe-deja/README.md
 create mode 100644 tests/test-02-existe-deja/main.c

diff --git a/README.md b/README.md
index c012b57..e0fb43d 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,13 @@
-# SAE32_2024
+# Bake - L'utilitaire de compilation minimaliste 🚀
 
+## Sommaire 📖
+- [Introduction](#introduction)
+- [Auteurs](#auteurs-%F0%9F%91%A8%E2%80%8D%F0%9F%92%BB)
+
+## Introduction
+Bake est un utilitaire de compilation inspiré de `make`, conçu pour gérer la génération et la mise à jour de fichiers en fonction de leurs dépendances. Contrairement à `make`, Bake utilise un fichier de configuration nommé `Bakefile`, avec une syntaxe simplifiée et sans certaines fonctionnalités avancées.
+
+## Auteurs 👨‍💻
+- Moncef STITI - [@stiti](https://grond.iut-fbleau.fr/stiti)
+- Louay DARDOURI - [@dardouri](https://grond.iut-fbleau.fr/dardouri)
+- Yanis HAMOUDI - [@hamoudi](https://grond.iut-fbleau.fr/hamoudi)
\ No newline at end of file
diff --git a/TODO.md b/TODO.md
new file mode 100644
index 0000000..96625e6
--- /dev/null
+++ b/TODO.md
@@ -0,0 +1,4 @@
+# Liste des choses à faire plus tard :
+
+- [ ] Améliorer les `README.md` des tests
+- [ ] Ajouter le fichier compiler dans `test-02-exite-deja`
\ No newline at end of file
diff --git a/tests/test-01-depuis-rien/Bakefile b/tests/test-01-depuis-rien/Bakefile
new file mode 100644
index 0000000..4e0e544
--- /dev/null
+++ b/tests/test-01-depuis-rien/Bakefile
@@ -0,0 +1,2 @@
+main: main.c
+    gcc -o main main.c
\ No newline at end of file
diff --git a/tests/test-01-depuis-rien/README.md b/tests/test-01-depuis-rien/README.md
new file mode 100644
index 0000000..6e14f57
--- /dev/null
+++ b/tests/test-01-depuis-rien/README.md
@@ -0,0 +1,12 @@
+# Test 1 : Compilation depuis rien
+
+## Description
+Ce test vérifie que lorsque les fichiers objets et exécutables sont absents, 
+le programme Bake compile correctement le fichier source `main.c` en `main`.
+
+## Fichiers utilisés
+- `main.c` : Fichier source en C.
+- `Bakefile` : Contient les règles de compilation.
+
+## Résultat attendu
+La compilation doit se faire.
diff --git a/tests/test-01-depuis-rien/main.c b/tests/test-01-depuis-rien/main.c
new file mode 100644
index 0000000..145de7a
--- /dev/null
+++ b/tests/test-01-depuis-rien/main.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main(void) {
+    printf("Ceci est un programme de test du Bakefile !\n");
+    return 0;
+}
diff --git a/tests/test-02-existe-deja/Bakefile b/tests/test-02-existe-deja/Bakefile
new file mode 100644
index 0000000..4e0e544
--- /dev/null
+++ b/tests/test-02-existe-deja/Bakefile
@@ -0,0 +1,2 @@
+main: main.c
+    gcc -o main main.c
\ No newline at end of file
diff --git a/tests/test-02-existe-deja/README.md b/tests/test-02-existe-deja/README.md
new file mode 100644
index 0000000..6910a2c
--- /dev/null
+++ b/tests/test-02-existe-deja/README.md
@@ -0,0 +1,13 @@
+# Test 2 : Compilation où le résultat existe déjà
+
+## Description
+Ce test vérifie que si l'exécutable `main` est déjà présent et que `main.c` 
+n'a pas été modifié, alors `Bake` ne tente pas de recompiler.
+
+## Fichiers utilisés
+- `main.c` : Fichier source inchangé.
+- `Bakefile` : Contient les règles de compilation.
+- `main` : Exécutable déjà généré.
+
+## Résultat attendu
+Aucun message indiquant la compilation ne doit apparaître.
diff --git a/tests/test-02-existe-deja/main.c b/tests/test-02-existe-deja/main.c
new file mode 100644
index 0000000..145de7a
--- /dev/null
+++ b/tests/test-02-existe-deja/main.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main(void) {
+    printf("Ceci est un programme de test du Bakefile !\n");
+    return 0;
+}