From a759c98b9554b3cbb9971ef0674294a5ccababd5 Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Tue, 20 Nov 2018 00:12:11 +0100 Subject: [PATCH] Test stdout and stderr now --- q431.txt | 10 +++++----- q432.txt | 16 ++++++++-------- test.sh | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 59 insertions(+), 16 deletions(-) diff --git a/q431.txt b/q431.txt index 008ba09..e4d413e 100644 --- a/q431.txt +++ b/q431.txt @@ -1,5 +1,5 @@ -:3 -o o:4 -O:0 -n:1 -oui:5 +:3:Vous n'avez pas donné votre réponse +o o:4:Donnez une seule réponse +O:0:oui +n:1:non +oui:5:Pas compris diff --git a/q432.txt b/q432.txt index 7403a94..24e0a0f 100644 --- a/q432.txt +++ b/q432.txt @@ -1,8 +1,8 @@ -fich1 rep1:0 -fich1 rep1 12:0 -fich1:3 -bidon rep1:4 -fich2 rep1:4 -fich1 rep2:5 -fich1 rep1 -99:6 -fich2 rep1 -99:4 +fich1 rep1:0:999 +fich1 rep1 12:0:12 +fich1:3::usage : testargu.sh fichier répertoire [nombre_positif] +bidon rep1:4::usage : testargu.sh fichier répertoire [nombre_positif] +fich2 rep1:4::usage : testargu.sh fichier répertoire [nombre_positif] +fich1 rep2:5::usage : testargu.sh fichier répertoire [nombre_positif] +fich1 rep1 -99:6::usage : testargu.sh fichier répertoire [nombre_positif] +fich2 rep1 -99:4::usage : testargu.sh fichier répertoire [nombre_positif] diff --git a/test.sh b/test.sh index e611557..a3b6751 100755 --- a/test.sh +++ b/test.sh @@ -59,18 +59,61 @@ cd $DIR [ ! -f $COMMAND ] && error "script **$COMMAND** not found" while IFS='' read -r i || [[ -n "$line" ]]; do + # Create temp dir to store stderr + errfile=$(mktemp) args=$(echo $i | cut -d: -f1) e_code=$(echo $i | cut -d: -f2) - msg "\nScript *${COMMAND}*, paramètres **${args}**\n" - ret_o=$(./$COMMAND $args 2>&1) + e_stdout=$(echo $i | cut -d: -f3) + e_stderr=$(echo $i | cut -d: -f4-) + + msg "\nScript **\"${COMMAND} ${args}\"**\n" + ret_o=$(./$COMMAND $args 2>$errfile) ret_c=$? + ret_e=$(< "$errfile") + rm "$errfile" + if [[ $ret_c == $e_code ]] then msg "green" "\tLe code de retour est celui attendu (${e_code})\n" else msg "yellow" "\tLe code de retour n'est pas correct script : ${ret_c} attendu : ${e_code}\n" fi - msg "blue" "\tRetour : ${ret_o}\n" + + if [[ ! -z $ret_o ]] + then + if [[ ! -z $e_stdout ]] + then + if [[ $ret_o == $e_stdout ]] + then + msg "blue" "\tSTDOUT : $e_stdout\n" + else + msg "red" "\tSTDOUT n'est pas celui attendu :\n" + msg "blue" "\t\tAttendu :\t$e_stdout\n" + msg "blue" "\t\tObtenu :\t$ret_o\n" + fi + else + msg "red" "STDOUT (non attendu) : $ret_o\n" + fi + fi + + if [[ ! -z $ret_e ]] + then + # Script return STDERR + if [[ ! -z $e_stderr ]] + then + # We need stderr to validate test + if [[ $e_stderr == $ret_e ]] + then + msg "blue" "\tSTDERR : $ret_e\n" + else + msg "red" "\tSTDERR n'est pas celui attendu\n" + msg "blue" "\t\tAttendu :\t$e_stderr\n" + msg "blue" "\t\tObtenu :\t$ret_e\n" + fi + msg "red" "\tSDTERR (non attendu) : $ret_e\n" + fi + fi + done < "$TEST_FILE" exit 0