2019-06-21 15:49:37 +00:00
#! /bin/bash
results_file = $1
2019-06-25 10:50:19 +00:00
testfile = $2
fail_build = 0
if [ ! -f " $results_file " ] ; then
echo " ERROR: Specified results file ${ results_file } doesn't exist. "
fail_build = 1
fi
if [ ! -f " $testfile " ] ; then
echo " ERROR: Specified testfile ${ testfile } doesn't exist. "
fail_build = 1
fi
[ " $fail_build " = 0 ] || exit 1
2019-06-21 15:49:37 +00:00
passed_but_expected_fail = $( grep ' # TODO passed but expected fail' ${ results_file } | sed -E 's/^ok [0-9]+ (\(expected fail\) )?//' | sed -E 's/( \([0-9]+ subtests\))? # TODO passed but expected fail$//' )
tests_to_add = ""
already_in_testfile = ""
while read -r test_id; do
2019-07-05 11:42:23 +00:00
[ " ${ test_id } " = "" ] && continue
2019-06-25 10:50:19 +00:00
grep " ${ test_id } " " ${ testfile } " > /dev/null 2>& 1
2019-06-21 15:49:37 +00:00
if [ " $? " != "0" ] ; then
tests_to_add = " ${ tests_to_add } ${ test_id } \n "
fail_build = 1
else
already_in_testfile = " ${ already_in_testfile } ${ test_id } \n "
fi
done <<< " ${ passed_but_expected_fail } "
if [ -n " ${ tests_to_add } " ] ; then
echo "ERROR: The following passed tests are not present in testfile. Please append them to the file:"
echo -e " ${ tests_to_add } "
fi
if [ -n " ${ already_in_testfile } " ] ; then
echo "WARN: Tests in testfile still marked as expected fail:"
echo -e " ${ already_in_testfile } "
fi
exit ${ fail_build }