2012-10-05 12:58:34 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
2018-09-13 15:21:48 +02:00
|
|
|
declare -i total=0
|
|
|
|
declare -i total_xfail=0
|
|
|
|
declare -i failed=0
|
|
|
|
declare -i xpassed=0
|
|
|
|
declare -a failed_tests=()
|
|
|
|
declare -a xpassed_tests=()
|
2012-10-05 12:58:34 +02:00
|
|
|
|
|
|
|
# Parse TRS Files
|
2015-09-08 16:05:14 +02:00
|
|
|
tosort=""
|
2012-10-05 12:58:34 +02:00
|
|
|
for file in $1 ; do
|
|
|
|
# Find number of tests run in trs file
|
2018-09-13 15:21:48 +02:00
|
|
|
((total += $(grep ^:number-tests: "$file" | cut -d: -f3)))
|
2012-10-05 12:58:34 +02:00
|
|
|
|
|
|
|
# Find number of tests failed in trs file
|
2018-09-13 15:21:48 +02:00
|
|
|
numfailed=$(grep ^:number-failed-tests: "$file" | cut -d: -f3)
|
|
|
|
if ((numfailed != 0)) ; then
|
|
|
|
((failed += numfailed))
|
|
|
|
failed_tests+=($(grep ^:list-of-failed-tests: "$file" | cut -d: -f3))
|
2012-10-05 12:58:34 +02:00
|
|
|
fi
|
2015-09-08 16:05:14 +02:00
|
|
|
|
2018-09-13 15:21:48 +02:00
|
|
|
time=$(grep ^:elapsed-time: "$file" | cut -d: -f3)
|
|
|
|
tosort="$tosort| $file - $time:"
|
2012-10-05 12:58:34 +02:00
|
|
|
done
|
2018-09-13 15:21:48 +02:00
|
|
|
((passed = total - failed))
|
2012-10-05 12:58:34 +02:00
|
|
|
|
2012-11-07 12:02:35 +01:00
|
|
|
# Parse XFAIL TRS Files
|
|
|
|
for file in $2 ; do
|
|
|
|
# Find number of tests run in xfail trs file
|
2018-09-13 15:21:48 +02:00
|
|
|
xfail=$(grep ^:number-tests: "$file" | cut -d: -f3)
|
|
|
|
((total_xfail += xfail))
|
2012-11-07 12:02:35 +01:00
|
|
|
|
|
|
|
# Find number of tests failed in trs file
|
2018-09-13 15:21:48 +02:00
|
|
|
numfailed=$(grep ^:number-failed-tests: "$file" | cut -d: -f3)
|
|
|
|
if ((numfailed != xfail)) ; then
|
|
|
|
((xpassed += xfail - numfailed))
|
|
|
|
xpassed_tests+=($(grep ^:list-of-passed-tests: "$file" | cut -d: -f3))
|
2012-11-07 12:02:35 +01:00
|
|
|
fi
|
2015-09-08 16:05:14 +02:00
|
|
|
|
2018-09-13 15:21:48 +02:00
|
|
|
time=$(grep ^:elapsed-time: "$file" | cut -d: -f3)
|
|
|
|
tosort="$tosort| $file - $time:"
|
2012-11-07 12:02:35 +01:00
|
|
|
done
|
2018-09-13 15:21:48 +02:00
|
|
|
((xfailed = total_xfail - xpassed))
|
|
|
|
((total += total_xfail))
|
2012-11-07 12:02:35 +01:00
|
|
|
|
2018-09-13 15:21:48 +02:00
|
|
|
timing=$(echo "$tosort" | tr ":" "\n" | sort -rn -k4 | sed -e 's/$/:/' | head -n10)
|
2015-09-08 16:05:14 +02:00
|
|
|
|
2012-10-05 12:58:34 +02:00
|
|
|
# Determine if we are parsing Matlab or Octave trs files
|
2018-09-13 15:21:48 +02:00
|
|
|
if (($(grep -c '.m.trs' <<< "$1") == 0)); then
|
|
|
|
prg=OCTAVE
|
|
|
|
outfile=run_test_octave_output.txt
|
2012-10-05 12:58:34 +02:00
|
|
|
else
|
2018-09-13 15:21:48 +02:00
|
|
|
prg=MATLAB
|
|
|
|
outfile=run_test_matlab_output.txt
|
2012-10-05 12:58:34 +02:00
|
|
|
fi
|
|
|
|
|
2018-09-14 15:19:37 +02:00
|
|
|
# Print Output (to stdout and to a file)
|
2018-09-13 15:21:48 +02:00
|
|
|
{
|
|
|
|
echo '================================'
|
|
|
|
echo "DYNARE MAKE CHECK $prg RESULTS"
|
|
|
|
echo '================================'
|
|
|
|
echo "| TOTAL: $total"
|
|
|
|
echo "| PASS: $passed"
|
|
|
|
echo "| FAIL: $failed"
|
|
|
|
echo "| XFAIL: $xfailed"
|
|
|
|
echo "| XPASS: $xpassed"
|
|
|
|
if ((failed > 0)) ; then
|
|
|
|
echo '|'
|
|
|
|
echo '| LIST OF FAILED TESTS:'
|
|
|
|
for file in "${failed_tests[@]}" ; do
|
|
|
|
echo "| * $file"
|
|
|
|
done
|
2012-10-05 12:58:34 +02:00
|
|
|
fi
|
2018-09-13 15:21:48 +02:00
|
|
|
if ((xpassed > 0)) ; then
|
|
|
|
echo '|'
|
|
|
|
echo '| LIST OF XPASSED TESTS:'
|
|
|
|
for file in "${xpassed_tests[@]}" ; do
|
|
|
|
echo "| * $file"
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
echo '|'
|
|
|
|
echo '| LIST OF 10 SLOWEST TESTS:'
|
|
|
|
if [[ $prg == MATLAB ]]; then
|
|
|
|
timing=$(sed 's/\.m\.trs/\.mod/g' <<< "$timing")
|
2012-11-07 12:02:35 +01:00
|
|
|
else
|
2018-09-13 15:21:48 +02:00
|
|
|
timing=$(sed 's/\.o\.trs/\.mod/g' <<< "$timing")
|
2012-11-07 12:02:35 +01:00
|
|
|
fi
|
2018-09-13 15:21:48 +02:00
|
|
|
echo "$timing" | tr ':' '\n' | sed -e 's/^[ \t]*//;/^$/d;s/^|[ ]/| * /'
|
|
|
|
echo
|
2018-09-14 15:19:37 +02:00
|
|
|
} | tee $outfile
|
2018-09-13 16:05:16 +02:00
|
|
|
|
|
|
|
# Exit with error code if some tests failed
|
|
|
|
((failed + xpassed == 0))
|