80 lines
2.2 KiB
Markdown
80 lines
2.2 KiB
Markdown
|
# 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.
|