test_all.sh: configure fork test timeout
Example output: ``` $ ./test_all.sh 2>/dev/null PASS abfrmblr PASS AbstractKamen PASS ags313 PASS alesj PASS algirdasrascius PASS anandmattikopp PASS arjenvaneerde FAIL armandino TIME artpar PASS artsiomkorzun PASS asun PASS baseline PASS berry120 PASS bjhara PASS charlibot PASS coolmineman PASS couragelee PASS criccomini PASS davecom PASS davery22 PASS ddimtirov PASS deemkeen PASS ebarlas PASS entangled90 FAIL fatroom PASS felix19350 PASS filiphr PASS flippingbits PASS fragmede PASS gabrielreid PASS gamlerhart PASS gnmathur PASS hchiorean FAIL hundredwatt PASS imrafaelmerino PASS isolgpus PASS itaske PASS iziamos PASS japplis PASS jgrateron PASS jotschi PASS kevinmcmurtrie PASS kgeri PASS khmarbaise PASS kuduwa-keshavram PASS kumarsaurav123 FAIL lawrey PASS maeda6uiui PASS MeanderingProgrammer PASS merykitty FAIL moysesb PASS mudit-saxena PASS obourgain PASS padreati PASS palmr PASS pedestrianlove PASS phd3 PASS raipc PASS rby PASS richardstartin FAIL roman-r-m PASS royvanrijn PASS rprabhu PASS santanu PASS seijikun PASS semotpan PASS spullara PASS thomaswue PASS truelive FAIL twobiers PASS Ujjwalbharti PASS yavuztas PASS yehwankim23 FAIL yemreinci PASS zerninv ```
This commit is contained in:
parent
3144c9c595
commit
6761d784a2
39
test_all.sh
39
test_all.sh
@ -33,14 +33,47 @@ if [ "$INPUT" = "-h" ] || [ "$#" -gt 1 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -t 1 ]; then
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
RESET='\033[0m'
|
||||
else
|
||||
GREEN=""
|
||||
RED=""
|
||||
RESET=""
|
||||
fi
|
||||
|
||||
WITH_TIMEOUT=""
|
||||
if [ -x "$(command -v timeout)" ]; then
|
||||
WITH_TIMEOUT="timeout -s KILL 5s"
|
||||
elif [ -x "$(command -v gtimeout)" ]; then # MacOS from `brew install coreutils`
|
||||
WITH_TIMEOUT="gtimeout -s KILL 5s"
|
||||
else
|
||||
echo "$0: timeout command not available, tests may run indefinitely long." 1>&2
|
||||
fi
|
||||
|
||||
for impl in $(ls calculate_average_*.sh | sort); do
|
||||
noext="${impl%%.sh}"
|
||||
fork=${noext##calculate_average_}
|
||||
|
||||
if output=$(./test.sh "$fork" "$INPUT" 2>&1); then
|
||||
echo "PASS $fork"
|
||||
# ./test.sh calls ./prepare_$fork.sh e.g. to build native image
|
||||
# which may take some time.
|
||||
# Here we run it upfront, assuming that prepare result is cached
|
||||
# to avoid timeout due to long preparation.
|
||||
if [ -f "./prepare_$fork.sh" ]; then
|
||||
if ! output=$("./prepare_$fork.sh" 2>&1); then
|
||||
echo "$output" 1>&2
|
||||
echo "FAIL $fork"
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
if output=$($WITH_TIMEOUT ./test.sh "$fork" "$INPUT" 2>&1); then
|
||||
echo -e "${GREEN}PASS${RESET} $fork"
|
||||
elif [ $? -eq 137 ]; then
|
||||
echo -e "${RED}TIME${RESET} $fork"
|
||||
else
|
||||
echo "FAIL $fork"
|
||||
echo "$output" 1>&2
|
||||
echo -e "${RED}FAIL${RESET} $fork"
|
||||
fi
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user