1#! /usr/bin/env bash 2# Lancement d'un cas test du repertoire dgibi. 3# cette version est destinee a etre utilisee par Hudson et make check 4# sortie des resultats au format xml. 5 6 7function printUsage() 8{ 9cat <<EOF 10Usage : 11$0 <ktest>.dgibi 12La sortie standard est redirigée vers <ktest>.mess 13Le fichier resultat est cree dans TEST-<ktest>-castem.xml 14 15EOF 16} 17 18 19function control_c() 20{ 21 echo -en "\n*** Exiting ***\n" 22 exit $? 23} 24 25# trap keyboard interrupt (control-c) 26trap control_c SIGINT 27 28function exec_castem() { 29 @castem_exe@ @CMAKE_CURRENT_SOURCE_DIR@/$1.dgibi &> ${1}.mess 30 if [ -f fort.3 ]; then \rm -f fort.3; fi 31 if [ -f fort.98 ]; then \rm -f fort.98; fi 32 if [ -f fort.25 ]; then mv fort.25 ${1}.lgi; fi 33 if [ -f fort.24 ]; then mv fort.24 ${1}.ps; fi 34 if [ -f fort.97 ]; then mv fort.97 ${1}.mif; fi 35} 36 37## Vérification du nb de parametres d'appel au script 38if [ $# -ne 1 ]; then 39 printUsage 40 exit 1 41fi 42 43ktest=$1 44 45if [ ! -f @CMAKE_CURRENT_SOURCE_DIR@/${ktest}.dgibi ] ; then 46 echo "@CMAKE_CURRENT_SOURCE_DIR@/${ktest}.dgibi not found. Bailing out..." 47 exit 1 48fi 49 50export CASTEM=@CASTEMHOME@ 51export PATH=@CASTEMHOME@/bin:$PATH 52export LD_LIBRARY_PATH=@CASTEMHOME@/lib:$LD_LIBRARY_PATH 53 54exec_castem $ktest; 55 56# Fichier de sortie 57XML_FILE="TEST-${ktest}-castem.xml" 58 59#echo "saving to $XML_FILE" 60 61# Entete du fichier XML 62echo '<?xml version="1.0" encoding="ascii"?>' > $XML_FILE 63echo '<testsuite name="CastemTest">' >> $XML_FILE 64 65# Le dgibi est copié puis modifié pour que les erreurs soient fatales 66# (la copie evite de faire apparaitre un statut svn modifié). 67 68# get time and error status 69TIME=`grep -a user ${ktest}.mess | grep system | grep elapsed | sed 's/user.*//'` 70ERROR=`grep -a 'ARRET DU PROGRAMME GIBI NIVEAU' ${ktest}.mess | sed 's/.*ERREUR:\s*//' | sed 's/\s.*//'` 71ERROR_MSG=`tail -20 ${ktest}.mess | recode -f ascii | sed s'/&/&/'` 72 73if [ -z "$ERROR" ] ; then ERROR=1 ; fi 74if [ "$ERROR" -eq 0 ] ; then 75 echo "<testcase classname=\"CastemTestCase\" name=\"$ktest\" time=\"$TIME\"/>" >> $XML_FILE 76 echo '</testsuite>' >> $XML_FILE 77 exit 0 78else 79 echo "<testcase classname=\"CastemTestCase\" name=\"$ktest\" time=\"$TIME\">" >> $XML_FILE 80 echo '<failure type="error">' >> $XML_FILE 81 echo "$ERROR_MSG" >> $XML_FILE 82 echo '</failure></testcase>' >> $XML_FILE 83 echo '</testsuite>' >> $XML_FILE 84 exit 1 85fi 86