vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
test.sh
(1531B)
1 #!/bin/sh
2
3 [ -z "$VIS" ] && VIS="../../vis"
4 [ -z "$VIM" ] && VIM="vim"
5
6 TESTS=$1
7 [ -z "$TESTS" ] && TESTS=$(find . -name '*.keys' | sed 's/\.keys$//g')
8
9 TESTS_RUN=0
10 TESTS_OK=0
11 TESTS_SKIP=0
12
13 export LANG="en_US.UTF-8"
14 export VIS_PATH=.
15
16 if type "$VIM" >/dev/null 2>&1; then
17 EDITORS="$VIM $VIS"
18 $VIM --version | head -1
19 else
20 EDITORS="$VIS"
21 fi
22
23 $VIS -v
24
25 for t in $TESTS; do
26 for EDITOR in $EDITORS; do
27 e=$(basename "$EDITOR");
28 ERR="$t.$e.err"
29 OUT="$t.$e.out"
30 REF="$t.ref"
31 VIM_OUT="$t.$VIM.out"
32 printf "Running test %s with %s ... " "$t" "$e"
33 rm -f "$OUT" "$ERR"
34 [ "$e" = "$VIM" ] && EDITOR="$VIM -u NONE -U NONE -N -i NONE"
35 { cat "$t.keys"; printf "<Escape>:w! $OUT<Enter>:qall!<Enter>\n"; } | ${CPP:-cpp} -P 2>/dev/null | sed 's/[ \t]*$//' | ../util/keys | $EDITOR "$t.in" >/dev/null 2>&1
36 if [ "$e" = "$VIM" ]; then
37 if [ -e "$REF" ]; then
38 if cmp -s "$REF" "$OUT"; then
39 printf "OK\n"
40 else
41 printf "FAIL\n"
42 diff -u "$REF" "$OUT" > "$ERR"
43 fi
44 elif [ -e "$VIM_OUT" ]; then
45 printf "OK\n"
46 else
47 printf "FAIL\n"
48 fi
49 elif [ -e "$REF" -o -e "$VIM_OUT" ]; then
50 [ -e "$VIM_OUT" ] && REF="$VIM_OUT"
51 if cmp -s "$REF" "$OUT"; then
52 printf "OK\n"
53 TESTS_OK=$((TESTS_OK+1))
54 else
55 printf "FAIL\n"
56 diff -u "$REF" "$OUT" > "$ERR"
57 fi
58 TESTS_RUN=$((TESTS_RUN+1))
59 else
60 TESTS_SKIP=$((TESTS_SKIP+1))
61 printf "SKIPPED\n"
62 fi
63 done
64 done
65
66 printf "Tests ok %d/%d, skipped %d\n" $TESTS_OK $TESTS_RUN $TESTS_SKIP
67
68 # set exit status
69 [ $TESTS_OK -eq $TESTS_RUN ]