97 lines
3.0 KiB
Markdown
97 lines
3.0 KiB
Markdown
|
# 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.
|