Test 04 - Compilation après modification du code source
Ce test vérifie le comportement de bake
comparé à make
lorsque l'exécutable cible existe déjà mais que le code source a été modifié depuis la dernière compilation.
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-04-edited/
├── README.md # Ce fichier
├── bake/
│ ├── Bakefile # Fichier de règles pour bake
│ ├── bakefile.jar # Exécutable de bake (JAR)
│ ├── main # Exécutable déjà compilé
│ └── main.c # Fichier source C (modifié)
├── make/
│ ├── Makefile # Fichier de règles pour make
│ ├── main # Exécutable déjà compilé
│ └── main.c # Fichier source C (modifié)
└── run_test04.sh # Programme de test automatique
Contenu des fichiers de règles
Les fichiers Makefile
et Bakefile
contiennent les mêmes règles :
main: main.c
gcc -o main main.c
Objectif du test
Ce test vérifie que bake
se comporte comme make
dans le scénario où le code source a été modifié :
- Vérifier que les deux outils détectent correctement que la cible
main
existe déjà - Vérifier que les deux outils détectent que le fichier source
main.c
a été modifié depuis la dernière compilation - Vérifier que les deux outils reconstruisent l'exécutable
main
pour prendre en compte les modifications - Comparer les messages de sortie des deux outils
Comment exécuter le test
Test automatique
-
Rendez le script de test exécutable :
chmod +x run_test04.sh
-
Lancez le script de test :
./run_test04.sh
-
Consultez les résultats affichés dans le terminal et dans le fichier de log généré dans le répertoire
logs/
.
Test manuel
-
Modifiez les fichiers source dans les deux répertoires :
echo "// Modification pour test" >> make/main.c echo "// Modification pour test" >> bake/main.c
-
Pour Make :
cd make make
-
Pour Bake :
cd bake java -cp bakefile.jar fr.monlouyan.bakefile.Main
-
Comparez les deux résultats.
Résultats attendus
- Les deux outils devraient détecter que la cible
main
existe déjà - Les deux outils devraient détecter que le fichier source
main.c
a été modifié depuis la dernière compilation - Les deux outils devraient reconstruire l'exécutable
main
pour prendre en compte les modifications - Les datestamps des exécutables devraient être mis à jour
Ce test vérifie la fonctionnalité essentielle d'un système de build qui consiste à reconstruire les cibles lorsque leurs dépendances ont été modifiées, assurant ainsi que l'exécutable reflète toujours l'état actuel du code source.