# 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](#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-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 : ```makefile 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 : ```bash chmod +x run_test17.sh ``` 2. Lancez le script de test : ```bash ./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 : ```bash cd make make ``` Seule `dep3` doit être exécutée (avec `touch dep3`). 2. Faites la même procédure avec Bake : ```bash 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.