From ca42e5163668518d9ffd2c1c1eea45d3768b98ec Mon Sep 17 00:00:00 2001
From: Moncef STITI <moncef.stiti@etu.u-pec.fr>
Date: Fri, 7 Mar 2025 21:46:30 +0100
Subject: [PATCH] =?UTF-8?q?Ajout=20du=20test=20n=C2=B025?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tests/C/test-25-multilines/README.md     | 76 ++++++++++++++++++++++++
 tests/C/test-25-multilines/bake/Bakefile |  7 +++
 tests/C/test-25-multilines/make/Makefile |  7 +++
 3 files changed, 90 insertions(+)
 create mode 100644 tests/C/test-25-multilines/README.md
 create mode 100644 tests/C/test-25-multilines/bake/Bakefile
 create mode 100644 tests/C/test-25-multilines/make/Makefile

diff --git a/tests/C/test-25-multilines/README.md b/tests/C/test-25-multilines/README.md
new file mode 100644
index 0000000..70b49e6
--- /dev/null
+++ b/tests/C/test-25-multilines/README.md
@@ -0,0 +1,76 @@
+# Test 25 - Gestion des commandes multi-lignes
+
+Ce test vérifie le comportement de `bake` comparé à `make` lors de l'exécution de règles comportant plusieurs lignes de commandes bash à exécuter séquentiellement.
+
+## Sommaire
+- [Structure du test](#structure-du-test)
+- [Contenu des fichiers de règles](#contenu-des-fichiers-de-règles)
+- [Objectif du test](#objectif-du-test)
+- [Scénario de test](#scénario-de-test)
+- [Comment exécuter le test](#comment-exécuter-le-test)
+  - [Test manuel](#test-manuel)
+- [Résultats attendus](#résultats-attendus)
+
+## Structure du test
+
+```
+test-23-multilines/
+├── README.md         # Ce fichier
+├── bake/             
+│   ├── Bakefile      # Fichier de règles pour bake
+│   ├── bakefile.jar  # Exécutable de bake (JAR)
+└── make/
+    └── Makefile      # Fichier de règles pour make
+
+```
+
+## Contenu des fichiers de règles
+
+Les fichiers `Makefile` et `Bakefile` contiennent les mêmes règles avec des commandes multi-lignes :
+
+```makefile
+MultiLine: 
+	echo "Première ligne" > test.txt
+	echo "Deuxième ligne" >> test.txt
+	echo "Troisième ligne" >> test.txt
+	cat test.txt
+	rm test.txt
+```
+
+## Objectif du test
+
+Ce test vérifie que `bake` exécute correctement une séquence de commandes bash indépendantes, placées sur des lignes distinctes dans la règle. Comme `make`, `bake` doit exécuter chaque ligne séquentiellement et s'arrêter à la première erreur (comportement de bash).
+
+## Scénario de test
+
+Le test suit les étapes suivantes :
+1. Exécuter la règle `MultiLine` qui crée un fichier texte avec plusieurs lignes, affiche son contenu puis le supprime
+2. Vérifier que toutes les étapes sont exécutées correctement dans l'ordre spécifié
+
+## Comment exécuter le test
+
+### Test manuel
+
+1. Pour Make :
+   ```
+   cd make
+   make
+   ```
+
+2. Pour Bake :
+   ```
+   cd bake
+   java -cp bakefile.jar fr.monlouyan.bakefile.Main
+   ```
+
+3. Comparez les deux résultats.
+
+## Résultats attendus
+
+- Chaque commande des règles doit être exécutée séquentiellement
+- Les sorties de chaque commande doivent apparaître dans la console dans l'ordre d'exécution
+- Pour la règle `MultiLine` :
+  - Le fichier test.txt doit être créé avec trois lignes
+  - Le contenu du fichier doit être affiché
+  - Le fichier doit être supprimé
+- `bake` doit se comporter exactement comme `make` en termes d'ordre d'exécution des commandes
\ No newline at end of file
diff --git a/tests/C/test-25-multilines/bake/Bakefile b/tests/C/test-25-multilines/bake/Bakefile
new file mode 100644
index 0000000..b3471eb
--- /dev/null
+++ b/tests/C/test-25-multilines/bake/Bakefile
@@ -0,0 +1,7 @@
+MultiLine: 
+	touch test.txt
+	echo "Première ligne" > test.txt
+	echo "Deuxième ligne" >> test.txt
+	echo "Troisième ligne" >> test.txt
+	cat test.txt
+	rm test.txt
\ No newline at end of file
diff --git a/tests/C/test-25-multilines/make/Makefile b/tests/C/test-25-multilines/make/Makefile
new file mode 100644
index 0000000..63a4f97
--- /dev/null
+++ b/tests/C/test-25-multilines/make/Makefile
@@ -0,0 +1,7 @@
+MultiLine:
+	touch test.txt
+	echo "Première ligne" > test.txt
+	echo "Deuxième ligne" >> test.txt
+	echo "Troisième ligne" >> test.txt
+	cat test.txt
+	rm test.txt
\ No newline at end of file