Ajout du test n°25
This commit is contained in:
parent
75911d41d8
commit
ca42e51636
76
tests/C/test-25-multilines/README.md
Normal file
76
tests/C/test-25-multilines/README.md
Normal file
@ -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
|
7
tests/C/test-25-multilines/bake/Bakefile
Normal file
7
tests/C/test-25-multilines/bake/Bakefile
Normal file
@ -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
|
7
tests/C/test-25-multilines/make/Makefile
Normal file
7
tests/C/test-25-multilines/make/Makefile
Normal file
@ -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
|
Loading…
x
Reference in New Issue
Block a user