# Test 21 - Génération de fichiers dans le processus de build Ce test vérifie si `bake` et `make` gèrent correctement la génération de fichiers intermédiaires dans le processus de construction, notamment lorsqu'un script est généré avant d'être exécuté. ## 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-21-generate/ ├── 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: output.txt output.txt: generate.sh bash generate.sh > output.txt generate.sh: echo "echo 'Hello, World!'" > generate.sh chmod +x generate.sh ``` ## Objectif du test Ce test vérifie que `bake` et `make` : 1. Génèrent correctement le script `generate.sh` avant de l'exécuter. 2. Exécutent `generate.sh` pour produire `output.txt`. 3. S'assurent que `output.txt` contient bien `Hello, World!`. 4. Comparent les messages de sortie pour s'assurer que `bake` et `make` gèrent ce cas de manière identique. ## Comment exécuter le test ### Test manuel 1. Exécutez la compilation avec Make : ```bash cd make make ``` Le fichier `output.txt` doit être généré. 2. Vérifiez son contenu : ```bash cat output.txt ``` Il doit afficher `Hello, World!`. 3. Faites la même procédure avec Bake : ```bash cd bake java -cp bakefile.jar fr.monlouyan.bakefile.Main ``` 4. Comparez les résultats et les messages affichés. ## Résultats attendus - `bake` et `make` doivent générer correctement `generate.sh` avant de l'exécuter. - `output.txt` doit être créé et contenir `Hello, World!`. - Les messages de sortie doivent indiquer que le script a été exécuté correctement.