# 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.