blob: 3a0a94b6bfc7f419463f6230a3ccbc9adce693ae (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
#!/usr/bin/env bash
main() {(
local separator="================================================================================"
local oldesttest=
if test "$1" = "--oldesttest" ; then
shift
oldesttest=1
fi
local root="$1" ; shift
local nvim_prg="$1" ; shift
local test_name="$1" ; shift
local tlog="$test_name.tlog"
export NVIM_TEST_ARGC=$#
local arg
local i=0
# shellcheck disable=SC2034 # (unused "arg", used in "eval").
for arg ; do
eval "export NVIM_TEST_ARG$i=\"\$arg\""
i=$(( i+1 ))
done
export CI_DIR="$root/ci"
BUILD_DIR="$(dirname "$nvim_prg")/.."
export BUILD_DIR
export FAILED=0
. "$CI_DIR/common/suite.sh"
. "$CI_DIR/common/test.sh"
# Redirect XDG_CONFIG_HOME so users local config doesn't interfere
export XDG_CONFIG_HOME="$root"
export VIMRUNTIME="$root/runtime"
if ! "$nvim_prg" \
-u NONE -i NONE \
--headless \
--cmd 'set shortmess+=I noswapfile noundofile nomore' \
-S runnvim.vim \
"$tlog" > "out-$tlog" 2> "err-$tlog"
then
fail "$test_name" "Nvim exited with non-zero code"
fi
{
echo "Stdout of :terminal runner"
echo "$separator"
cat "out-$tlog"
echo "$separator"
echo "Stderr of :terminal runner"
echo "$separator"
cat "err-$tlog"
echo "$separator"
} >> "$tlog"
if test "$oldesttest" = 1 ; then
if ! diff -q test.out "$test_name.ok" > /dev/null 2>&1 ; then
if test -f test.out ; then
fail "$test_name" "Oldest test .out file differs from .ok file"
{
echo "Diff between test.out and $test_name.ok"
echo "$separator"
diff -a test.out "$test_name.ok"
echo "$separator"
} >> "$tlog"
else
echo "No output in test.out" >> "$tlog"
fi
fi
fi
valgrind_check .
if test -n "$LOG_DIR" ; then
check_sanitizer "$LOG_DIR"
fi
check_core_dumps
if test "$FAILED" = 1 ; then
cat "$tlog"
fi
rm -f "$tlog"
if test "$FAILED" = 1 ; then
echo "Test $test_name failed, see output above and summary for more details" >> test.log
# When Neovim crashed/aborted it might not have created messages.
# test.log itself is used as an indicator to exit non-zero in the Makefile.
if ! test -f message; then
cp -a test.log messages
fi
fi
)}
main "$@"
|