mirror of
https://github.com/tmux/tmux.git
synced 2026-10-11 13:04:22 +00:00
Add tests for input path.
This commit is contained in:
176
regress/input-common.inc
Normal file
176
regress/input-common.inc
Normal file
@@ -0,0 +1,176 @@
|
||||
PATH=/bin:/usr/bin
|
||||
TERM=screen
|
||||
|
||||
[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux)
|
||||
TMUX="$TEST_TMUX -Ltest -f/dev/null"
|
||||
|
||||
TMP=$(mktemp)
|
||||
EXP=$(mktemp)
|
||||
trap 'rm -f "$TMP" "$EXP"; $TMUX kill-server 2>/dev/null' 0 1 15
|
||||
|
||||
exit_status=0
|
||||
|
||||
fail()
|
||||
{
|
||||
echo "FAIL: $1"
|
||||
diff -u "$EXP" "$TMP"
|
||||
exit_status=1
|
||||
}
|
||||
|
||||
start_pane()
|
||||
{
|
||||
start_pane_hlimit "$1" "$2" "$3" "$4" 0
|
||||
}
|
||||
|
||||
start_pane_history()
|
||||
{
|
||||
start_pane_hlimit "$1" "$2" "$3" "$4" 2000
|
||||
}
|
||||
|
||||
start_pane_hlimit()
|
||||
{
|
||||
name=$1
|
||||
sx=$2
|
||||
sy=$3
|
||||
seq=$4
|
||||
hlimit=$5
|
||||
|
||||
$TMUX kill-server 2>/dev/null
|
||||
sleep 0.1
|
||||
$TMUX new-session -d -x 1 -y 1 -s test-setup "sleep 2" || exit 1
|
||||
$TMUX set-option -g history-limit "$hlimit" || exit 1
|
||||
$TMUX new-session -d -x "$sx" -y "$sy" -s "$name" \
|
||||
"printf '$seq'; sleep 2" || exit 1
|
||||
$TMUX kill-session -t test-setup
|
||||
sleep 0.3
|
||||
}
|
||||
|
||||
start_cmd()
|
||||
{
|
||||
name=$1
|
||||
sx=$2
|
||||
sy=$3
|
||||
cmd=$4
|
||||
|
||||
$TMUX kill-server 2>/dev/null
|
||||
sleep 0.1
|
||||
$TMUX new-session -d -x "$sx" -y "$sy" -s "$name" "$cmd" || exit 1
|
||||
sleep 0.3
|
||||
}
|
||||
|
||||
normalize_capture()
|
||||
{
|
||||
sed 's/[ ]*$//' |
|
||||
awk '{ line[NR] = $0; if ($0 != "") last = NR }
|
||||
END { for (i = 1; i <= last; i++) print line[i] }'
|
||||
}
|
||||
|
||||
capture_grid()
|
||||
{
|
||||
$TMUX capture-pane -pN -t "$1:" -S 0 -E - | normalize_capture
|
||||
}
|
||||
|
||||
check_capture()
|
||||
{
|
||||
name=$1
|
||||
expected=$2
|
||||
|
||||
capture_grid "$name" >"$TMP"
|
||||
printf "%s\n" "$expected" >"$EXP"
|
||||
cmp "$TMP" "$EXP" || fail "$name"
|
||||
}
|
||||
|
||||
check_cursor()
|
||||
{
|
||||
name=$1
|
||||
expected=$2
|
||||
|
||||
actual=$($TMUX display-message -p -t "$name:" '#{cursor_x},#{cursor_y}')
|
||||
if [ "$actual" != "$expected" ]; then
|
||||
printf "%s\n" "$expected" >"$EXP"
|
||||
printf "%s\n" "$actual" >"$TMP"
|
||||
fail "$name cursor"
|
||||
fi
|
||||
}
|
||||
|
||||
check_flags()
|
||||
{
|
||||
name=$1
|
||||
expected=$2
|
||||
|
||||
$TMUX capture-pane -pNF -t "$name:" -S 0 -E - |
|
||||
normalize_capture |
|
||||
awk '$0 != "-"' >"$TMP"
|
||||
printf "%s\n" "$expected" >"$EXP"
|
||||
cmp "$TMP" "$EXP" || fail "$name flags"
|
||||
}
|
||||
|
||||
check_joined()
|
||||
{
|
||||
name=$1
|
||||
expected=$2
|
||||
|
||||
$TMUX capture-pane -pNJ -t "$name:" -S 0 -E - |
|
||||
normalize_capture >"$TMP"
|
||||
printf "%s\n" "$expected" >"$EXP"
|
||||
cmp "$TMP" "$EXP" || fail "$name joined"
|
||||
}
|
||||
|
||||
capture_raw()
|
||||
{
|
||||
$TMUX capture-pane -pR -t "$1:"
|
||||
}
|
||||
|
||||
capture_raw_used()
|
||||
{
|
||||
capture_raw "$1" |
|
||||
awk '/^(G| L)/ || /^ C/ && $3 !~ /^data=\(1,1, \)$/'
|
||||
}
|
||||
|
||||
check_raw()
|
||||
{
|
||||
name=$1
|
||||
expected=$2
|
||||
|
||||
capture_raw "$name" >"$TMP"
|
||||
printf "%s\n" "$expected" >"$EXP"
|
||||
cmp "$TMP" "$EXP" || fail "$name raw"
|
||||
}
|
||||
|
||||
check_raw_used()
|
||||
{
|
||||
name=$1
|
||||
expected=$2
|
||||
|
||||
capture_raw_used "$name" >"$TMP"
|
||||
printf "%s\n" "$expected" >"$EXP"
|
||||
cmp "$TMP" "$EXP" || fail "$name raw used"
|
||||
}
|
||||
|
||||
check_raw_has()
|
||||
{
|
||||
name=$1
|
||||
shift
|
||||
|
||||
capture_raw "$name" >"$TMP"
|
||||
for expected in "$@"; do
|
||||
if ! grep -Fqx "$expected" "$TMP"; then
|
||||
printf "%s\n" "$expected" >"$EXP"
|
||||
fail "$name raw missing"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
check_raw_matches()
|
||||
{
|
||||
name=$1
|
||||
shift
|
||||
|
||||
capture_raw "$name" >"$TMP"
|
||||
for expected in "$@"; do
|
||||
if ! grep -Eq "$expected" "$TMP"; then
|
||||
printf "%s\n" "$expected" >"$EXP"
|
||||
fail "$name raw missing"
|
||||
fi
|
||||
done
|
||||
}
|
||||
Reference in New Issue
Block a user