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

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 :

  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 :

    cd make
    make
    

    Une erreur de dépendance circulaire doit apparaître.

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