73 lines
2.0 KiB
Markdown
Raw Normal View History

2025-03-10 13:21:31 +01:00
# Test 20 - Gestion des dépendances circulaires (cas 2)
Ce test vérifie si `bake` et `make` gèrent correctement les dépendances circulaires, c'est-à-dire lorsqu'une cible dépend directement ou indirectement d'elle-même.
## 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)
- [Comment exécuter le test](#comment-exécuter-le-test)
- [Test manuel](#test-manuel)
- [Résultats attendus](#résultats-attendus)
## Structure du test
```
test-20-circular-2/
├── 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 règles suivantes :
```makefile
all: A
A: B C
echo "Building A"
B: C
echo "Building B"
C: A
echo "Building C"
```
## Objectif du test
Ce test vérifie que `bake` et `make` :
1. Détectent correctement la boucle circulaire entre `A`, `B` et `C`.
2. Affichent un message d'erreur explicite indiquant la présence d'une dépendance circulaire.
3. Empêchent l'exécution infinie de la compilation.
4. Comparent les messages de sortie pour s'assurer que `bake` et `make` ont un comportement similaire.
## Comment exécuter le test
### Test manuel
1. Essayez de compiler avec Make :
```bash
cd make
make
```
Une erreur de dépendance circulaire doit apparaître.
2. Faites la même procédure avec Bake :
```bash
cd bake
java -cp bakefile.jar fr.monlouyan.bakefile.Main
```
Un message d'erreur similaire doit s'afficher.
## Résultats attendus
- `bake` et `make` doivent afficher une erreur indiquant la boucle circulaire.
- L'exécution doit être stoppée immédiatement.
- `bake` et `make` doivent avoir un comportement similaire face aux dépendances circulaires.