misc, test: Some quality of life improvements

Add a fold in github actions output around the ragel build.

Run the commit-message test locally, so that error can be detected
before pushing to CI. We also now accept two-letter topics.

Some minor improvement in the testing scripts.
This commit is contained in:
Felix Frank
2024-03-01 19:28:38 +01:00
committed by James Shubin
parent 29ec867ac7
commit edcb04d1a9
4 changed files with 23 additions and 11 deletions

View File

@@ -10,11 +10,12 @@ echo running "$0"
ROOT=$(dirname "${BASH_SOURCE}")/..
cd "${ROOT}" || exit 1
commit_title_regex='^\([a-z0-9]\(\(, \)\|[a-z0-9]\)\+[a-z0-9]: \)\+[A-Z0-9][^:]\+[^:.]$'
commit_title_regex='^\([a-z0-9]\(\(, \)\|[a-z0-9]\)*[a-z0-9]: \)\+[A-Z0-9][^:]\+[^:.]$'
# Testing the regex itself.
# Correct patterns.
[[ $(echo "ci: Bar" | grep -c "$commit_title_regex") -eq 1 ]]
[[ $(echo "foo, bar: Bar" | grep -c "$commit_title_regex") -eq 1 ]]
[[ $(echo "foo: Bar" | grep -c "$commit_title_regex") -eq 1 ]]
[[ $(echo "f1oo, b2ar: Bar" | grep -c "$commit_title_regex") -eq 1 ]]
@@ -183,5 +184,13 @@ then
test_commit_message_common_bugs $commit
done
fi
else # assume local branch
commits=$(git log --no-merges --format=%H origin/master..HEAD)
for commit in $commits
do
test_commit_message $commit
test_commit_message_body $commit
test_commit_message_common_bugs $commit
done
fi
echo 'PASS'

View File

@@ -26,20 +26,20 @@ failures=""
count=0
# loop through tests
for i in $DIR/test/shell/*.sh; do
[ -x "$i" ] || continue # file must be executable
ii=`basename "$i"` # short name
for test_script in $DIR/test/shell/*.sh; do
[ -x "$test_script" ] || continue # file must be executable
test_name=`basename "$test_script"` # short name
# if ARGV has test names, only execute those!
if [ "$1" != '' ]; then
[ "$ii" != "$1" ] && continue
[ "$test_name" != "$1" ] && continue
fi
cd $DIR/test/shell/ >/dev/null # shush the cd operation
mkdir -p '/tmp/mgmt/' # directory for mgmt to put files in
#echo "Running: $ii"
#echo "Running: $test_name"
export MGMT_TMPDIR='/tmp/mgmt/' # we can add to env like this
count=`expr $count + 1`
set +o errexit # don't kill script on test failure
out=$($i 2>&1) # run and capture stdout & stderr
out=$($test_script 2>&1) # run and capture stdout & stderr
e=$? # save exit code
set -o errexit # re-enable killing on script failure
cd - >/dev/null
@@ -48,12 +48,12 @@ for i in $DIR/test/shell/*.sh; do
fi
rm -rf '/tmp/mgmt/' # clean up after test
if [ $e -ne 0 ]; then
echo -e "FAIL\t$ii" # fail
echo -e "FAIL\t$test_name" # fail
# store failures...
failures=$(
# prepend previous failures if any
[ -n "${failures}" ] && echo "$failures" && echo "$LINE"
echo "Script: $ii"
echo "Script: $test_name"
# if we see 124, it might be the exit value of timeout!
[ $e -eq 124 ] && echo "Exited: $e (timeout?)" || echo "Exited: $e"
if [ "$out" = "" ]; then
@@ -64,7 +64,7 @@ for i in $DIR/test/shell/*.sh; do
fi
)
else
echo -e "ok\t$ii" # pass
echo -e "ok\t$test_name" # pass
fi
done