README de tous les tests
This commit is contained in:
94
tests/test-19-multiple-targets/README.md
Normal file
94
tests/test-19-multiple-targets/README.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# Test 19 - Gestion des cibles multiples
|
||||
|
||||
Ce test vérifie si `bake` et `make` gèrent correctement les règles ayant plusieurs cibles et leurs 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-19-multiple-targets/
|
||||
├── 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
|
||||
# Règle avec plusieurs cibles et sans dépendance
|
||||
target1 target2 target3:
|
||||
echo "Première règle avec 3 cibles séparées par des espaces"
|
||||
touch target1 target2 target3
|
||||
|
||||
# Règle avec plusieurs cibles et avec dépendances
|
||||
file1 file2: target1 target2
|
||||
echo "Deuxième règle avec 2 cibles et 2 dépendances"
|
||||
echo "Contenu 1" > file1
|
||||
echo "Contenu 2" > file2
|
||||
|
||||
# Règle avec une seule cible et plusieurs dépendances
|
||||
final: file1 file2 target3
|
||||
echo "Règle finale qui dépend de tout le reste"
|
||||
cat file1 file2 > final
|
||||
|
||||
# Règle pour nettoyer
|
||||
clean:
|
||||
rm -f target1 target2 target3 file1 file2 final
|
||||
```
|
||||
|
||||
## Objectif du test
|
||||
|
||||
Ce test vérifie que `bake` et `make` :
|
||||
1. Interprètent correctement les règles ayant plusieurs cibles.
|
||||
2. Créent toutes les cibles indiquées par une même règle.
|
||||
3. Exécutent les dépendances dans l'ordre correct.
|
||||
4. Produisent un fichier final `final` contenant les résultats de `file1` et `file2`.
|
||||
5. Suppriment correctement tous les fichiers avec la cible `clean`.
|
||||
|
||||
## Comment exécuter le test
|
||||
|
||||
### Test manuel
|
||||
|
||||
1. Exécutez la compilation avec Make :
|
||||
```bash
|
||||
cd make
|
||||
make
|
||||
```
|
||||
Tous les fichiers doivent être créés correctement.
|
||||
|
||||
2. Vérifiez que `final` contient bien les contenus de `file1` et `file2` :
|
||||
```bash
|
||||
cat final
|
||||
```
|
||||
|
||||
3. Faites la même procédure avec Bake :
|
||||
```bash
|
||||
cd bake
|
||||
java -cp bakefile.jar fr.monlouyan.bakefile.Main
|
||||
```
|
||||
|
||||
4. Exécutez le nettoyage :
|
||||
```bash
|
||||
make clean
|
||||
```
|
||||
Tous les fichiers doivent être supprimés.
|
||||
|
||||
5. Comparez les résultats et les messages affichés.
|
||||
|
||||
## Résultats attendus
|
||||
|
||||
- `bake` et `make` doivent interpréter correctement les règles avec plusieurs cibles.
|
||||
- Tous les fichiers doivent être créés aux bons emplacements.
|
||||
- La cible `clean` doit supprimer correctement tous les fichiers.
|
Reference in New Issue
Block a user