mirror of
https://github.com/tmux/tmux.git
synced 2026-10-11 13:04:22 +00:00
copy-mode -S test.
This commit is contained in:
48
regress/copy-mode-no-client-scroll.sh
Normal file
48
regress/copy-mode-no-client-scroll.sh
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# copy-mode -S can be called from a hook without an attached client.
|
||||||
|
|
||||||
|
PATH=/bin:/usr/bin
|
||||||
|
TERM=screen
|
||||||
|
export PATH TERM
|
||||||
|
|
||||||
|
[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux)
|
||||||
|
OUT=$(mktemp -d) || exit 1
|
||||||
|
TMUX_TMPDIR=$OUT
|
||||||
|
export TMUX_TMPDIR
|
||||||
|
TMUX="$TEST_TMUX -LtestA$$ -f/dev/null"
|
||||||
|
|
||||||
|
fail()
|
||||||
|
{
|
||||||
|
echo "$*" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup()
|
||||||
|
{
|
||||||
|
$TMUX kill-server 2>/dev/null || true
|
||||||
|
rm -rf "$OUT"
|
||||||
|
}
|
||||||
|
trap cleanup EXIT
|
||||||
|
trap 'exit 1' 1 2 3 15
|
||||||
|
|
||||||
|
$TMUX new-session -d -s test 'sleep 300' || fail "new-session failed"
|
||||||
|
$TMUX set -g remain-on-exit on || fail "setting remain-on-exit failed"
|
||||||
|
$TMUX set-hook -g pane-died 'copy-mode -S' ||
|
||||||
|
fail "setting pane-died hook failed"
|
||||||
|
$TMUX respawn-pane -k -t test:0 'exit 0' || fail "respawn-pane failed"
|
||||||
|
|
||||||
|
i=0
|
||||||
|
while [ "$i" -lt 50 ]; do
|
||||||
|
$TMUX has-session -t test 2>/dev/null || \
|
||||||
|
fail "server died in copy-mode -S"
|
||||||
|
[ "$($TMUX display-message -p -t test:0 '#{pane_dead}' 2>/dev/null)" = 1 ] && \
|
||||||
|
break
|
||||||
|
sleep 0.1
|
||||||
|
i=$((i + 1))
|
||||||
|
done
|
||||||
|
[ "$i" -lt 50 ] || fail "pane-died hook was not triggered"
|
||||||
|
sleep 0.5
|
||||||
|
$TMUX has-session -t test || fail "server died after copy-mode -S"
|
||||||
|
|
||||||
|
exit 0
|
||||||
Reference in New Issue
Block a user