# Test 31 - Gestion des redirections I/O Ce test vérifie comment `bake` et `make` gèrent les redirections d'entrée/sortie (`>`, `>>`, `<`, `|`). ## 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) - [Scénario de test](#scénario-de-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-31-redirection/ ├── README.md ├── bake/ │ ├── Bakefile │ ├── bakefile.jar ├── make/ │ ├── Makefile ``` ## Contenu des fichiers de règles ```makefile .PHONY: all test-output test-append test-input test-multiple test-pipe test-cleanup all: test-output test-append test-input test-multiple test-pipe @echo "Tous les tests de redirection I/O sont terminés" # Test de redirection de sortie standard (>) test-output: @echo "Test de redirection de sortie >" echo "Contenu écrit avec redirection >" > output.txt @cat output.txt @echo "-----------------------------" # Test de redirection avec ajout (>>) test-append: @echo "Test de redirection avec ajout >>" echo "Première ligne" > append.txt echo "Deuxième ligne ajoutée" >> append.txt @cat append.txt @echo "-----------------------------" # Test de redirection d'entrée (<) test-input: @echo "Test de redirection d'entrée <" echo "Contenu à lire" > input.txt cat < input.txt @echo "-----------------------------" # Test de redirections multiples test-multiple: @echo "Test de redirections multiples" echo "Ligne 1" > multi.txt echo "Ligne 2" >> multi.txt cat < multi.txt > multi-output.txt @cat multi-output.txt @echo "-----------------------------" # Test de pipe | test-pipe: @echo "Test de pipe |" echo "LIGNE UN\nLIGNE DEUX\nLIGNE TROIS" | grep LIGNE | wc -l @echo "-----------------------------" # Nettoyage des fichiers créés test-cleanup: @echo "Nettoyage des fichiers de test" rm -f output.txt append.txt input.txt multi.txt multi-output.txt ``` ## Objectif du test Ce test vérifie que `bake` et `make` : 1. Gèrent correctement la redirection de sortie standard `>` et `>>`. 2. Lisent des fichiers en redirigeant l'entrée `<`. 3. Traitent les redirections combinées (`<` et `>` en même temps). 4. Gèrent correctement les pipes `|` pour la manipulation de commandes. ## Scénario de test 1. Exécuter `make` et `bake` pour voir la gestion des redirections. 2. Vérifier le contenu des fichiers créés. 3. Supprimer les fichiers après le test. ## Test manuel ```bash cd make make all make test-cleanup cd bake java -cp bakefile.jar fr.monlouyan.bakefile.Main all java -cp bakefile.jar fr.monlouyan.bakefile.Main test-cleanup ``` ## Résultats attendus - Les fichiers créés doivent contenir les résultats attendus des redirections. - Les pipes doivent fonctionner comme prévu.