#!/bin/bash #xcrypted # Auteur: Pascal Anelli # date 15 avril 2020 source ${LIBSH}/libeval.sh #----------------------------------------- rep=~/Sequence4/A44 challenge=C44Q1 scriptname=dostat.sh exo=$rep/$scriptname datafile=worldcorona.data sample=/tmp/touch #--------------------------------- # Debut firstcheck touch $sample chmod a-r $sample echo "En cours, patientez ..... " # 1 working $exo Spain 40 $rep/$datafile &>/dev/null step $(vraifaux $?) "Le script fonctionne " true output=$($exo Spain 40 $rep/$datafile 2>/dev/null | tail -n 1) #output: 40 435 1639 # 2 display 40 lines [ ${output%% *} -eq 40 ] step $(vraifaux $?) "Un resultat est affiche avec le bon nombre de lignes " true number=${output##* } # 3 is integer isinteger "$number" step $(vraifaux $?) "Le nombre de cas est un entier " true # 4 accuracy [ "$number" -eq 1639 ] step $(vraifaux $?) "Le calcul du nombre de cas est correct pour un pays donne" # 5 while grep -q while $exo 2>/dev/null step $(vraifaux $?) "Le script fait la bonne boucle " # 6 tests etendu grep -q ' \[ .* \]' $exo 2>/dev/null [ $? -eq 1 ] step $(vraifaux $?) "Le script utilise uniquement des tests etendus " # 7 Ignore Case output=$($exo SPAIN 40 $rep/$datafile 2>/dev/null | tail -n 1) number=${output##* } [ "$number" == 1639 ] step $(vraifaux $?) "La selection du pays est insensible a la casse " #================== # check argument # 8 the number of argument $exo &>/dev/null [ $? -eq 1 ] step $(vraifaux $?) "Le script retourne le code 1 en cas d'absence d'argument" # 9 display Usage $exo 2>&1 | grep -q -i Usage step $(vraifaux $?) "Le script affiche l'usage en cas d'absence d'argument " # 10 negative integer $exo France -2 $sample &>/dev/null [ $? -eq 2 ] step $(vraifaux $?) "Le script retourne le code 2 pour un entier négatf " # 11 display Error $exo France -2 $sample 2>&1 | grep -q -i ERROR step $(vraifaux $?) "Le script affiche un message d'erreur pour un entier négatif" # 12 integer above limit $exo France 101 $sample &>/dev/null [ $? -eq 2 ] step $(vraifaux $?) "Le script retourne le code 2 pour un entier > 100 " # 13 Display Error Message $exo France +101 $sample 2>&1 | grep -q -i ERROR step $(vraifaux $?) "Le script affiche un message d'erreur pour un entier > 100 " # 14 integer above limit $exo France +10 $sample &>/dev/null [ $? -eq 3 ] step $(vraifaux $?) "Le script retourne le code 3 pour un fichier non lisible " # 15 Display Error Message $exo France +10 $sample 2>&1 | grep -q -i ERROR step $(vraifaux $?) "Le script affiche un message d'erreur pour un fichier non lisible" #------------------------------------- # Fin status "${challenge}_$res" exit 0 # listcode = [ '000', '738', '4c8', '988', '629', '10b', 'f6d', '25e', '9aa', '090', 'ed0', '272', '96d', '521', '06c', '0f1' ]