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
- Contenu des fichiers de règles
- Objectif du test
- Scénario de test
- Comment exécuter le test
- 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 :
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 :
- Exécuter la règle
MultiLine
qui crée un fichier texte avec plusieurs lignes, affiche son contenu puis le supprime - Vérifier que toutes les étapes sont exécutées correctement dans l'ordre spécifié
Comment exécuter le test
Test manuel
-
Pour Make :
cd make make
-
Pour Bake :
cd bake java -cp bakefile.jar fr.monlouyan.bakefile.Main
-
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 commemake
en termes d'ordre d'exécution des commandes