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
- Contenu des fichiers de règles
- Objectif du test
- Comment exécuter le test
- 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 :
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
:
- Détectent correctement la boucle circulaire entre
A
,B
etC
. - Affichent un message d'erreur explicite indiquant la présence d'une dépendance circulaire.
- Empêchent l'exécution infinie de la compilation.
- Comparent les messages de sortie pour s'assurer que
bake
etmake
ont un comportement similaire.
Comment exécuter le test
Test manuel
-
Essayez de compiler avec Make :
cd make make
Une erreur de dépendance circulaire doit apparaître.
-
Faites la même procédure avec Bake :
cd bake java -cp bakefile.jar fr.monlouyan.bakefile.Main
Un message d'erreur similaire doit s'afficher.
Résultats attendus
bake
etmake
doivent afficher une erreur indiquant la boucle circulaire.- L'exécution doit être stoppée immédiatement.
bake
etmake
doivent avoir un comportement similaire face aux dépendances circulaires.