mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-05-27 02:54:27 +00:00
Improvements to run_regressions.sh options
* Add q to quit * Loop if an invalid command is entered, instead of continuing As part of this I converted the large if/elif/elif/.../fi to a case statement, a bit easier to read.
This commit is contained in:
parent
7a8c7b5b25
commit
45c74a628b
@ -69,53 +69,73 @@ check_result() {
|
||||
cat "${REGRESSION}/diffs/${TEST}"
|
||||
echo "======================================="
|
||||
fi
|
||||
if [ "${ACCEPT_ALL}" = "" ] ; then
|
||||
read -p "[${TEST}] Accept new result [e/s/r/v/f/m/x/y/w/N/?]? " ACCEPT
|
||||
else
|
||||
ACCEPT=${ACCEPT_ALL}
|
||||
fi
|
||||
if [ "${ACCEPT}" = "y" ] ; then
|
||||
cp "${RESULTS}/${TEST}" "${REGRESSION}/${TEST}.result"
|
||||
elif [ "${ACCEPT}" = "x" ]; then
|
||||
echo "./dav_test --dsn '${DSN}' ${WEBHOST} ${ALTHOST} --suite '${SUITE}' --case '${TEST}' --debug"
|
||||
if [ -z "$IS_CI" ]; then exit 2; fi
|
||||
elif [ "${ACCEPT}" = "v" ]; then
|
||||
echo "Showing test $REGRESSION/${TEST}.test"
|
||||
cat "$REGRESSION/${TEST}.test"
|
||||
return 2
|
||||
elif [ "${ACCEPT}" = "s" ]; then
|
||||
echo "Displaying side-by-side diff of ${TEST} results"
|
||||
sdiff --text "${REGRESSION}/${TEST}.result" "${RESULTS}/${TEST}" | less -R
|
||||
return 3
|
||||
elif [ "${ACCEPT}" = "w" ]; then
|
||||
echo "Displaying colourized diff of ${TEST} results"
|
||||
wdiff -n -w $'\033[30;41m' -x $'\033[0m' -y $'\033[30;42m' -z $'\033[0m' "${REGRESSION}/${TEST}.result" "${RESULTS}/${TEST}" | less -R
|
||||
return 3
|
||||
elif [ "${ACCEPT}" = "m" ]; then
|
||||
echo "Displaying side-by-side 'meld' of ${TEST} results"
|
||||
$MELD "${REGRESSION}/${TEST}.result" "${RESULTS}/${TEST}"
|
||||
return 3
|
||||
elif [ "${ACCEPT}" = "f" ]; then
|
||||
echo "Showing full details of ${TEST}"
|
||||
cat "${REGRESSION}/${TEST}.test"
|
||||
echo "Showing full result of ${TEST}"
|
||||
cat "${RESULTS}/${TEST}"
|
||||
return 3
|
||||
elif [ "${ACCEPT}" = "e" ]; then
|
||||
echo "Editing test $REGRESSION/${TEST}.test"
|
||||
vi "$REGRESSION/${TEST}.test"
|
||||
return 3
|
||||
elif [ "${ACCEPT}" = "r" ]; then
|
||||
echo "Rerunning test ${TEST}"
|
||||
return 1
|
||||
elif [ "${ACCEPT}" = "?" ]; then
|
||||
cat <<EOF
|
||||
valid_answer=0
|
||||
|
||||
while [ $valid_answer -eq 0 ]; do
|
||||
if [ "${ACCEPT_ALL}" = "" ] ; then
|
||||
read -p "[${TEST}] Accept new result [e/s/r/v/f/m/x/y/w/N/q/?]? " ACCEPT
|
||||
else
|
||||
ACCEPT=${ACCEPT_ALL}
|
||||
fi
|
||||
|
||||
case $ACCEPT in
|
||||
y)
|
||||
cp "${RESULTS}/${TEST}" "${REGRESSION}/${TEST}.result"
|
||||
valid_answer=1
|
||||
;;
|
||||
x)
|
||||
echo "./dav_test --dsn '${DSN}' ${WEBHOST} ${ALTHOST} --suite '${SUITE}' --case '${TEST}' --debug"
|
||||
if [ -z "$IS_CI" ]; then exit 2; fi
|
||||
valid_answer=1
|
||||
;;
|
||||
v)
|
||||
echo "Showing test $REGRESSION/${TEST}.test"
|
||||
cat "$REGRESSION/${TEST}.test"
|
||||
return 2
|
||||
;;
|
||||
s)
|
||||
echo "Displaying side-by-side diff of ${TEST} results"
|
||||
sdiff --text "${REGRESSION}/${TEST}.result" "${RESULTS}/${TEST}" | less -R
|
||||
return 3
|
||||
;;
|
||||
w)
|
||||
echo "Displaying colourized diff of ${TEST} results"
|
||||
wdiff -n -w $'\033[30;41m' -x $'\033[0m' -y $'\033[30;42m' -z $'\033[0m' "${REGRESSION}/${TEST}.result" "${RESULTS}/${TEST}" | less -R
|
||||
return 3
|
||||
;;
|
||||
m)
|
||||
echo "Displaying side-by-side 'meld' of ${TEST} results"
|
||||
$MELD "${REGRESSION}/${TEST}.result" "${RESULTS}/${TEST}"
|
||||
return 3
|
||||
;;
|
||||
f)
|
||||
echo "Showing full details of ${TEST}"
|
||||
cat "${REGRESSION}/${TEST}.test"
|
||||
echo "Showing full result of ${TEST}"
|
||||
cat "${RESULTS}/${TEST}"
|
||||
return 3
|
||||
;;
|
||||
e)
|
||||
echo "Editing test $REGRESSION/${TEST}.test"
|
||||
vi "$REGRESSION/${TEST}.test"
|
||||
return 3
|
||||
;;
|
||||
r)
|
||||
echo "Rerunning test ${TEST}"
|
||||
return 1
|
||||
;;
|
||||
q)
|
||||
exit
|
||||
;;
|
||||
'?')
|
||||
cat <<EOF
|
||||
Options:
|
||||
|
||||
e = edit test (vi)
|
||||
f = show full details of test and result
|
||||
m = side-by-side 'meld'
|
||||
N = run next test (default)
|
||||
q = quit
|
||||
r = re-run test
|
||||
s = side-by-side diff of actual and expected result
|
||||
v = show test
|
||||
@ -124,8 +144,13 @@ Options:
|
||||
y = make new result the expected result
|
||||
|
||||
EOF
|
||||
return 3
|
||||
fi
|
||||
return 3
|
||||
;;
|
||||
*)
|
||||
echo "Invalid command, please try again."
|
||||
;;
|
||||
esac
|
||||
done
|
||||
else
|
||||
report_test_success
|
||||
echo "Test ${TEST} passed OK!"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user