mirror of
https://github.com/tmux/tmux.git
synced 2026-10-10 20:24:21 +00:00
Regression test fixes.
This commit is contained in:
@@ -52,7 +52,7 @@ wait_for()
|
||||
i=0
|
||||
while [ "$i" -lt 50 ]; do
|
||||
CAPTURED=$(capture)
|
||||
if echo "$CAPTURED" | grep -q "$1"; then
|
||||
if printf '%s\n' "$CAPTURED" | grep -F -q "$1"; then
|
||||
return 0
|
||||
fi
|
||||
sleep 0.2
|
||||
@@ -61,6 +61,23 @@ wait_for()
|
||||
fail "timed out waiting for '$1'"
|
||||
}
|
||||
|
||||
# wait_gone $marker
|
||||
#
|
||||
# Wait (up to ~10s) until the rendered screen no longer contains $marker.
|
||||
wait_gone()
|
||||
{
|
||||
i=0
|
||||
while [ "$i" -lt 50 ]; do
|
||||
CAPTURED=$(capture)
|
||||
if ! printf '%s\n' "$CAPTURED" | grep -F -q "$1"; then
|
||||
return 0
|
||||
fi
|
||||
sleep 0.2
|
||||
i=$((i + 1))
|
||||
done
|
||||
fail "timed out waiting for '$1' to disappear"
|
||||
}
|
||||
|
||||
# wait_count $marker $n
|
||||
#
|
||||
# Wait (up to ~10s) until exactly $n rendered lines contain $marker. The
|
||||
@@ -70,7 +87,7 @@ wait_count()
|
||||
i=0
|
||||
while [ "$i" -lt 50 ]; do
|
||||
CAPTURED=$(capture)
|
||||
c=$(echo "$CAPTURED" | grep -c "$1")
|
||||
c=$(printf '%s\n' "$CAPTURED" | grep -F -c "$1")
|
||||
[ "$c" -eq "$2" ] && return 0
|
||||
sleep 0.2
|
||||
i=$((i + 1))
|
||||
@@ -129,11 +146,15 @@ wait_mode()
|
||||
|
||||
exit_mode()
|
||||
{
|
||||
marker=$1
|
||||
shift
|
||||
|
||||
$TMUX send-keys -t aaa:0 "$@" || fail "send-keys $* failed"
|
||||
wait_mode aaa:0 0
|
||||
wait_gone "$marker"
|
||||
}
|
||||
|
||||
$TMUX new-session -d -s aaa -x 80 -y 24 || exit 1
|
||||
$TMUX new-session -d -s aaa -x 80 -y 24 'cat' || exit 1
|
||||
|
||||
$TMUX2 new-session -d -s out -x 80 -y 24 "$TMUX attach -t aaa" || exit 1
|
||||
wait_clients 1 || fail "no client attached to test server"
|
||||
@@ -146,28 +167,36 @@ $TMUX set-buffer -b bufz "other buffer" || exit 1
|
||||
$TMUX choose-buffer -t aaa:0 -F 'B1' -f '#{==:#{buffer_name},bufa}' || exit 1
|
||||
wait_count ': B1' 1
|
||||
out=$CAPTURED
|
||||
echo "$out" | grep -q 'bufa: B1' || fail "bufa missing when it matches"
|
||||
echo "$out" | grep -q 'bufz: B1' && fail "bufz shown but does not match"
|
||||
[ "$(echo "$out" | grep -c ': B1')" -eq 1 ] || fail "expected 1 buffer"
|
||||
exit_mode q
|
||||
printf '%s\n' "$out" | grep -F -q 'bufa: B1' || \
|
||||
fail "bufa missing when it matches"
|
||||
printf '%s\n' "$out" | grep -F -q 'bufz: B1' && \
|
||||
fail "bufz shown but does not match"
|
||||
[ "$(printf '%s\n' "$out" | grep -F -c ': B1')" -eq 1 ] || \
|
||||
fail "expected 1 buffer"
|
||||
exit_mode ': B1' q
|
||||
|
||||
# --- filter by buffer content ------------------------------------------------
|
||||
$TMUX choose-buffer -t aaa:0 -F 'B2' -f '#{m:*hello*,#{buffer_sample}}' || \
|
||||
exit 1
|
||||
wait_count ': B2' 1
|
||||
out=$CAPTURED
|
||||
echo "$out" | grep -q 'bufa: B2' || fail "bufa missing when content matches"
|
||||
echo "$out" | grep -q 'bufz: B2' && fail "bufz shown but content not matched"
|
||||
exit_mode q
|
||||
printf '%s\n' "$out" | grep -F -q 'bufa: B2' || \
|
||||
fail "bufa missing when content matches"
|
||||
printf '%s\n' "$out" | grep -F -q 'bufz: B2' && \
|
||||
fail "bufz shown but content not matched"
|
||||
exit_mode ': B2' q
|
||||
|
||||
# --- no filter shows both buffers ---------------------------------------------
|
||||
$TMUX choose-buffer -t aaa:0 -F 'B3' || exit 1
|
||||
wait_count ': B3' 2
|
||||
out=$CAPTURED
|
||||
echo "$out" | grep -q 'bufa: B3' || fail "bufa missing with no filter"
|
||||
echo "$out" | grep -q 'bufz: B3' || fail "bufz missing with no filter"
|
||||
[ "$(echo "$out" | grep -c ': B3')" -eq 2 ] || fail "expected 2 buffers"
|
||||
exit_mode q
|
||||
printf '%s\n' "$out" | grep -F -q 'bufa: B3' || \
|
||||
fail "bufa missing with no filter"
|
||||
printf '%s\n' "$out" | grep -F -q 'bufz: B3' || \
|
||||
fail "bufz missing with no filter"
|
||||
[ "$(printf '%s\n' "$out" | grep -F -c ': B3')" -eq 2 ] || \
|
||||
fail "expected 2 buffers"
|
||||
exit_mode ': B3' q
|
||||
|
||||
# --- filter matching nothing ---------------------------------------------------
|
||||
#
|
||||
@@ -176,25 +205,30 @@ $TMUX choose-buffer -t aaa:0 -F 'B4' -f '#{==:#{buffer_name},nosuch}' || \
|
||||
exit 1
|
||||
wait_count ': B4' 2
|
||||
out=$CAPTURED
|
||||
echo "$out" | grep -q 'bufa: B4' || fail "bufa missing with no-match filter"
|
||||
echo "$out" | grep -q 'bufz: B4' || fail "bufz missing with no-match filter"
|
||||
echo "$out" | grep -q 'no matches' || fail "no matches indicator missing"
|
||||
exit_mode q
|
||||
printf '%s\n' "$out" | grep -F -q 'bufa: B4' || \
|
||||
fail "bufa missing with no-match filter"
|
||||
printf '%s\n' "$out" | grep -F -q 'bufz: B4' || \
|
||||
fail "bufz missing with no-match filter"
|
||||
printf '%s\n' "$out" | grep -F -q 'no matches' || \
|
||||
fail "no matches indicator missing"
|
||||
exit_mode ': B4' q
|
||||
|
||||
# --- sort orders ---------------------------------------------------------------
|
||||
#
|
||||
# By name bufa sorts first and -r reverses.
|
||||
$TMUX choose-buffer -t aaa:0 -F 'B5' -O name || exit 1
|
||||
wait_count ': B5' 2
|
||||
echo "$CAPTURED" | grep ': B5' | head -1 | grep -q 'bufa: B5' || \
|
||||
printf '%s\n' "$CAPTURED" | grep -F ': B5' | head -1 | \
|
||||
grep -F -q 'bufa: B5' || \
|
||||
fail "bufa not first with -O name"
|
||||
exit_mode q
|
||||
exit_mode ': B5' q
|
||||
|
||||
$TMUX choose-buffer -t aaa:0 -F 'B6' -O name -r || exit 1
|
||||
wait_count ': B6' 2
|
||||
echo "$CAPTURED" | grep ': B6' | head -1 | grep -q 'bufz: B6' || \
|
||||
printf '%s\n' "$CAPTURED" | grep -F ': B6' | head -1 | \
|
||||
grep -F -q 'bufz: B6' || \
|
||||
fail "bufz not first with -O name -r"
|
||||
exit_mode q
|
||||
exit_mode ': B6' q
|
||||
|
||||
# --- d deletes the selected buffer --------------------------------------------
|
||||
#
|
||||
@@ -203,9 +237,9 @@ $TMUX choose-buffer -t aaa:0 -F 'G1' -f '#{==:#{buffer_name},bufz}' || exit 1
|
||||
wait_for 'bufz: G1'
|
||||
$TMUX send-keys -t aaa:0 d
|
||||
wait_buffers 1
|
||||
$TMUX list-buffers -F '#{buffer_name}' | grep -q 'bufa' || \
|
||||
$TMUX list-buffers -F '#{buffer_name}' | grep -F -q 'bufa' || \
|
||||
fail "wrong buffer deleted"
|
||||
exit_mode q
|
||||
exit_mode ': G1' q
|
||||
|
||||
# --- C-t tags all buffers and D deletes the tagged ------------------------------
|
||||
$TMUX set-buffer -b bufz "other buffer" || exit 1
|
||||
@@ -214,7 +248,8 @@ $TMUX choose-buffer -t aaa:0 -F 'G2' || exit 1
|
||||
wait_count ': G2' 3
|
||||
$TMUX send-keys -t aaa:0 C-t D
|
||||
wait_buffers 0
|
||||
exit_mode q
|
||||
wait_mode aaa:0 0
|
||||
wait_gone ': G2'
|
||||
|
||||
# --- Enter runs the default command (paste-buffer) ------------------------------
|
||||
#
|
||||
@@ -223,10 +258,11 @@ exit_mode q
|
||||
$TMUX set-buffer -b bufa "hello buffer" || exit 1
|
||||
$TMUX choose-buffer -t aaa:0 -F 'G3' || exit 1
|
||||
wait_count ': G3' 1
|
||||
exit_mode Enter
|
||||
exit_mode ': G3' Enter
|
||||
i=0
|
||||
while [ "$i" -lt 50 ]; do
|
||||
$TMUX capture-pane -p -t aaa:0 | grep -q 'hello buffer' && break
|
||||
$TMUX capture-pane -p -t aaa:0 | grep -F -q 'hello buffer' && \
|
||||
break
|
||||
sleep 0.2
|
||||
i=$((i + 1))
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user