Files
SAE32_2024/tests/test-28-silent/README.md

75 lines
1.9 KiB
Markdown
Raw Normal View History

# Test 28 - Gestion des commandes silencieuses et suppression forcée
Ce test vérifie comment `bake` et `make` gèrent les commandes silencieuses (`@`) et la suppression forcée (`-`).
## 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-28-silent/
├── README.md
├── bake/
│ ├── Bakefile
│ ├── bakefile.jar
├── make/
│ ├── Makefile
```
## Contenu des fichiers de règles
Les fichiers `Makefile` et `Bakefile` contiennent :
```makefile
all: main
main:
echo "Compilation de main..."
touch main
clean:
- rm main
@echo "Fichiers nettoyés."
```
## Objectif du test
Ce test vérifie que `bake` et `make` :
1. Exécutent les commandes de compilation normalement.
2. Gèrent correctement le `-` devant `rm` pour ignorer les erreurs si le fichier n'existe pas.
3. Masquent l'affichage de la commande `echo "Fichiers nettoyés."` grâce à `@`.
## Scénario de test
1. Exécuter `make` et `bake` pour compiler `main`.
2. Exécuter la cible `clean` et observer la suppression.
3. Exécuter `make clean` et `bake clean` quand `main` n'existe pas pour vérifier que l'erreur est ignorée.
## Comment exécuter le test
### Test manuel
```bash
cd make
make
make clean
make clean # Tester la suppression sans le fichier
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 clean
```
## Résultats attendus
- `bake` et `make` doivent exécuter `clean` sans erreur même si `main` n'existe pas.
- La suppression doit être silencieuse (grâce au `@`).