80 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

2025-03-10 13:21:31 +01:00
# 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.