Optimize redraws, reduce cursor flickering
[dvtm.git] / dvtm-test
blob5e4964c9227923e3613a47191df625b2a3dd5b47
1 #!/bin/sh
3 MOD="\a" # CTRL+g
4 ESC="\e" # \e
5 DVTM="./dvtm"
6 LOG="dvtm.log"
7 TEST_LOG="$0.log"
8 UTF8_TEST_URL="http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt"
10 [ ! -z "$1" ] && DVTM="$1"
11 [ ! -x "$DVTM" ] && echo "usage: $0 path-to-dvtm-binary" && exit 1
13 dvtm_input() {
14 printf "$1"
17 dvtm_cmd() {
18 printf "${MOD}$1\n"
19 sleep 1
22 sh_cmd() {
23 printf "$1\n"
24 sleep 1
27 test_copymode() { # requires wget, diff, vi
28 local FILENAME="UTF-8-demo.txt"
29 [ ! -e "$FILENAME" ] && (wget "$UTF8_TEST_URL" -O "$FILENAME" > /dev/null 2>&1 || return 1)
30 sleep 1
31 sh_cmd "cat $FILENAME"
32 dvtm_cmd 'v'
33 dvtm_input "?UTF-8 encoded\n"
34 dvtm_input '^kvGk$'
35 dvtm_input 'y'
36 rm -f "$FILENAME.copy"
37 sh_cmd "vi $FILENAME.copy"
38 dvtm_input 'i'
39 dvtm_cmd 'p'
40 dvtm_input "${ESC}dd:wq\n"
41 sleep 1
42 dvtm_cmd 'q'
43 diff -u "$FILENAME" "$FILENAME.copy" 1>&2
44 local RESULT=$?
45 rm "$FILENAME.copy"
46 return $RESULT
50 echo "Testing $DVTM" 1>&2
51 $DVTM -v 1>&2
52 test_copymode && echo "copymode: OK" 1>&2 || echo "copymode: FAIL" 1>&2;
53 } 2> "$TEST_LOG" | $DVTM 2> $LOG
55 cat "$TEST_LOG" && rm "$TEST_LOG" $LOG