Test 26 - Règle imbriquée dans une autre règle
Ce test vérifie comment bake et make gèrent les règles imbriquées (c'est-à-dire lorsqu'une règle dépend d'une autre qui est également une règle).
Sommaire
- Structure du test
- Contenu des fichiers de règles
- Objectif du test
- Scénario de test
- Comment exécuter le test
- Résultats attendus
Structure du test
test-26-rule-in-rule/
├── README.md # Ce fichier
├── bake/
│ ├── Bakefile # Fichier de règles pour bake
│ ├── bakefile.jar # Exécutable de bake (JAR)
│ ├── Main.java # Fichier source
│ ├── Main.class # Fichier compilé
├── make/
│ ├── Makefile # Fichier de règles pour make
│ ├── Main.java # Fichier source
│ ├── Main.class # Fichier compilé
Contenu des fichiers de règles
Les fichiers Makefile et Bakefile contiennent la règle suivante :
Main.class: Main.java
javac Main.java -Xlint:unchecked
Objectif du test
Ce test a pour but de vérifier que bake et make :
- Gèrent correctement les dépendances entre règles.
- Recompilent
Main.classseulement siMain.javaa été modifié. - Ne recompileront pas
Main.classsiMain.javan’a pas été modifié.
Scénario de test
- Compiler
Main.javapour générerMain.class. - Exécuter
makeetbakesans modifications pour voir si une recompilation est déclenchée. - Modifier
Main.javaet relancermakeetbakepour voir si une recompilation est bien déclenchée.
Comment exécuter le test
Test manuel
-
Compiler avec Make :
cd make makeLe fichier
Main.classdoit être généré. -
Compiler avec Bake :
cd bake java -cp bakefile.jar fr.monlouyan.bakefile.Main -
Vérifier si
Main.classest bien généré. -
Modifier
Main.javaet relancer la compilation :echo "// Modification" >> Main.java make -
Vérifier si
makeetbakedétectent la modification et recompilentMain.class.
Résultats attendus
bakeetmakedoivent compilerMain.javaenMain.classsiMain.classn'existe pas ou siMain.javaa été modifié.- Si
Main.javan’a pas été modifié,makeetbakene doivent pas recompilerMain.class.