Test 17 - Règles sans commandes

Ce test vérifie si bake et make gèrent correctement les règles sans commandes et leur propagation dans les dépendances.

Sommaire

Structure du test

test-17-rule-without-command/
├── 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: dep1 dep2

dep1:

dep2: dep3

dep3:
	touch dep3

Objectif du test

Ce test vérifie que bake et make :

  1. Gèrent correctement les règles sans commandes explicites.
  2. Exécutent correctement les dépendances lorsque c'est nécessaire.
  3. Exécutent uniquement les règles qui ont des commandes (ici dep3).
  4. Comparent les messages de sortie pour s'assurer que bake et make ont le même comportement.

Comment exécuter le test

Test automatique

  1. Rendez le script de test exécutable :

    chmod +x run_test17.sh
    
  2. Lancez le script de test :

    ./run_test17.sh
    
  3. Consultez les résultats affichés dans le terminal et dans le fichier de log généré dans le répertoire logs/.

Test manuel

  1. Exécutez la compilation avec Make :

    cd make
    make
    

    Seule dep3 doit être exécutée (avec touch dep3).

  2. Faites la même procédure avec Bake :

    cd bake
    java -cp bakefile.jar fr.monlouyan.bakefile.Main
    
  3. Comparez les résultats et les messages affichés.

Résultats attendus

  • bake et make doivent traiter correctement les règles sans commandes.
  • Seule la règle dep3 doit exécuter touch dep3.
  • Aucune erreur ne doit être affichée.