# Test 18 - Gestion des caractères spéciaux dans les chemins Ce test vérifie si `bake` et `make` gèrent correctement les chemins contenant divers types de caractères, comme `~` pour le répertoire personnel, `/tmp/`, des chemins avec des barres obliques `/`, des tirets `-`, et des underscores `_`. ## 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-18-path-characters/ ├── 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: ~/temp/test.txt /tmp/test.txt ./path/with/slashes/test.txt path-with-dashes.txt path_with_underscores.txt ~/temp/test.txt: mkdir -p ~/temp echo "Content in home directory" > ~/temp/test.txt /tmp/test.txt: echo "Content in tmp directory" > /tmp/test.txt ./path/with/slashes/test.txt: mkdir -p ./path/with/slashes echo "Content in path with slashes" > ./path/with/slashes/test.txt path-with-dashes.txt: echo "Content in file with dashes" > path-with-dashes.txt path_with_underscores.txt: echo "Content in file with underscores" > path_with_underscores.txt clean: rm -rf ~/temp/test.txt /tmp/test.txt ./path/with/slashes path-with-dashes.txt path_with_underscores.txt ``` ## Objectif du test Ce test vérifie que `bake` et `make` : 1. Interprètent correctement les chemins contenant des caractères spéciaux comme `~`, `/`, `-`, et `_`. 2. Créent les fichiers aux emplacements indiqués. 3. Nettoient correctement les fichiers avec la cible `clean`. 4. Comparent les messages de sortie pour s'assurer que `bake` et `make` gèrent les chemins de manière identique. ## Comment exécuter le test ### Test manuel 1. Générez les fichiers avec Make : ```bash cd make make ``` Tous les fichiers doivent être créés aux emplacements spécifiés. 2. Vérifiez que les fichiers existent : ```bash ls ~/temp/test.txt /tmp/test.txt ./path/with/slashes/test.txt path-with-dashes.txt path_with_underscores.txt ``` 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 chemins et créer les fichiers sans erreur. - Tous les fichiers doivent être créés aux bons emplacements. - La cible `clean` doit supprimer correctement tous les fichiers.