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
- Contenu des fichiers de règles
- Objectif du test
- Comment exécuter le test
- 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 :
# 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
:
- Interprètent correctement les règles ayant plusieurs cibles.
- Créent toutes les cibles indiquées par une même règle.
- Exécutent les dépendances dans l'ordre correct.
- Produisent un fichier final
final
contenant les résultats defile1
etfile2
. - Suppriment correctement tous les fichiers avec la cible
clean
.
Comment exécuter le test
Test manuel
-
Exécutez la compilation avec Make :
cd make make
Tous les fichiers doivent être créés correctement.
-
Vérifiez que
final
contient bien les contenus defile1
etfile2
:cat final
-
Faites la même procédure avec Bake :
cd bake java -cp bakefile.jar fr.monlouyan.bakefile.Main
-
Exécutez le nettoyage :
make clean
Tous les fichiers doivent être supprimés.
-
Comparez les résultats et les messages affichés.
Résultats attendus
bake
etmake
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.