runtime(syntax-tests): Apply stronger synchronisation between buffers
The current lightweight synchronisation with ":redraw" needs further reinforcement in the light of v9.1.1110. And, with v9.1.0820, make another synchronisation point _before_ the first (or only) screenful is dumped. Also add a script to regenerate all screendumps. closes: #16632 Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
ff159253eb
commit
7003a5d63f
126
runtime/syntax/testdir/tools/regenerate_screendumps.sh
Executable file
126
runtime/syntax/testdir/tools/regenerate_screendumps.sh
Executable file
@ -0,0 +1,126 @@
|
||||
#!/bin/sh -e
|
||||
#
|
||||
# The following steps are to be taken by this script:
|
||||
# 1) Remove all files from the "dumps" directory.
|
||||
# 2) Generate screendumps for each syntax test and each self-test.
|
||||
# 3) Unconditionally move each batch of screendumps to "dumps"; if generated
|
||||
# files differ on repeated runs, always remove these files from "dumps".
|
||||
# 4) Repeat steps 2) and 3) once or as many times as requested with the "$1"
|
||||
# argument.
|
||||
# 5) Summarise any differences.
|
||||
#
|
||||
# Provided that "git difftool" is set up (see src/testdir/commondumps.vim),
|
||||
# run "git difftool HEAD -- '**/*.dump'" to collate tracked and generated
|
||||
# screendumps.
|
||||
|
||||
case "$1" in
|
||||
-h | --help)
|
||||
printf >&2 "Usage: [time VIM_SYNTAX_TEST_LOG=/tmp/log] $0 [1 | 2 | ...]\n"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
tries="${1:-1}"
|
||||
shift $#
|
||||
|
||||
case "$tries" in
|
||||
0* | *[!0-9]*)
|
||||
exit 80
|
||||
;;
|
||||
esac
|
||||
|
||||
test -x "$(command -v make)" || exit 81
|
||||
test -x "$(command -v git)" || exit 82
|
||||
|
||||
case "$(git status --porcelain=v1)" in
|
||||
'') ;;
|
||||
*) printf >&2 'Resolve ALL changes before proceeding.\n'
|
||||
exit 83
|
||||
;;
|
||||
esac
|
||||
|
||||
templet=$(printf "\t\t\t\t$(tput rev)%%s$(tput sgr0)") || exit 84
|
||||
cd "$(dirname "$0")/../../../syntax" || exit 85
|
||||
set +f
|
||||
rm testdir/dumps/*.dump || exit 86
|
||||
spuriosities=''
|
||||
|
||||
# Because the clean target of Make will be executed before each syntax test,
|
||||
# this environment variable needs to be pointed to an existing file that is
|
||||
# created in a directory not affectable by the target.
|
||||
if test -w "$VIM_SYNTAX_TEST_LOG"
|
||||
then
|
||||
log=-e VIM_SYNTAX_TEST_LOG="$VIM_SYNTAX_TEST_LOG"
|
||||
else
|
||||
log=
|
||||
fi
|
||||
|
||||
for f in testdir/input/*.*
|
||||
do
|
||||
test ! -d "$f" || continue
|
||||
b=$(basename "$f")
|
||||
i=0
|
||||
printf "$templet\n\n" "$b"
|
||||
|
||||
while test "$i" -le "$tries"
|
||||
do
|
||||
make $log clean "$b" test || :
|
||||
|
||||
case "$i" in
|
||||
0) mv testdir/failed/*.dump testdir/dumps/
|
||||
;;
|
||||
*) case "$(printf '%s' testdir/failed/*.dump)" in
|
||||
testdir/failed/\*.dump)
|
||||
# (Repeatable) success.
|
||||
;;
|
||||
*) spuriosities="${spuriosities}${b} "
|
||||
p=${b%.*}
|
||||
rm -f testdir/dumps/"$p"_[0-9][0-9].dump \
|
||||
testdir/dumps/"$p"_[0-9][0-9][0-9].dump \
|
||||
testdir/dumps/"$p"_[0-9][0-9][0-9][0-9].dump
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
i=$(($i + 1))
|
||||
sleep 1
|
||||
done
|
||||
done
|
||||
|
||||
# For a 20-file set, initially fail for a series of: 1-6, 7-12, 13-18, 19-20.
|
||||
tries=$(($tries + 3))
|
||||
i=0
|
||||
|
||||
while test "$i" -le "$tries"
|
||||
do
|
||||
make $log clean self-testing test || :
|
||||
|
||||
case "$i" in
|
||||
[0-3]) mv testdir/failed/dots_*.dump testdir/dumps/
|
||||
;;
|
||||
*) case "$(printf '%s' testdir/failed/*.dump)" in
|
||||
testdir/failed/\*.dump)
|
||||
# (Repeatable) success.
|
||||
;;
|
||||
*) spuriosities="${spuriosities}dots_xy "
|
||||
rm -f testdir/dumps/dots_*.dump
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
sleep 1
|
||||
i=$(($i + 1))
|
||||
done
|
||||
|
||||
make clean
|
||||
git diff --compact-summary
|
||||
|
||||
if test -n "$spuriosities"
|
||||
then
|
||||
printf '\n%s\n' "$spuriosities"
|
||||
exit 87
|
||||
fi
|
||||
|
||||
# vim:sw=8:ts=8:noet:nosta:
|
||||
Reference in New Issue
Block a user