diff --git a/scripts/run-morph-tester.sh.in b/scripts/run-morph-tester.sh.in index c051b8f3..92e8c427 100755 --- a/scripts/run-morph-tester.sh.in +++ b/scripts/run-morph-tester.sh.in @@ -35,6 +35,7 @@ if ! test $# -ge 7 ; then echo " tested. Possible values are 'all' and 'specified'." echo " SRCDIR srcdir from automake" echo " TOOLKIT hfst or xfst or such" + echo " TOTALFILE will contain test totals, if empty mktemp" echo " LEADTEXT is typically the number of the test in a test set loop." echo echo "LEADTEXT can contain spaces, it is effectively everything after the" @@ -52,7 +53,11 @@ fsttest=$5 srcdir=$6 tk=$7 shift 7 -leadtext="$@" +if test -f $1 ; then + testtotalsfile=$1 + shift +fi +leadtext="$*" testfileshort=$(echo "$(basename \ $(dirname $testfile))/$(basename $testfile)") @@ -72,7 +77,9 @@ generatorfile=$fstdir/generator-$transducer bare_fst_file=$fstdir/$transducer pythonbin=@PYTHON@ runtests="$pythonbin $relpath/morph-test.py" -testtotalsfile=$(mktemp -t giella-yaml_test.XXXXXXXXXXX) +if test -z "$testtotalsfile" ; then + testtotalsfile=$(mktemp -t giella-yaml_test.XXXXXXXXXXX) +fi # Use autotools mechanisms to only run the configured fst types in the tests: fsttype=$tk diff --git a/scripts/run-yaml-testcases.sh.in b/scripts/run-yaml-testcases.sh.in index 49ef9028..19f711b5 100755 --- a/scripts/run-yaml-testcases.sh.in +++ b/scripts/run-yaml-testcases.sh.in @@ -111,7 +111,8 @@ for file in $testfiles; do (( i += 1 )) leadtext="YAML test $i: " "$relpath/run-morph-tester.sh" \ - "$transducer" "$file" "$relpath" "$halftest" "all" "$srcdir" "$tk" "$leadtext" + "$transducer" "$file" "$relpath" "$halftest" "all" "$srcdir" "$tk" \ + "$testtotalsfile" "$leadtext" rv=$? if test $rv = 77 ; then exit 77 @@ -179,7 +180,8 @@ for file in ${filepattern[@]}; do (( i += 1 )) leadtext="YAML test $i: " "$relpath/run-morph-tester.sh" \ - "$transducer" "$file" "$relpath" "$halftest" specified "$srcdir" "$tk" "$leadtext" + "$transducer" "$file" "$relpath" "$halftest" specified "$srcdir"\ + "$tk" "$testtotalsfile" "$leadtext" rv=$? if test $rv = 77 ; then exit 77 @@ -189,11 +191,11 @@ for file in ${filepattern[@]}; do done totalpasses=$( cat "$testtotalsfile" | tr ' ' '\n' | cut -d'/' -f1 \ - | tr '\n' ' ' | sed 's/ / + /g' | sed 's/ + $//' | bc ) + | tr '\n' ' ' | sed 's/ / + /g' | sed 's/ + $/\n/' | bc ) totalfails=$( cat "$testtotalsfile" | tr ' ' '\n' | cut -d'/' -f2 \ - | tr '\n' ' ' | sed 's/ / + /g' | sed 's/ + $//' | bc ) + | tr '\n' ' ' | sed 's/ / + /g' | sed 's/ + $/\n/' | bc ) totaltotals=$( cat "$testtotalsfile" | tr ' ' '\n' | cut -d'/' -f3 \ - | tr '\n' ' ' | sed 's/ / + /g' | sed 's/ + $//' | bc ) + | tr '\n' ' ' | sed 's/ / + /g' | sed 's/ + $/\n/' | bc ) red="\033[1;31m" green="\033[0;32m"