moocbash_test/README.md

2.2 KiB

Script de validation des Challenge 42 et 43

Ce script permet de vérifier les codes de sorties retournées par les script des challenges 42 et 43 du MOOC bash de la licence ADSILLH promotion 2018-2019.

Installation

Pour installer le script, il suffit de cloner ce dépôt et d'initialiser le sous module message (disponible aussi dans mes dépôts git)

git clone https://git.epha.se/ephase/moocbash_test
cd moocbash_test
git submodule init && git submodule update

Exécution

Pour contrôler la sortie de ouinon.sh du challenge 43, il suffit de faire:

./test.sh -d ~/alice/Sequence4/A43 -s ouinon.sh -t q431.txt

Paramètres

  • -d répertoire contenant le script à tester (et les fichiers nécessaires), sans notre cas ~/alice/Sequence4/A42 et ~/alice/Sequence4/A43
  • -s fichier script à tester
  • -t fichier de test, il sont tous contenu dans le répertoire de notre script. Chaque fichier contient un test pas ligne sous la forme <arguments>:<code_retour>:<std_out>:<std_err>. La valeur de std_out ne doit pas contenir de : car il est utilisé comme séparateur de colonne dans notre fichier de définition. Il est cependant possible de l'utiliser dans std_err.

Sortie

Le script fournira alors la sortie suivante :

ADSILLH Bash return code test
Test unetouche.sh script with /net/cremi/ybarbanneau/alice/Sequence4/A43/test/q433.txt 

Script "unetouche.sh 5"
Le code de retour est celui attendu (12)
STDOUT : Chiffre

Script "unetouche.sh ="
Le code de retour est celui attendu (20)
STDOUT : Autre

Script "unetouche.sh abc"
Le code de retour est celui attendu (91)
STDOUT : Donner un seul caractère

[...]

Le script donne pour chaque test :

  • le script lancé et ses arguments
  • le code de sortie
  • stdout
  • stderr

En cas de retour différents, et ce pour n'importe quelle valeur attendue (stdout, stderr ou le code de sortie

Script "ouinon.sh abc"
    Le code de retour n'est pas correct script : 5 attendu : 91
    STDOUT n'est pas celui attendu :
        Attendu :       Donner un seul caractère
        Obtenu :        Pas compris