TP-systeme-exploitation-cen.../TP3/verif_fichiers/verif_fichiers.sh
2023-06-20 20:57:09 +02:00

116 lines
2.3 KiB
Bash

#!/bin/sh
# PM, le 13/4/21
# Laurent 2021-04-14
if [ \( "a$1" = 'a-s' \) ] ; then
echo "préparation de l'archive à soumettre"
rep=`whoami|cut -d' ' -f 1`-tpFichiers
mkdir "$rep"
if [ ! \( -f etu/copier.c \) ] ; then
echo "note : fichier source copier.c (q10,11,12) non trouvé"
else
cp etu/copier.c "$rep"
fi
if [ ! \( -f etu/scruter.c \) ] ; then
echo "note : fichier source scruter.c non trouvé"
else
cp etu/scruter.c "$rep"
fi
cp a/s "$rep"
tar -cf "$rep".tar "$rep"
rm -r "$rep"
echo "prêt : vous pouvez déposer l'archive $rep.tar sous Moodle"
exit 0
fi
export PATH=.:$PATH
res=KO
nbOK=0
# compilation des scripts
gcc -Wall etu/scruter.c -o scruter
gcc -Wall etu/copier.c -o copier
gcc -Wall a/kro.c -o cpt
printf " =============== COPIER TEST ===============\n"
#copier
copier a/pfurz ww
if [ $? -eq 0 ] ; then
nbOK=$((nbOK+1))
printf "DEBUG: nbOK n°1 GOOD\n"
else
printf "DEBUG: nbOK n°1 FAILED, `errno $?`\n"
fi
diff a/pfurz ww
if [ $? -eq 0 ] ; then
nbOK=$((nbOK+1))
printf "DEBUG: nbOK n°2 GOOD\n"
else
printf "DEBUG: nbOK n°2 FAILED, `errno $?`\n"
fi
# ce test là doit échouer, car a/b/core n'est pas écrivable (pas les droits)
copier a/pfurz a/b/core
if [ $? -ne 0 ] ; then
nbOK=$((nbOK+1))
printf "DEBUG: nbOK n°3 GOOD\n"
else
printf "DEBUG: nbOK n°3 FAILED, `errno $?`\n"
fi
# ce test doit aussi échouer, car plop n'existe pas
copier plop a/pfurz
if [ $? -ne 0 ] ; then
nbOK=$((nbOK+1))
printf "DEBUG: nbOK n°4 GOOD\n"
else
printf "DEBUG: nbOK n°4 FAILED, `errno $?`\n"
fi
# fermez bien vos fichiers
if [ $(cat etu/copier.c | grep close | wc -l) -gt 0 ] ; then
nbOK=$((nbOK+1))
printf "DEBUG: nbOK n°5 GOOD\n"
else
printf "DEBUG: nbOK n°5 FAILED\n"
fi
# pensez à utiliser perror
if [ $(cat etu/copier.c | grep perror | wc -l) -gt 0 ] ; then
nbOK=$((nbOK+1))
printf "DEBUG: nbOK n°6 GOOD\n"
else
printf "DEBUG: nbOK n°6 FAILED\n"
fi
if [ $nbOK -eq 6 ] ; then
res=OK
fi
echo "copier : $res ($nbOK/6)"
printf " =============== SCRUTER TEST ===============\n"
# scruter
scruter #> /dev/null
if [ -f "temp" ] ; then
cpt > foo
diff foo a/bar
if [ $? -eq 0 ] ; then
res2=OK
else
res2=KO
fi
else
res2="??"
fi
rm cpt
rm ww
echo "scruter : $res2"
echo $res$res2 > a/s # sauvegarde des réponses dans un fichier, pour l'archivage