Fix Mod-C and eliminate redundant shell process
[dvtm.git] / testsuite.sh
blob766d1bd736193cd24c0b1445009165698a2a0e21
1 #!/bin/sh
3 MOD="\a" # CTRL+g
4 ESC="\e" # \e
5 DVTM="./dvtm"
6 DVTM_EDITOR="vis"
7 LOG="dvtm.log"
8 TEST_LOG="$0.log"
9 UTF8_TEST_URL="http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt"
11 [ ! -z "$1" ] && DVTM="$1"
12 [ ! -x "$DVTM" ] && echo "usage: $0 path-to-dvtm-binary" && exit 1
14 dvtm_input() {
15 printf "$1"
18 dvtm_cmd() {
19 printf "${MOD}$1\n"
20 sleep 1
23 sh_cmd() {
24 printf "$1\n"
25 sleep 1
28 test_copymode() { # requires wget, diff, vis
29 local FILENAME="UTF-8-demo.txt"
30 local COPY="$FILENAME.copy"
31 [ ! -e "$FILENAME" ] && (wget "$UTF8_TEST_URL" -O "$FILENAME" > /dev/null 2>&1 || return 1)
32 sleep 1
33 sh_cmd "cat $FILENAME"
34 dvtm_cmd 'e'
35 dvtm_input "?UTF-8 encoded\n"
36 dvtm_input '^kvG2k$'
37 dvtm_input ":wq\n"
38 sleep 1
39 rm -f "$COPY"
40 sh_cmd "vis $COPY"
41 dvtm_input 'i'
42 dvtm_cmd 'p'
43 dvtm_input "${ESC}dd:wq\n"
44 while [ ! -r "$COPY" ]; do sleep 1; done;
45 dvtm_input "exit\n"
46 diff -u "$FILENAME" "$COPY" 1>&2
47 local RESULT=$?
48 rm -f "$COPY"
49 return $RESULT
52 if ! which vis > /dev/null 2>&1 ; then
53 echo "vis not found, skiping copymode test"
54 exit 0
58 echo "Testing $DVTM" 1>&2
59 $DVTM -v 1>&2
60 test_copymode && echo "copymode: OK" 1>&2 || echo "copymode: FAIL" 1>&2;
61 } 2> "$TEST_LOG" | $DVTM -m ^g 2> $LOG
63 cat "$TEST_LOG" && rm "$TEST_LOG" $LOG