readme test 26 27 28 29 30 31 32 et modif README TEST
This commit is contained in:
99
tests/test-27-conditions-if/README.md
Normal file
99
tests/test-27-conditions-if/README.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# Test 27 - Gestion des conditions IF
|
||||
|
||||
Ce test vérifie comment `bake` et `make` gèrent les conditions `if` dans les commandes de compilation, en particulier pour tester l'existence d'un fichier avant de l'écraser ou de le recréer.
|
||||
|
||||
## 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-27-conditions-if/
|
||||
├── 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 la logique conditionnelle suivante :
|
||||
|
||||
```makefile
|
||||
# Définition de la cible principale
|
||||
all: fichier.txt
|
||||
@echo "La cible fichier.txt est à jour."
|
||||
|
||||
# Cible qui vérifie si le fichier existe
|
||||
# Si le fichier existe, ne rien faire
|
||||
# Sinon, le créer avec touch
|
||||
fichier.txt:
|
||||
@if [ -f "fichier.txt" ]; then echo "Le fichier fichier.txt existe déjà, rien à faire."; else echo "Le fichier fichier.txt n'existe pas, création..."; touch fichier.txt; echo "Le fichier fichier.txt a été créé."; fi
|
||||
|
||||
# Cible pour nettoyer le fichier créé
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@echo "Suppression de fichier.txt..."
|
||||
@rm -f fichier.txt
|
||||
```
|
||||
|
||||
## Objectif du test
|
||||
|
||||
Ce test a pour but de vérifier que `bake` et `make` :
|
||||
1. Vérifient correctement si `fichier.txt` existe avant de l'écraser.
|
||||
2. N'exécutent pas la création de `fichier.txt` si celui-ci existe déjà.
|
||||
3. Suppriment `fichier.txt` proprement avec la cible `clean`.
|
||||
|
||||
## Scénario de test
|
||||
|
||||
1. Exécuter `make` et `bake` une première fois pour voir la création du fichier.
|
||||
2. Exécuter `make` et `bake` une seconde fois pour voir si la condition empêche la recréation du fichier.
|
||||
3. Supprimer `fichier.txt` et relancer `make` et `bake` pour vérifier que le fichier est bien recréé.
|
||||
|
||||
## Comment exécuter le test
|
||||
|
||||
### Test manuel
|
||||
|
||||
1. Exécuter `make` et `bake` :
|
||||
```bash
|
||||
cd make
|
||||
make
|
||||
```
|
||||
Le fichier `fichier.txt` doit être créé.
|
||||
|
||||
2. Exécuter `make` et `bake` à nouveau :
|
||||
```bash
|
||||
make
|
||||
```
|
||||
Il ne doit pas y avoir de recréation du fichier.
|
||||
|
||||
3. Supprimer `fichier.txt` et relancer `make` :
|
||||
```bash
|
||||
make clean
|
||||
make
|
||||
```
|
||||
Le fichier doit être recréé.
|
||||
|
||||
4. Répéter les mêmes étapes avec `bake` :
|
||||
```bash
|
||||
cd bake
|
||||
java -cp bakefile.jar fr.monlouyan.bakefile.Main
|
||||
java -cp bakefile.jar fr.monlouyan.bakefile.Main clean
|
||||
java -cp bakefile.jar fr.monlouyan.bakefile.Main
|
||||
```
|
||||
|
||||
5. Vérifier les résultats et comparer le comportement avec `make`.
|
||||
|
||||
## Résultats attendus
|
||||
|
||||
- `bake` et `make` doivent créer `fichier.txt` uniquement si celui-ci n'existe pas.
|
||||
- Un deuxième appel à `make` ou `bake` ne doit pas recréer `fichier.txt` s'il est déjà présent.
|
||||
- La cible `clean` doit supprimer le fichier proprement.
|
Reference in New Issue
Block a user