mooc/filesystem/usr/evalp2/archives/evalQ441.ses3

111 lines
2.9 KiB
Bash
Executable File

#!/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' ]