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

test-31-redirection/
├── README.md         
├── bake/             
│   ├── Bakefile      
│   ├── bakefile.jar  
├── make/
│   ├── Makefile           

Contenu des fichiers de règles

.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

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.