From f4e780d194d359b2b2e45b80451abab4a4ed7f4e Mon Sep 17 00:00:00 2001 From: troufflard <> Date: Fri, 11 Mar 2016 16:47:39 +0000 Subject: [PATCH] modif scripts verifier_exeHZ.pl et Perl/test.pl : gestion de l interruption ctrl+c en cours de batterie (desormais, l interruption est bien maitrisee avec verifier_exeHZ.pl. Avec verifier_exeHZ.zsh, ca fonctionne grace aux modifs de Perl/test.pl mais le script verifier_exeHZ.zsh ne contient en lui-meme aucune modif pour gerer ctrl+c, donc pas fiable); Doc utilisateur : modif de la section 4 qui est maintenant divisee en 2 sous-sections (l une pour expliquer le lancement de la batterie et l autre pour faire quelques commentaires sur l interruption ctrl+c) --- Doc/doc_procedure_verification.tex | 65 +++++++++++----- Perl/test.pl | 106 +++++++++++++++++++++++++- doc_procedure_verification.pdf | Bin 239824 -> 239206 bytes verifier_exeHZ.pl | 115 ++++++++++++++++++++++++++--- 4 files changed, 255 insertions(+), 31 deletions(-) diff --git a/Doc/doc_procedure_verification.tex b/Doc/doc_procedure_verification.tex index 6283b06..c7fbeaf 100644 --- a/Doc/doc_procedure_verification.tex +++ b/Doc/doc_procedure_verification.tex @@ -82,6 +82,9 @@ citecolor= green %couleur citation biblio } +\definecolor{greenOK}{RGB}{15 , 185 , 15} + + @@ -182,6 +185,9 @@ L'arborescence du projet CVS est la suivante :\\ \section{Lancement de la batterie de tests}\label{section_lancement_batterie_tests} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Procédure de lancement} + Il y a actuellement deux scripts permettant de lancer la batterie de tests. Le script \verb|verifier_exeHZ.zsh| est la version originale historique. Le script \verb|verifier_exeHZ.pl| est une version plus récente offrant plus de possibilités sous forme d'options. Pour l'instant, ces deux scripts existent. A terme, si \verb|verifier_exeHZ.pl| s'avère satisfaisant, la version \verb|.zsh| dispara\^itra du projet.\\ Avant de détailler l'utilisation de ces scripts, voici un résumé de la procédure pour lancer la batterie : @@ -193,17 +199,13 @@ Avant de d Le rapport obtenu après exécution de la batterie indique pour chaque test si il est réussi ainsi que le temps de calcul obtenu par la commande \verb|time|.\\ -{\color{blue} \noindent \bf \underline{Interrompre l'exécution de la batterie (**procédure temporaire**)} :\rm - -En l'état actuel, il est possible de stopper l'exécution de la batterie avec \verb|ctrl+c|. Cependant, la gestion de cette interruption n'est pas encore bien gérée. Il faut faire un certain nombre de \verb|ctrl+c| jusqu'à ce que le programme s'arr\^ete (typiquement, il faut rester appuyer sur \verb|ctrl+c|). Ensuite, il faut vérifier s'il y a des processus Herezh++ qui persistent en fond de t\^ache et tuer ces processus (\verb|kill -9|). Ces processus sont faciles à repérer avec la commande \verb|ps| gr\^ace au nom de leur commande associée qui est de la forme : \verb|testHZ[un entier] -f fichier.info|. Et enfin, éventuellement, on peut effacer les répertoires temporaires encore présents dans \verb|/tmp| pour éviter leur accumulation (ces répertoires ont un nom de la forme : \verb|/tmp/test.pl_[un entier]|. - -\bf NB : cette procédure d'interruption n'altère pas les répertoires originaux de tests de la batterie. Bien que non optimale, cette procédure est s\^ure et n'aura aucune influence sur le prochain lancement de la batterie.\rm -} - \subsubsection*{\underline{Script \texttt{verifier\_exeHZ.zsh}} :} Le script \verb|verifier_exeHZ.zsh| lance automatiquement tous les tests présents dans le répertoire courant et ses sous-répertoires. Un test est un répertoire dont le nom commence par \verb|Test_R| ou \verb|Test_L| (voir section \ref{section_organisation_tests}). Le script peut \^etre lancé dans n'importe quel répertoire contenant le répertoire \verb|Perl|. Il produit un rapport de tests pour les tests \verb|Test_R| (tests rapides) et un rapport pour les tests \verb|Test_L| (tests longs). Ces rapports sont contenus dans le répertoire \verb|Rapport| (éventuellement créé si il n'existe pas au lancement) sous le nom \verb|rapport_test_R.txt| et \verb|rapport_test_L.txt|. Le script affiche automatiquement ces rapports si l'éditeur de texte \verb|nedit| est disponible. +Comme mentionné précédemment, \verb|verifier_exeHZ.zsh| NE permet PAS d'interrompre correctement la batterie en cours avec \verb|ctrl+c|, avec pour conséquence un fort risque de modification des répertoires de test originaux. + Le script \verb|verifier_exeHZ.zsh| prend un argument : le nom de l'exécutable Herezh++. Typiquement, cet exécutable est présent dans un répertoire pointé par la variable environnement \verb|$PATH|. Mais on peut également donner un chemin absolu ou relatif.\\ + Exemples : \begin{itemize} \item[$\bullet$] cas d'un exécutable accessible via la variable environnement \verb|$PATH| : @@ -220,7 +222,8 @@ Exemples : \end{itemize} \subsubsection*{\underline{Script \texttt{verifier\_exeHZ.pl}} :} -Le script \verb|verifier_exeHZ.pl| fonctionne de manière identique. Toutes les informations mentionnées pour \verb|verifier_exeHZ.zsh| sont valables pour \verb|verifier_exeHZ.pl|. Cette version offre des possibilités supplémentaires sous forme d'options. Ces options sont consultables en tapant \verb|verifier_exeHZ.pl -h| dans un terminal. En l'absence d'options, \verb|verifier_exeHZ.pl| fonctionne exactement comme \verb|verifier_exeHZ.zsh|.\\ +Le script \verb|verifier_exeHZ.pl| fonctionne de manière identique. Toutes les informations mentionnées pour \verb|verifier_exeHZ.zsh| sont valables pour \verb|verifier_exeHZ.pl|. Cette version offre des possibilités supplémentaires sous forme d'options. Ces options sont consultables en tapant \verb|verifier_exeHZ.pl -h| dans un terminal. En l'absence d'options, \verb|verifier_exeHZ.pl| fonctionne exactement comme \verb|verifier_exeHZ.zsh|. Comme mentionné précédemment, \verb|verifier_exeHZ.pl| permet d'interrompre correctement la batterie en cours avec \verb|ctrl+c|.\\ + Exemples d'options : \begin{itemize} \item[$\bullet$] ne lancer que les tests rapides (option \verb|-R|) : @@ -240,7 +243,14 @@ Exemples d'options : \end{itemize} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Procédure d'interruption} +L'utilisateur peut souhaiter stopper la batterie en cours. La commande usuelle d'interruption d'un processus UNIX/Linux est \verb|ctrl+c|. + +{\color{greenOK} Le script \verb|verifier_exeHZ.pl| gère une interruption propre de la batterie en cours par \verb|ctrl+c|.} + +{\color{red} Le script \verb|verifier_exeHZ.zsh| ne gère pas correctement l'interruption \verb|ctrl+c| et il y a un risque d'avoir des fichiers et répertoires non effacés ou modifiés. Par sécurité, il est demandé de NE JAMAIS ACTUALISER le projet (cvs commit) après une interruption ctrl+c du script \verb|verifier_exeHZ.zsh|.} @@ -880,45 +890,52 @@ Erreur (prog:genere_catalogue_tests.pl) : erreur a l execution de pdflatex \item[$\bullet$] 2015-06-29 (Julien Troufflard) : \begin{itemize} \item[-] création d'un nouveau script (\verb|Perl/genere_catalogue_tests.pl|). Il génère automatiquement une documentation sur les tests (résumé et index pour recherche par mots-clés). Ce document est placé à la racine du projet sous le nom \verb|documentation_tests.pdf|. Le mode de fonctionnement (lecture des fichiers README de chaque test) impose une nouvelle contrainte sur la forme des fichiers README (interdiction d'utiliser des lignes de 3 tirets ou plus dans le corps d'une rubrique README car ce motif signifie la fin d'une rubrique). Cette contrainte est le choix actuel mais peut \^etre modifié à tout moment en définissant une balise de fin de rubrique à utiliser dans les fichiers README (par exemple : \verb|fin_rubrique|) et en indiquant sa syntaxe dans la variable \verb|$MOTIF_FIN_RUBRIQUE| du script \verb|Perl/genere_catalogue_tests.pl|.\\ -\item[-] Apparition d'une nouvelle rubrique README : \it Auteur \rm (renseigne le ou les auteurs du test avec prénom, nom, adresse mail). rubrique qui appara\^it dans la documentation des tests.\\ +\item[-] Apparition d'une nouvelle rubrique README : \it Auteur \rm (renseigne le ou les auteurs du test avec prénom, nom, adresse mail). rubrique qui appara\^it dans la documentation des tests. \end{itemize}%tiret +~\\ \item[$\bullet$] 2015-07-13 (Julien Troufflard) : \begin{itemize} \item[-] changement du nom du fichier de catalogue de tests (désormais s'appellera \verb|catalogue_test.pdf| au lieu de \verb|documentation_tests.pdf|)\\ -\item[-] le fichier .pdf de la document utilisateur principale est désormais archivé sous CVS. Il s'appelle \verb|doc_procedure_verification.pdf| et est placé à la racine du projet (il s'agit simplement du fichier généré par \verb|Doc/doc_procedure_verification.tex|)\\ +\item[-] le fichier .pdf de la document utilisateur principale est désormais archivé sous CVS. Il s'appelle \verb|doc_procedure_verification.pdf| et est placé à la racine du projet (il s'agit simplement du fichier généré par \verb|Doc/doc_procedure_verification.tex|) \end{itemize}%tiret +~\\ \item[$\bullet$] 2015-07-15 (Julien Troufflard) : \begin{itemize} -\item[-] ajout d'une nouvelle version du script de lancement de la batterie. Cette nouvelle version en Perl s'appelle \verb|verifier_exeHZ.pl|. Elle reproduit la m\^eme chose que la version actuelle en zsh mais propose en plus des options pour éviter de lancer tous les tests. La version précédente \verb|verifier_exeHZ| est conservée mais renommée en \verb|verifier_exeHZ.zsh|. A terme, cette version zsh sera supprimée du projet CVS.\\ +\item[-] ajout d'une nouvelle version du script de lancement de la batterie. Cette nouvelle version en Perl s'appelle \verb|verifier_exeHZ.pl|. Elle reproduit la m\^eme chose que la version actuelle en zsh mais propose en plus des options pour éviter de lancer tous les tests. La version précédente \verb|verifier_exeHZ| est conservée mais renommée en \verb|verifier_exeHZ.zsh|. A terme, cette version zsh sera supprimée du projet CVS. \end{itemize}%tiret +~\\ \item[$\bullet$] 2015-07-16 (Julien Troufflard) : \begin{itemize} \item[-] modif du script de génération automatique du catalogue de tests (script \verb|Perl/genere_catalogue_tests.pl|). Désormais, il est possible d'insérer des figures via une syntaxe par balises dans les fichiers README des tests. La méthode est expliquée à la section \ref{section_fichiers_obligatoires} "Fichiers obligatoires" (fichier \verb|README|)\\ \item[-] ajout du script \verb|Perl/verif_existence_repertoire_test.pl|. Permet de savoir si un nom de répertoire de test existe déjà dans la batterie. Est utile au moment de l'ajout d'un nouveau test pour aider à choisir le nom et éviter de choisir un nom déjà existant (m\^eme si ce n'est pas dans le m\^eme répertoire de destination car le catalogue des tests ne tient pas compte du chemin complet). Explication de son utilisation à la section \ref{subsection_vue_ensemble}\\ -\item[-] méthodologie pour ajouter un nouveau test : il n'y avait aucune section exposant clairement les étapes à suivre pour créer et ajouter un test, d'où la création de la section \ref{subsection_methodologie}\\ +\item[-] méthodologie pour ajouter un nouveau test : il n'y avait aucune section exposant clairement les étapes à suivre pour créer et ajouter un test, d'où la création de la section \ref{subsection_methodologie} \end{itemize}%tiret +~\\ \item[$\bullet$] 2015-09-29 (Julien Troufflard) : \begin{itemize} \item[-] modif du script \verb|Perl/verifier_exeHZ.pl| : le package \verb|Term::ReadKey| n'est pas forcément installé sur toutes les machines. Pour éviter d'\^etre pénalisé par ce package, son existence est vérifiée via la subroutine \verb|check_install| du package \verb|Module::Load::Conditional| et, si il existe, l'appel à \verb|Term::ReadKey| est fait via \verb|require| au lieu de \verb|use|. Cette manière de faire pourra \^etre appliquée partout où il y a un doute sur l'existence d'un package et définir ainsi un moyen de contourner l'absence d'un package.\\ -\item[-] modif du script \verb|Perl/test.pl| : il y avait une faille dans la subroutine \verb|lancement_commande|. Sur certaines machines, la redirection \verb|tee| ne se fait pas instantanément. Ceci conduisait à croire que le fichier de redirection n'était pas créé et donc renvoyait un problème lié à la redirection de l'affichage. Désormais, un délai est accordé pour attendre la création de ce fichier (environ 2 secondes maximum avec un check de l'existence du fichier de redirection toutes les millisecondes). De manière indirecte, ceci a conduit à créer un nouvel indicateur de status pour signaler si le calcul ne se lance pas (\verb|probleme lancement calcul|).\\ +\item[-] modif du script \verb|Perl/test.pl| : il y avait une faille dans la subroutine \verb|lancement_commande|. Sur certaines machines, la redirection \verb|tee| ne se fait pas instantanément. Ceci conduisait à croire que le fichier de redirection n'était pas créé et donc renvoyait un problème lié à la redirection de l'affichage. Désormais, un délai est accordé pour attendre la création de ce fichier (environ 2 secondes maximum avec un check de l'existence du fichier de redirection toutes les millisecondes). De manière indirecte, ceci a conduit à créer un nouvel indicateur de status pour signaler si le calcul ne se lance pas (\verb|probleme lancement calcul|). \end{itemize}%tiret +~\\ \item[$\bullet$] 2015-09-30 (Julien Troufflard) : \begin{itemize} \item[-] modif de l'en-t\^ete de tous les scripts perl (y compris les \verb|.verif| de la batterie) : amélioration de la portabilité en modifiant le shebang selon \url{https://en.wikipedia.org/wiki/Shebang_\%28Unix\%29#Portability}. Désormais, les scripts commencent par \verb|#!/usr/bin/env perl| au lieu du chemin absolu \verb|#!/usr/bin/perl| qui pourrait ne pas fonctionner sur certaines machines à l'architecture atypique (et actualisation de la section \ref{section_fichiers_facultatifs} pour signaler cette habitude à prendre pour les fichiers \verb|.verif|).\\ -remarque : modif également pour le script zsh \verb|verifier_exeHZ.zsh|\\ +remarque : modif également pour le script zsh \verb|verifier_exeHZ.zsh| \end{itemize}%tiret +~\\ \item[$\bullet$] 2015-11-24 (Julien Troufflard) : \begin{itemize} \item[-] modif script \verb|Perl/genere_catalogue_tests.pl| :\\ 1) possibilité d'insérer un espace "{\textbackslash}hspace" entre les figures \verb|\figures| (voir section \ref{section_fichiers_obligatoires} concernant le fichier \verb|README|)\\ -2) possibilité d'insérer des formules et caractères mathématiques dans les fichiers \verb|README| entre simples \$ ou doubles \$\$ (voir section \ref{section_fichiers_obligatoires} concernant le fichier \verb|README|)\\ +2) possibilité d'insérer des formules et caractères mathématiques dans les fichiers \verb|README| entre simples \$ ou doubles \$\$ (voir section \ref{section_fichiers_obligatoires} concernant le fichier \verb|README|) \end{itemize}%tiret +~\\ \item[$\bullet$] 2015-11-25 (Julien Troufflard) : \begin{itemize} @@ -930,8 +947,9 @@ remarque : modif - comparaison maple : désormais, si toutes les grandeurs d'un test sont OK, un affichage allégé est produit dans le rapport (juste une ligne pour indiquer que toutes les grandeurs sont OK sans détailler les comparaisons)\\ 2) affichage des temps de calcul :\\ - dans la subroutine \verb|lancement_commande()| : lancement de Herezh via la tournure \verb/tsch -c "time HZ -f fic.info" | tee fic.log/ pour récuperer le temps CPU dans le fichier .log (l'utilisation de \verb|tcsh -c|, c'est uniquement pour que le résultat de \verb|time| soit bien récupéré sur \verb|STDOUT|, donc dans \verb|fic.log|)\\ - - juste après l'appel à \verb|lancement_commande()| $\Rightarrow$ saisie du temps de calcul dans le \verb|.log| et affichage dans le rapport de test (juste après le nom du test)\\ + - juste après l'appel à \verb|lancement_commande()| $\Rightarrow$ saisie du temps de calcul dans le \verb|.log| et affichage dans le rapport de test (juste après le nom du test) \end{itemize}%tiret +~\\ \item[$\bullet$] 2015-11-25(bis) (Julien Troufflard) : \begin{itemize} @@ -940,8 +958,9 @@ remarque : modif - remplacement de la subroutine \verb|return_nb_decimales()| par la subroutine \verb|return_nb_decimales_first()| (m\^eme chose mais en mieux : renvoie la position de la première décimale non nulle au lieu du nombre total de décimales). Pour rappel, ce traitement n'a pas pour but d'arrondir les résultats pour la comparaison. Il s'agit juste d'un arrondi à but cosmétique pour afficher, dans le rapport, la grandeur avec un nombre de décimales adapté à la précision.\\ - comparaison maple :\\ 1) modification de la comparaison pour gérer le cas où le nombre est très petit (par exemple : 1.e-15 comparé à 1.e-30 génère une erreur relative énorme). Ce problème avait été déjà pensé dans la version historique de la vérification Herezh (Laurent Mahéo) mais malheureusement non traité dans la nouvelle version. Désormais, on traite ce problème en arrondissant les grandeurs à 1.e-12 près.\\ -2) correction d'une erreur dans la comparaison absolue : par erreur, la comparaison se faisait toujours par rapport à la précision absolue par défaut (\verb|$PREC_ABSOLU|) sans tenir compte de l'éventuelle modification par fichier \verb|.precision|\\ +2) correction d'une erreur dans la comparaison absolue : par erreur, la comparaison se faisait toujours par rapport à la précision absolue par défaut (\verb|$PREC_ABSOLU|) sans tenir compte de l'éventuelle modification par fichier \verb|.precision| \end{itemize}%tiret +~\\ \item[$\bullet$] 2016-02-12 (Julien Troufflard) : \begin{itemize} @@ -955,6 +974,14 @@ remarque : modif \item[-] ajout dans la documentation d'un paragraphe concernant la génération du catalogue de tests (section \ref{section_actualisation_catalogue_tests}) \item[-] ajout dans la documentation d'un paragraphe regroupant les personnes référentes à contacter (section \ref{section_personnes_referentes}) \end{itemize}%tiret +~\\ + +\item[$\bullet$] 2016-03-11 (Julien Troufflard) : +\begin{itemize} +\item[-] modif des scripts \verb|verifier_exeHZ.pl| et \verb|Perl/test.pl| dans le but de permettre un arr\^et Ctrl-c propre en cours de batterie :\\ +pour ces 2 scripts, une gestion des signaux d'interruption \verb|INT| et \verb|TERM| a été introduite (subroutine \verb|arret_force()| et un fichier (texte) temporaire est utilisé pour permettre un dialogue entre les 2 processus (fichier de nom \verb|//tmp/verifier_exeHZ_2_test_$PID.com/| où \verb|$PID| est le pid du processus \verb|verifier_exeHZ.pl|). Un nouveau status de test existe désormais dans le rapport de test : \verb|ECHEC : ***INTERRUPTION PAR L UTILISATEUR***|. A noter que le rapport de test est tout de m\^eme généré en bonne et due forme pour les tests déjà terminés avant Ctrl-c (mais le rapport n'est pas automatiquement affiché). +\item[-] la section \ref{section_lancement_batterie_tests} de ce document a été divisé en 2 sous-sections. Une section est dédiée à la procédure d'interruption \verb|ctrl+c| (pour expliquer mais aussi pour pointer du doigt le fait qu'une interruption volontaire n'est pas toujours une opération sans conséquences). +\end{itemize}%tiret %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %template d ajout d une nouvelle mise à jour (composé d'une puce "bullet" avec Date et auteur de la modif, suivie d une série de puce "-" @@ -966,9 +993,9 @@ remarque : modif %. %. %. -%\item[-] blabla N\\ +%\item[-] blabla N %\end{itemize}%tiret - +%~\\ \end{itemize}%bullet diff --git a/Perl/test.pl b/Perl/test.pl index 4527746..defe449 100755 --- a/Perl/test.pl +++ b/Perl/test.pl @@ -20,6 +20,8 @@ my $format_reel = '[+-]?[\.]?\d+[\.]?\d*(?:[eE][+-]?\d*)?'; # Notes aux developpeurs : # - utiliser print puis exit au lieu de die (pour envoyer l affichage sur STDOUT et non sur STDERR) # - utiliser print au lieu de warn (meme raison que remarque precedente) +# - ce programme capture le signal d interruption Ctrl-c(INT) ou kill -15(TERM) (application de la subroutine arret_force() en cas d interruption) +# (i.e pas d arret immediat de ce script) # ##################################################################################################### @@ -96,10 +98,18 @@ my $repertoire_de_travail = "/tmp/$NOM_PROG\_$$"; ###---Repertoire de travail da ### soit un chemin absolu et vers un repertoire facilement disponible sur n importe quelle OS Mac ou Linux) ### Le choix actuel (2015-11-25) a ete de nommer ce repertoire en fonction du nom de ce script suivi du pid ### du processus, ce qui a priori le rend unique) + ########################### Variables executable Herezh ########################### my $exeHZ; ###---Executable Herezh my $hzchemin; ###---path vers l executable Herezh +########################### Variables pour la communication avec un script verifier_exeHZ.pl ########################### +my $pid_verifier_exeHZ; ###---pid du processus verifier_exeHZ.pl qui a lance ce script de test (fourni comme 3eme argument facultatif) +my $fic_communication; ###---Fichier pour communiquer avec le script verifier_exeHZ.pl (rq : variable inutile dans le cas du script verifier_exeHZ.zsh) + + + + @@ -129,6 +139,7 @@ if($is_opt_help or $#ARGV < 1) { print "Ce script Perl s utilise avec 2 arguments : \n"; print " -> 1] Nom du repertoire Test dans lequel se situe un fichier \'.info\'.\n"; print " -> 2] Nom de l executable Herezh\n"; + print " -> 3] (facultatif) pid du processus verifier_exeHZ.pl qui a lance ce script\n"; exit; } @@ -138,6 +149,11 @@ $repertoire_test = shift(@ARGV); #nom de l executable Herezh $exeHZ = shift(@ARGV); +#pid du processus verifier_exeHZ.pl qui a lance ce script (argument facultatif) +$pid_verifier_exeHZ = shift(@ARGV) if($#ARGV > -1); + + + #verification de l existence du repertoire de test (-d $repertoire_test) or do { printRapport("$repertoire_test\n -> ECHEC : repertoire $repertoire_test introuvable\n\n"); @@ -161,6 +177,17 @@ $hzchemin = verif_commande($exeHZ); print "**Erreur Test $repertoire_test : executable Herezh ($exeHZ) introuvable\n"; exit; }; + +#verif de l existence d un fichier de communication dont serait egal a : /tmp/verifier_exeHZ_2_test_[$pid_verifier_exeHZ].com +if(defined $pid_verifier_exeHZ) { + $fic_communication = "/tmp/verifier_exeHZ_2_test_$pid_verifier_exeHZ.com"; + (-e $fic_communication) or do { + printRapport("$repertoire_test\n -> ECHEC : fichier de communication ($fic_communication) introuvable\n\n"); + print "**Erreur Test $repertoire_test : fichier de communication ($fic_communication) introuvable\n"; + exit; + }; +} + ########################################################################## ########################################################################## ########################################################################## @@ -173,6 +200,55 @@ $hzchemin = verif_commande($exeHZ); +########################################################################## +########################################################################## +########################################################################## +# +# (DEBUT) GESTION D UNE INTERRUPTION (Ctrl-c ou kill -15) +# => on capture les signaux d interruption et on utilise la variable $ARRET_FORCE pour terminer proprement le programme +# +########################################################################## +########################################################################## +########################################################################## + +#indicateur d un arret force (=1 si arret) +# rq : cette variable sert a plusieurs endroits pour gerer l interruption proprement : +# - dans la sub lancement_commande() (voir LOOP_SURVEILLANCE:while() ) +# - dans le status du test (voir VERIFICATION DU TEST dans la boucle BOUCLE_TEST:for(...) +my $ARRET_FORCE = 0; + +#subroutine arret_force : - sera appelee pour toute interruption Ctrl-c (signal INT) ou kill -15 (signal TERM) +# - ne ferme pas le programme (on utilise la variable $ARRET_FORCE pour quitter la boucle de test et terminer normalement le programme) +sub arret_force { + #on stoppe tout simplement si aucun pid de processus n a ete donne en argument (variable : $pid_verifier_exeHZ)... + exit if(not defined $pid_verifier_exeHZ); + + #...sinon, on applique la procedure d arret en collaboration avec le script verifier_exeHZ.pl qui a appele ce script : + + #1) on indique l arret force via la variable $ARRET_FORCE pour quitter proprement le test en cours + $ARRET_FORCE = 1; + + #2) on envoie un signal d arret a verifier_exeHZ.pl (au cas ou il ne l a pas deja eu, ce qui peut arriver quand on lance un processus Herezh via un open(PIPE, |....)) + kill("TERM", $pid_verifier_exeHZ); +} +#capture : Ctrl-c (INT) +$SIG{INT} = \&arret_force; +#capture : kill -15 (TERM) +$SIG{TERM} = \&arret_force; + + +########################################################################## +########################################################################## +########################################################################## +# +# (FIN) GESTION D UNE INTERRUPTION (Ctrl-c ou kill -15) +# +########################################################################## +########################################################################## +########################################################################## + + + ########################################################################## ########################################################################## ########################################################################## @@ -549,8 +625,15 @@ BOUCLE_TEST:for(my $no_test=1; $no_test<=$nb_CVisu; $no_test++) { ################################################################################# #premiere verification selon status renvoye par la subroutine lancement_commande ################################################################################# + #---cas d une interruption volontaire (par exemple : Ctrl-c) + if($ARRET_FORCE) { + printRapport(" -> ECHEC : ***INTERRUPTION PAR L UTILISATEUR***\n\n"); + print "**Erreur Test $repertoire_test/.CVisu$no_test : INTERRUPTION PAR L UTILISATEUR\n"; + last BOUCLE_TEST; + } + #---cas d un calcul ayant conduit a un trop gros fichier de redirection - if($status_calcul eq "depassement taille maximum") { + elsif($status_calcul eq "depassement taille maximum") { printRapport(" -> ECHEC : le calcul Herezh a conduit a la creation d un trop gros fichier de redirection (fichier $fichier_test.log a depasse la taille maximum autorisee egale a $TAILLE_MAX_FIC_REDIR octets).\n"); printRapport(" Les causes possibles sont un probleme de menu interactif, un long calcul associe a une frequence trop grande d affichage des increments et iterations, ...\n"); printRapport(" Si ce depassement est un fonctionnement normal, il faut augmenter la taille admissible dans la variable \$TAILLE_MAX_FIC_REDIR au debut du script de test $NOM_PROG pour rendre possible ce test.\n\n"); @@ -905,7 +988,10 @@ print "##########################################################\n"; - +##################################################################################################### +# dans le cas du script verifier_exeHZ.pl => on signale la fin du test via le fichier $fic_communication +##################################################################################################### +system("echo FIN_TEST > $fic_communication") if(defined $fic_communication); @@ -1088,6 +1174,15 @@ sub lancement_commande { select(undef, undef, undef, 0.5); + ## + ## CAS D UN ARRET FORCE (par exemple Ctrl-c) + ## + if($ARRET_FORCE) { + kill("TERM", @HZpid); + last; + } + + ## ## SURVEILLANCE DE LA TAILLE DU FICHIER ## @@ -1163,9 +1258,14 @@ sub lancement_commande { my $status_calcul; + #si il y a eu un arret force => status = arret force + if($ARRET_FORCE) { + $status_calcul = "arret force"; + } + #si le fichier $fic_com_taille_max existe, cela veut dire qu il y a eu un depassement de la taille maximum autorisee # => status => depassement taille maximum - if(-e $fic_com_taille_max) { + elsif(-e $fic_com_taille_max) { $status_calcul = 'depassement taille maximum'; } diff --git a/doc_procedure_verification.pdf b/doc_procedure_verification.pdf index 52637c738747404ba7fe734764fb028b0442c15d..0ac1e44081274e9696a4594b6f242b843964ef83 100644 GIT binary patch delta 72812 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 N$q%5Xmr{`i{1*wX%hCV< diff --git a/verifier_exeHZ.pl b/verifier_exeHZ.pl index 33bf5e0..76c74b6 100755 --- a/verifier_exeHZ.pl +++ b/verifier_exeHZ.pl @@ -10,6 +10,13 @@ my $NOM_PROG = basename $PROGRAM_NAME; my $format_reel = '[+-]?[\.]?\d+[\.]?\d*(?:[eE][+-]?\d*)?'; +#fichier de communication avec le script ./Perl/test.pl (pour gerer l arret force de la batterie) +# !!!!ATTENTION : tout changement dans ce nom de fichier doit etre reperecute dans le script ./Perl/test.pl +my $FIC_COMMUNICATION = "/tmp/verifier_exeHZ_2_test_$PID.com"; + + + + @@ -158,6 +165,81 @@ if($is_opt_rpt) { + +########################################################################## +########################################################################## +########################################################################## +# +# GESTION D UNE INTERRUPTION (Ctrl-c ou kill -15) +# actions a gerer : +# - arreter proprement le test en cours +# - supprimer d eventuels fichiers temporaires ou inutiles (liste des fichiers a effacer dans la liste @FICHIERS_A_EFFACER) +# - finaliser le fichier rapport de tests en l etat actuel +# +########################################################################## +########################################################################## +########################################################################## + +#variable pour connaitre le nom du rapport a finaliser +# 3 possibilites : option -rpt => $NOM_FIC_RAPPORT = "Rapport/rapport_test_debugECHEC.txt" +# tests rapides => $NOM_FIC_RAPPORT = "Rapport/rapport_test_R.txt" +# tests longs => $NOM_FIC_RAPPORT = "Rapport/rapport_test_L.txt" +# +# (rq : quelque soit la procedure en cours, le fichier rapport temporaire sera toujours "Rapport/rapport_test.txt") +# +my $NOM_FIC_RAPPORT; + +#liste des fichiers a effacer +my @FICHIERS_A_EFFACER = ($FIC_COMMUNICATION); + +#indicateur de test en cours (=0 si pas de test en cours, =1 si test en cours) +my $TEST_EN_COURS = 0; + + +#subroutine arret_force : - sera appelee pour toute interruption Ctrl-c (signal INT) ou kill -15 (signal TERM) +# - ferme le programme ("exit") +sub arret_force { + + #attente de l arret d un eventuel script ./Perl/test.pl en cours + # on attend que le script ./Perl/test.pl ecrive la chaine "FIN_TEST" dans le fichier de communication $FIC_COMMUNICATION + while(-e $FIC_COMMUNICATION and not join(' ', qx(cat $FIC_COMMUNICATION)) =~ /\bFIN_TEST\b/) {select(undef,undef,undef,0.25);} + + #creation du fichier rapport final (en l etat actuel) + system("mv -f Rapport/rapport_test.txt $NOM_FIC_RAPPORT"); + #on signale a l utilisateur que le fichier de rapport a quand meme ete cree (mais on ne l affiche pas) + warn "\n\n\n\n"; + warn " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"; + warn " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"; + warn " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"; + warn "\n"; + warn " --------------------------------------------------------------\n"; + warn " | ARRET FORCE |\n"; + warn " --------------------------------------------------------------\n"; + warn " => le rapport de test $NOM_FIC_RAPPORT a \n"; + warn " quand meme ete cree\n"; + warn "\n"; + warn " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"; + warn " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"; + warn " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"; + warn "\n"; + + + #suppression des eventuels fichiers de la liste @FICHIERS_A_EFFACER + system("rm -rf $_") for @FICHIERS_A_EFFACER; + + #fin du programme + exit; +} + +#capture : Ctrl-c (INT) +$SIG{INT} = \&arret_force; +#capture : kill -15 (TERM) +$SIG{TERM} = \&arret_force; + + + + + ########################################################################## ########################################################################## ########################################################################## @@ -187,6 +269,9 @@ mkdir "./Rapport" if(not -e "./Rapport"); #-------------------------------------------------------------------------- my @LISTE_TESTS_ECHEC; if(defined $opt_rpt_fic_rapport) { + #nom du fichier rapport final : Rapport/rapport_test_debugECHEC.txt + $NOM_FIC_RAPPORT = "Rapport/rapport_test_debugECHEC.txt"; + open(FIC, "<$opt_rpt_fic_rapport"); my $is_test_ECHEC; my $nom_repertoire_test; @@ -234,13 +319,15 @@ if(defined $opt_rpt_fic_rapport) { #lancement des tests (dont le resultat s ecrit dans le rapport temporaire Rapport/rapport_test.txt) foreach my $rep_test (@LISTE_TESTS_ECHEC) { - system("./Perl/test.pl $rep_test $exeHZ"); + system("echo DEBUT_TEST > $FIC_COMMUNICATION"); + system("./Perl/test.pl $rep_test $exeHZ $PID"); + system("rm -f $FIC_COMMUNICATION"); } #creation du fichier rapport final - system("mv -f Rapport/rapport_test.txt Rapport/rapport_test_debugECHEC.txt"); + system("mv -f Rapport/rapport_test.txt $NOM_FIC_RAPPORT"); #affichage du rapport - system("nedit Rapport/rapport_test_debugECHEC.txt &"); + system("nedit $NOM_FIC_RAPPORT \&"); } }#fin option -rpt @@ -251,6 +338,9 @@ if(defined $opt_rpt_fic_rapport) { #lancement des tests rapides (sauf en cas d option -L ou -rpt) #-------------------- unless($is_opt_L or $is_opt_rpt) { + #nom du fichier rapport final : Rapport/rapport_test_R.txt + $NOM_FIC_RAPPORT = "Rapport/rapport_test_R.txt"; + #recherche des tests Test_R dans l arborescence (utilisation de find et suppression de chaque retour a la ligne avec chomp) my @LISTE_TESTS_R = map {chomp; $_} qx(find . -name "Test_R*" -type d); @@ -276,13 +366,15 @@ unless($is_opt_L or $is_opt_rpt) { #lancement des tests (dont le resultat s ecrit dans le rapport temporaire Rapport/rapport_test.txt) foreach my $rep_test (@LISTE_TESTS_R) { - system("./Perl/test.pl $rep_test $exeHZ"); + system("echo DEBUT_TEST > $FIC_COMMUNICATION"); + system("./Perl/test.pl $rep_test $exeHZ $PID"); + system("rm -f $FIC_COMMUNICATION"); } #creation du fichier rapport final - system("mv -f Rapport/rapport_test.txt Rapport/rapport_test_R.txt"); + system("mv -f Rapport/rapport_test.txt $NOM_FIC_RAPPORT"); #affichage du rapport - system("nedit Rapport/rapport_test_R.txt \&"); + system("nedit $NOM_FIC_RAPPORT \&"); } } @@ -293,6 +385,9 @@ unless($is_opt_L or $is_opt_rpt) { #lancement des tests longs (sauf en cas d option -R ou -rpt) #-------------------- unless($is_opt_R or $is_opt_rpt) { + #nom du fichier rapport final : Rapport/rapport_test_L.txt + $NOM_FIC_RAPPORT = "Rapport/rapport_test_L.txt"; + #recherche des tests Test_L dans l arborescence (utilisation de find et suppression de chaque retour a la ligne avec chomp) my @LISTE_TESTS_L = map {chomp; $_} qx(find . -name "Test_L*" -type d); @@ -318,13 +413,15 @@ unless($is_opt_R or $is_opt_rpt) { #lancement des tests (dont le resultat s ecrit dans le rapport temporaire Rapport/rapport_test.txt) foreach my $rep_test (@LISTE_TESTS_L) { - system("./Perl/test.pl $rep_test $exeHZ"); + system("echo DEBUT_TEST > $FIC_COMMUNICATION"); + system("./Perl/test.pl $rep_test $exeHZ $PID"); + system("rm -f $FIC_COMMUNICATION"); } #creation du fichier rapport final - system("mv -f Rapport/rapport_test.txt Rapport/rapport_test_L.txt"); + system("mv -f Rapport/rapport_test.txt $NOM_FIC_RAPPORT"); #affichage du rapport - system("nedit Rapport/rapport_test_L.txt \&"); + system("nedit $NOM_FIC_RAPPORT \&"); } }