111 lines
2.9 KiB
Plaintext
111 lines
2.9 KiB
Plaintext
|
#!/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' ]
|