diff --git a/monitor.c b/monitor.c index 36c79538b..702576820 100644 --- a/monitor.c +++ b/monitor.c @@ -93,6 +93,18 @@ monitor_get_session(struct monitor_set *ms) return (s); } +/* Create a format tree for a subscription. */ +static struct format_tree * +monitor_create_formats(struct client *c, struct session *s, struct winlink *wl, + struct window_pane *wp) +{ + struct format_tree *ft; + + ft = format_create(NULL, NULL, FORMAT_NOJOBS, 0); + format_defaults(ft, c, s, wl, wp); + return (ft); +} + /* Compare subscriptions. */ static int monitor_item_cmp(struct monitor_item *m1, struct monitor_item *m2) @@ -236,7 +248,7 @@ monitor_check_pane(struct monitor_set *ms, struct monitor_item *me) if (wl->session != s) continue; - ft = format_create_defaults(NULL, c, s, wl, wp); + ft = monitor_create_formats(c, s, wl, wp); value = format_expand(ft, me->format); format_free(ft); @@ -314,7 +326,7 @@ monitor_check_window(struct monitor_set *ms, struct monitor_item *me) if (wl->session != s) continue; - ft = format_create_defaults(NULL, c, s, wl, NULL); + ft = monitor_create_formats(c, s, wl, NULL); value = format_expand(ft, me->format); format_free(ft); @@ -382,7 +394,7 @@ monitor_check_sessions(struct monitor_set *ms) struct monitor_item *me, *me1; struct format_tree *ft; - ft = format_create_defaults(NULL, c, s, NULL, NULL); + ft = monitor_create_formats(c, s, NULL, NULL); RB_FOREACH_SAFE(me, monitor_items, &ms->items, me1) { if (me->type == MONITOR_SESSION) monitor_check_session(ms, me, ft); @@ -427,7 +439,7 @@ monitor_check_all_panes(struct monitor_set *ms) ms->generation = 1; RB_FOREACH(wl, winlinks, &s->windows) { TAILQ_FOREACH(wp, &wl->window->panes, entry) { - ft = format_create_defaults(NULL, c, s, wl, wp); + ft = monitor_create_formats(c, s, wl, wp); RB_FOREACH_SAFE(me, monitor_items, &ms->items, me1) { if (me->type != MONITOR_ALL_PANES) continue; @@ -455,7 +467,7 @@ monitor_check_all_windows(struct monitor_set *ms) if (++ms->generation == 0) ms->generation = 1; RB_FOREACH(wl, winlinks, &s->windows) { - ft = format_create_defaults(NULL, c, s, wl, NULL); + ft = monitor_create_formats(c, s, wl, NULL); RB_FOREACH_SAFE(me, monitor_items, &ms->items, me1) { if (me->type != MONITOR_ALL_WINDOWS) continue; diff --git a/regress/alerts.sh b/regress/alerts.sh index 7a39ddefc..cfb84c711 100644 --- a/regress/alerts.sh +++ b/regress/alerts.sh @@ -19,7 +19,7 @@ export TERM LC_ALL LANG OUT=$(mktemp -d) TMUX_TMPDIR="$OUT" export TMUX_TMPDIR -TMUX="$TEST_TMUX -Ltest$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" fail() { diff --git a/regress/am-terminal.sh b/regress/am-terminal.sh index bf1cabfe7..fae0e502d 100644 --- a/regress/am-terminal.sh +++ b/regress/am-terminal.sh @@ -4,9 +4,9 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" $TMUX2 kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/border-arrows.sh b/regress/border-arrows.sh index ea571b05a..a67171bf5 100644 --- a/regress/border-arrows.sh +++ b/regress/border-arrows.sh @@ -11,9 +11,9 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null -TMUX_OUTER="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX_OUTER="$TEST_TMUX -LtestB$$ -f/dev/null" $TMUX_OUTER kill-server 2>/dev/null trap "$TMUX kill-server 2>/dev/null; $TMUX_OUTER kill-server 2>/dev/null" 0 1 15 diff --git a/regress/buffers.sh b/regress/buffers.sh index 0b3267610..fdacacb5b 100644 --- a/regress/buffers.sh +++ b/regress/buffers.sh @@ -23,7 +23,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/capture-pane-hyperlink.sh b/regress/capture-pane-hyperlink.sh index 80092e7f2..ec89c6c5d 100644 --- a/regress/capture-pane-hyperlink.sh +++ b/regress/capture-pane-hyperlink.sh @@ -6,7 +6,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" TMP=$(mktemp) TMP2=$(mktemp) trap "rm -f $TMP $TMP2" 0 1 15 diff --git a/regress/capture-pane-sgr0.sh b/regress/capture-pane-sgr0.sh index 7c9c32315..1e73e7191 100644 --- a/regress/capture-pane-sgr0.sh +++ b/regress/capture-pane-sgr0.sh @@ -7,7 +7,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/check-names.sh b/regress/check-names.sh index 886299f2d..be8ad617b 100644 --- a/regress/check-names.sh +++ b/regress/check-names.sh @@ -6,7 +6,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null fail() diff --git a/regress/choose-buffer.sh b/regress/choose-buffer.sh index a10d161eb..ca9a26758 100644 --- a/regress/choose-buffer.sh +++ b/regress/choose-buffer.sh @@ -20,8 +20,8 @@ TERM=screen TMP=$(mktemp -d) || exit 1 TMUX_TMPDIR="$TMP" export TMUX_TMPDIR -TMUX="$TEST_TMUX -Ltest$$ -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" cleanup() { @@ -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 diff --git a/regress/choose-client.sh b/regress/choose-client.sh index 9031f86bd..d325f5335 100644 --- a/regress/choose-client.sh +++ b/regress/choose-client.sh @@ -19,8 +19,8 @@ TERM=screen TMP=$(mktemp -d) || exit 1 TMUX_TMPDIR="$TMP" export TMUX_TMPDIR -TMUX="$TEST_TMUX -Ltest$$ -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" cleanup() { @@ -51,7 +51,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 @@ -60,6 +60,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 @@ -69,7 +86,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)) @@ -113,15 +130,19 @@ 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" } # One client attached to each of two sessions; the mode is displayed on the # client attached to aaa (in window 0 of the outer server) and the filters # tell the clients apart by their attached session. -$TMUX new-session -d -s aaa -x 80 -y 24 || exit 1 -$TMUX new-session -d -s bbb -x 80 -y 24 || exit 1 +$TMUX new-session -d -s aaa -x 80 -y 24 'cat' || exit 1 +$TMUX new-session -d -s bbb -x 80 -y 24 'cat' || exit 1 $TMUX2 new-session -d -s out -x 80 -y 24 "$TMUX attach -t aaa" || exit 1 $TMUX2 new-window -d -t out: "$TMUX attach -t bbb" || exit 1 @@ -132,29 +153,38 @@ $TMUX choose-client -t aaa:0 -F 'C1=#{client_session}' \ -f '#{==:#{client_session},aaa}' || exit 1 wait_count 'C1=' 1 out=$CAPTURED -echo "$out" | grep -q 'C1=aaa' || fail "aaa client missing when it matches" -echo "$out" | grep -q 'C1=bbb' && fail "bbb client shown but does not match" -[ "$(echo "$out" | grep -c 'C1=')" -eq 1 ] || fail "expected 1 client" -exit_mode q +printf '%s\n' "$out" | grep -F -q 'C1=aaa' || \ + fail "aaa client missing when it matches" +printf '%s\n' "$out" | grep -F -q 'C1=bbb' && \ + fail "bbb client shown but does not match" +[ "$(printf '%s\n' "$out" | grep -F -c 'C1=')" -eq 1 ] || \ + fail "expected 1 client" +exit_mode 'C1=' q # --- filter keeping only the bbb client ------------------------------------- $TMUX choose-client -t aaa:0 -F 'C2=#{client_session}' \ -f '#{==:#{client_session},bbb}' || exit 1 wait_count 'C2=' 1 out=$CAPTURED -echo "$out" | grep -q 'C2=bbb' || fail "bbb client missing when it matches" -echo "$out" | grep -q 'C2=aaa' && fail "aaa client shown but does not match" -[ "$(echo "$out" | grep -c 'C2=')" -eq 1 ] || fail "expected 1 client" -exit_mode q +printf '%s\n' "$out" | grep -F -q 'C2=bbb' || \ + fail "bbb client missing when it matches" +printf '%s\n' "$out" | grep -F -q 'C2=aaa' && \ + fail "aaa client shown but does not match" +[ "$(printf '%s\n' "$out" | grep -F -c 'C2=')" -eq 1 ] || \ + fail "expected 1 client" +exit_mode 'C2=' q # --- no filter shows both clients ------------------------------------------- $TMUX choose-client -t aaa:0 -F 'C3=#{client_session}' || exit 1 wait_count 'C3=' 2 out=$CAPTURED -echo "$out" | grep -q 'C3=aaa' || fail "aaa client missing with no filter" -echo "$out" | grep -q 'C3=bbb' || fail "bbb client missing with no filter" -[ "$(echo "$out" | grep -c 'C3=')" -eq 2 ] || fail "expected 2 clients" -exit_mode q +printf '%s\n' "$out" | grep -F -q 'C3=aaa' || \ + fail "aaa client missing with no filter" +printf '%s\n' "$out" | grep -F -q 'C3=bbb' || \ + fail "bbb client missing with no filter" +[ "$(printf '%s\n' "$out" | grep -F -c 'C3=')" -eq 2 ] || \ + fail "expected 2 clients" +exit_mode 'C3=' q # --- filter matching nothing ------------------------------------------------ # @@ -163,10 +193,13 @@ $TMUX choose-client -t aaa:0 -F 'C4=#{client_session}' \ -f '#{==:#{client_session},nosuch}' || exit 1 wait_count 'C4=' 2 out=$CAPTURED -echo "$out" | grep -q 'C4=aaa' || fail "aaa client missing with no-match filter" -echo "$out" | grep -q 'C4=bbb' || fail "bbb client 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 'C4=aaa' || \ + fail "aaa client missing with no-match filter" +printf '%s\n' "$out" | grep -F -q 'C4=bbb' || \ + fail "bbb client missing with no-match filter" +printf '%s\n' "$out" | grep -F -q 'no matches' || \ + fail "no matches indicator missing" +exit_mode 'C4=' q # --- Enter runs the default command (detach-client) -------------------------- # @@ -178,6 +211,7 @@ wait_for 'G1=bbb' $TMUX send-keys -t aaa:0 Enter || fail "send-keys Enter failed" wait_clients 1 || fail "bbb client did not detach" wait_mode aaa:0 0 +wait_gone 'G1=' [ "$($TMUX list-clients -F '#{client_session}')" = "aaa" ] || \ fail "wrong client detached" diff --git a/regress/choose-tree.sh b/regress/choose-tree.sh index b34cc2bd2..132890730 100644 --- a/regress/choose-tree.sh +++ b/regress/choose-tree.sh @@ -27,8 +27,8 @@ TERM=screen TMP=$(mktemp -d) || exit 1 TMUX_TMPDIR="$TMP" export TMUX_TMPDIR -TMUX="$TEST_TMUX -Ltest$$ -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" cleanup() { @@ -59,7 +59,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 @@ -68,15 +68,15 @@ wait_for() fail "timed out waiting for '$1'" } -# wait_count $marker $n +# wait_count $row-marker $n # -# Wait (up to ~10s) until exactly $n rendered lines contain $marker. +# Wait (up to ~10s) until exactly $n rendered list rows contain $row-marker. 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)) @@ -131,10 +131,10 @@ exit_mode() # # 0 zzz 1 window 0 2 pane 0 3 pane 1 4 window 1 5 pane 0 # 6 aaa 7 window 0 8 pane 0 -$TMUX new-session -d -s zzz -x 80 -y 24 || exit 1 -$TMUX split-window -t zzz:0 || exit 1 -$TMUX new-window -t zzz || exit 1 -$TMUX new-session -d -s aaa -x 80 -y 24 || exit 1 +$TMUX new-session -d -s zzz -x 80 -y 24 'cat' || exit 1 +$TMUX split-window -t zzz:0 'cat' || exit 1 +$TMUX new-window -t zzz 'cat' || 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" @@ -145,10 +145,12 @@ wait_clients 1 || fail "no client attached to test server" # regression - its two-pane window 0. aaa contributes exactly three lines # (session, window, pane). $TMUX choose-tree -t aaa:0 -F 'F1' -f '#{==:#{session_name},aaa}' || exit 1 -wait_count 'F1' 3 +wait_count ': F1' 3 out=$CAPTURED -echo "$out" | grep -q 'aaa: F1' || fail "aaa missing when filter matches it" -echo "$out" | grep -q 'zzz: F1' && fail "zzz shown but no pane matches" +printf '%s\n' "$out" | grep -F -q 'aaa: F1' || \ + fail "aaa missing when filter matches it" +printf '%s\n' "$out" | grep -F -q 'zzz: F1' && \ + fail "zzz shown but no pane matches" exit_mode q # --- filter keeping only zzz ------------------------------------------------ @@ -156,10 +158,12 @@ exit_mode q # zzz contributes six lines (session, two windows, three panes); aaa must # disappear. $TMUX choose-tree -t aaa:0 -F 'F2' -f '#{==:#{session_name},zzz}' || exit 1 -wait_count 'F2' 6 +wait_count ': F2' 6 out=$CAPTURED -echo "$out" | grep -q 'zzz: F2' || fail "zzz missing when filter matches it" -echo "$out" | grep -q 'aaa: F2' && fail "aaa shown but no pane matches" +printf '%s\n' "$out" | grep -F -q 'zzz: F2' || \ + fail "zzz missing when filter matches it" +printf '%s\n' "$out" | grep -F -q 'aaa: F2' && \ + fail "aaa shown but no pane matches" exit_mode q # --- filter matching a single pane ------------------------------------------ @@ -167,22 +171,28 @@ exit_mode q # Only pane 1 of zzz:0 matches, so the tree is exactly session zzz, window 0 # and that pane; zzz:1 and all of aaa must disappear. $TMUX choose-tree -t aaa:0 -F 'F3' -f '#{==:#{pane_index},1}' || exit 1 -wait_count 'F3' 3 +wait_count ': F3' 3 out=$CAPTURED -echo "$out" | grep -q 'zzz: F3' || fail "zzz missing when its pane matches" -echo "$out" | grep -q 'aaa: F3' && fail "aaa shown but no pane matches" -echo "$out" | grep -q '1: F3' || fail "matching pane missing" +printf '%s\n' "$out" | grep -F -q 'zzz: F3' || \ + fail "zzz missing when its pane matches" +printf '%s\n' "$out" | grep -F -q 'aaa: F3' && \ + fail "aaa shown but no pane matches" +printf '%s\n' "$out" | grep -F -q '1: F3' || \ + fail "matching pane missing" exit_mode q # --- filter matching nothing ------------------------------------------------ # # Everything is shown and the filter indicator reports no matches. $TMUX choose-tree -t aaa:0 -F 'F4' -f '#{==:#{session_name},nosuch}' || exit 1 -wait_count 'F4' 9 +wait_count ': F4' 9 out=$CAPTURED -echo "$out" | grep -q 'aaa: F4' || fail "aaa missing with no-match filter" -echo "$out" | grep -q 'zzz: F4' || fail "zzz missing with no-match filter" -echo "$out" | grep -q 'no matches' || fail "no matches indicator missing" +printf '%s\n' "$out" | grep -F -q 'aaa: F4' || \ + fail "aaa missing with no-match filter" +printf '%s\n' "$out" | grep -F -q 'zzz: F4' || \ + fail "zzz missing with no-match filter" +printf '%s\n' "$out" | grep -F -q 'no matches' || \ + fail "no matches indicator missing" exit_mode q # --- -h with the tree pane as the only match -------------------------------- @@ -191,28 +201,32 @@ exit_mode q # match, so session and window aaa stay listed: two lines, no pane line. $TMUX choose-tree -h -t aaa:0 -F 'F5' -f '#{==:#{session_name},aaa}' || \ exit 1 -wait_count 'F5' 2 -echo "$CAPTURED" | grep -q 'aaa: F5' || fail "aaa missing with -h" +wait_count ': F5' 2 +printf '%s\n' "$CAPTURED" | grep -F -q 'aaa: F5' || \ + fail "aaa missing with -h" exit_mode q # --- sort orders ------------------------------------------------------------ # # By index zzz (created first) sorts first, by name aaa does, and -r reverses. $TMUX choose-tree -t aaa:0 -F 'F6' -O index || exit 1 -wait_count 'F6' 9 -echo "$CAPTURED" | grep 'F6' | head -1 | grep -q 'zzz: F6' || \ +wait_count ': F6' 9 +printf '%s\n' "$CAPTURED" | grep -F ': F6' | head -1 | \ + grep -F -q 'zzz: F6' || \ fail "zzz not first with -O index" exit_mode q $TMUX choose-tree -t aaa:0 -F 'F7' -O name || exit 1 -wait_count 'F7' 9 -echo "$CAPTURED" | grep 'F7' | head -1 | grep -q 'aaa: F7' || \ +wait_count ': F7' 9 +printf '%s\n' "$CAPTURED" | grep -F ': F7' | head -1 | \ + grep -F -q 'aaa: F7' || \ fail "aaa not first with -O name" exit_mode q $TMUX choose-tree -t aaa:0 -F 'F8' -O name -r || exit 1 -wait_count 'F8' 9 -echo "$CAPTURED" | grep 'F8' | head -1 | grep -q 'zzz: F8' || \ +wait_count ': F8' 9 +printf '%s\n' "$CAPTURED" | grep -F ': F8' | head -1 | \ + grep -F -q 'zzz: F8' || \ fail "zzz not first with -O name -r" exit_mode q @@ -221,33 +235,35 @@ exit_mode q # g moves to the top (session zzz); h collapses it, hiding its five children; # l expands it again. $TMUX choose-tree -t aaa:0 -F 'G1' -O index || exit 1 -wait_count 'G1' 9 +wait_count ': G1' 9 $TMUX send-keys -t aaa:0 g h || fail "send-keys collapse failed" -wait_count 'G1' 4 +wait_count ': G1' 4 $TMUX send-keys -t aaa:0 l || fail "send-keys expand failed" -wait_count 'G1' 9 +wait_count ': G1' 9 exit_mode q # --- filter entered at the prompt with f, cleared with c ---------------------- $TMUX choose-tree -t aaa:0 -F 'G2' -O index || exit 1 -wait_count 'G2' 9 +wait_count ': G2' 9 $TMUX send-keys -t aaa:0 f || fail "send-keys f failed" $TMUX send-keys -t aaa:0 -l '#{==:#{session_name},aaa}' || \ fail "send-keys filter failed" $TMUX send-keys -t aaa:0 Enter || fail "send-keys Enter failed" -wait_count 'G2' 3 +wait_count ': G2' 3 out=$CAPTURED -echo "$out" | grep -q 'aaa: G2' || fail "aaa missing with prompt filter" -echo "$out" | grep -q 'zzz: G2' && fail "zzz shown with prompt filter" +printf '%s\n' "$out" | grep -F -q 'aaa: G2' || \ + fail "aaa missing with prompt filter" +printf '%s\n' "$out" | grep -F -q 'zzz: G2' && \ + fail "zzz shown with prompt filter" $TMUX send-keys -t aaa:0 c || fail "send-keys c failed" -wait_count 'G2' 9 +wait_count ': G2' 9 exit_mode q # --- Enter runs the default command (switch-client) ---------------------------- # # g selects session zzz and Enter switches the client to it. $TMUX choose-tree -t aaa:0 -F 'G3' -O index || exit 1 -wait_count 'G3' 9 +wait_count ': G3' 9 $TMUX send-keys -t aaa:0 g Enter || fail "send-keys Enter failed" i=0 while [ "$i" -lt 50 ]; do @@ -265,11 +281,11 @@ wait_mode aaa:0 0 # g and four times j select window 1 of zzz; x asks for confirmation and y # kills it, leaving zzz with one window and the tree with seven lines. $TMUX choose-tree -t aaa:0 -F 'G4' -O index || exit 1 -wait_count 'G4' 9 +wait_count ': G4' 9 $TMUX send-keys -t aaa:0 g j j j j x || fail "send-keys x failed" wait_for 'Kill window 1' $TMUX send-keys -t aaa:0 y || fail "send-keys y failed" -wait_count 'G4' 7 +wait_count ': G4' 7 [ "$($TMUX list-windows -t zzz -F x | grep -c x)" -eq 1 ] || \ fail "window 1 of zzz not killed" exit_mode q diff --git a/regress/combine-test.sh b/regress/combine-test.sh index a4d4f3681..ac9f800b0 100644 --- a/regress/combine-test.sh +++ b/regress/combine-test.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/command-alias.sh b/regress/command-alias.sh index 632e959a2..aae434cc0 100644 --- a/regress/command-alias.sh +++ b/regress/command-alias.sh @@ -6,7 +6,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null $TMUX new-session -d -sfoo || exit 1 diff --git a/regress/command-order.sh b/regress/command-order.sh index 775768a6a..9c957246a 100644 --- a/regress/command-order.sh +++ b/regress/command-order.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/conf-syntax.sh b/regress/conf-syntax.sh index 49b9710b3..4dbc384b3 100644 --- a/regress/conf-syntax.sh +++ b/regress/conf-syntax.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null for i in conf/*.conf; do diff --git a/regress/control-client-sanity.sh b/regress/control-client-sanity.sh index f6c36e1bd..32695e7c0 100644 --- a/regress/control-client-sanity.sh +++ b/regress/control-client-sanity.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/control-client-size.sh b/regress/control-client-size.sh index 7d5e1dc27..e6742608a 100644 --- a/regress/control-client-size.sh +++ b/regress/control-client-size.sh @@ -8,7 +8,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/control-subscriptions.sh b/regress/control-subscriptions.sh index f720b0650..8aebb2ea0 100644 --- a/regress/control-subscriptions.sh +++ b/regress/control-subscriptions.sh @@ -7,7 +7,7 @@ LANG=C.UTF-8 export TERM LC_ALL LANG [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" TMPDIR=$(mktemp -d) IN="$TMPDIR/in" diff --git a/regress/copy-mode-test-emacs.sh b/regress/copy-mode-test-emacs.sh index a5b69c675..3e9cbf50b 100644 --- a/regress/copy-mode-test-emacs.sh +++ b/regress/copy-mode-test-emacs.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null $TMUX new -d -x40 -y10 \ diff --git a/regress/copy-mode-test-vi.sh b/regress/copy-mode-test-vi.sh index 2d6bfc287..71810b006 100644 --- a/regress/copy-mode-test-vi.sh +++ b/regress/copy-mode-test-vi.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -f/dev/null -Ltest" +TMUX="$TEST_TMUX -f/dev/null -LtestA$$" $TMUX kill-server 2>/dev/null $TMUX new -d -x40 -y10 \ diff --git a/regress/cursor-test1.sh b/regress/cursor-test1.sh index 73a336be7..b098cdc15 100644 --- a/regress/cursor-test1.sh +++ b/regress/cursor-test1.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/cursor-test2.sh b/regress/cursor-test2.sh index 3de80fdac..8e9e7ec80 100644 --- a/regress/cursor-test2.sh +++ b/regress/cursor-test2.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/cursor-test3.sh b/regress/cursor-test3.sh index e4881c79a..213ed83ba 100644 --- a/regress/cursor-test3.sh +++ b/regress/cursor-test3.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/cursor-test4.sh b/regress/cursor-test4.sh index 8f4dfa5c3..0eb5f0c9a 100644 --- a/regress/cursor-test4.sh +++ b/regress/cursor-test4.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/decrqm-sync.sh b/regress/decrqm-sync.sh index 7f8c3f61d..f4daf36a9 100644 --- a/regress/decrqm-sync.sh +++ b/regress/decrqm-sync.sh @@ -9,7 +9,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null sleep 1 diff --git a/regress/environ-update.sh b/regress/environ-update.sh index 59f7d74c5..44e4e72c4 100644 --- a/regress/environ-update.sh +++ b/regress/environ-update.sh @@ -17,9 +17,9 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" # A second server on its own socket hosts the pane that runs the inner client. -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" cleanup() { diff --git a/regress/environ.sh b/regress/environ.sh index 244ec367d..2d5c0c031 100644 --- a/regress/environ.sh +++ b/regress/environ.sh @@ -19,7 +19,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null # check_value $args $expected @@ -151,7 +151,7 @@ cat > "$CONF" </dev/null $CTMUX new-session -d -s c -x 80 -y 24 || { rm -f "$CONF"; exit 1; } out=$($CTMUX show-environment -g CFGVAR 2>&1) diff --git a/regress/floating-pane-geometry.sh b/regress/floating-pane-geometry.sh index 7bd033ff6..7e80e8942 100644 --- a/regress/floating-pane-geometry.sh +++ b/regress/floating-pane-geometry.sh @@ -15,7 +15,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null fail() diff --git a/regress/format-fuzzy.sh b/regress/format-fuzzy.sh index 31a5b60cb..00bc28bd4 100644 --- a/regress/format-fuzzy.sh +++ b/regress/format-fuzzy.sh @@ -6,7 +6,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" # test_format $format $expected_result test_format() diff --git a/regress/format-modifiers.sh b/regress/format-modifiers.sh index 21203b6a9..b6340b622 100644 --- a/regress/format-modifiers.sh +++ b/regress/format-modifiers.sh @@ -17,7 +17,7 @@ LC_ALL=C.UTF-8 export TZ LANG LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" ESC=$(printf '\033') diff --git a/regress/format-mouse.sh b/regress/format-mouse.sh index 8032f8a57..9a443d19c 100644 --- a/regress/format-mouse.sh +++ b/regress/format-mouse.sh @@ -18,8 +18,8 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" cleanup() { diff --git a/regress/format-render-contexts.sh b/regress/format-render-contexts.sh index a91fb88e1..2cceff2e3 100644 --- a/regress/format-render-contexts.sh +++ b/regress/format-render-contexts.sh @@ -9,8 +9,8 @@ export PATH TERM LANG LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Lformat-render-contexts-$$ -f/dev/null" -TMUX2="$TEST_TMUX -Lformat-render-contexts-outer-$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" LIMIT=20000 cleanup() @@ -49,7 +49,13 @@ tmux_run() name=$1 shift - out=$(run_cmd $TMUX "$@" 2>&1) + out=$( + if command -v timeout >/dev/null 2>&1; then + timeout 10 $TMUX "$@" 2>&1 + else + $TMUX "$@" 2>&1 + fi + ) rc=$? bounded "$name" "$out" [ "$rc" -eq 0 ] || fail "$name failed: $out" @@ -58,7 +64,13 @@ tmux_run() capture() { - out=$(run_cmd $TMUX2 capture-pane -p -t out:0 2>/dev/null) + out=$( + if command -v timeout >/dev/null 2>&1; then + timeout 10 $TMUX2 capture-pane -p -t out:0 2>/dev/null + else + $TMUX2 capture-pane -p -t out:0 2>/dev/null + fi + ) rc=$? bounded "capture-pane" "$out" [ "$rc" -eq 0 ] || fail "capture-pane failed" @@ -67,7 +79,14 @@ capture() capture_esc() { - out=$(run_cmd $TMUX2 capture-pane -pe -t out:0 2>/dev/null) + out=$( + if command -v timeout >/dev/null 2>&1; then + timeout 10 $TMUX2 capture-pane -pe -t out:0 \ + 2>/dev/null + else + $TMUX2 capture-pane -pe -t out:0 2>/dev/null + fi + ) rc=$? bounded "capture-pane -e" "$out" [ "$rc" -eq 0 ] || fail "capture-pane -e failed" diff --git a/regress/format-strings.sh b/regress/format-strings.sh index bae66ab00..877e18fec 100644 --- a/regress/format-strings.sh +++ b/regress/format-strings.sh @@ -6,7 +6,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" # test_format $format $expected_result test_format() diff --git a/regress/format-variables.sh b/regress/format-variables.sh index fa51e0216..9131c2cf4 100644 --- a/regress/format-variables.sh +++ b/regress/format-variables.sh @@ -15,10 +15,10 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" # A second server on its own socket provides a real terminal (an inner client # attached inside one of its panes) so client terminal variables are populated. -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" # Every variable name in format_table[]. Kept as a plain word list so it can be # iterated with normal shell word splitting. diff --git a/regress/has-session-return.sh b/regress/has-session-return.sh index a7d76ad85..8b259ac76 100644 --- a/regress/has-session-return.sh +++ b/regress/has-session-return.sh @@ -7,7 +7,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null $TMUX -f/dev/null has -tfoo /dev/null && exit 1 diff --git a/regress/hooks-after.sh b/regress/hooks-after.sh index 605109570..3c1ba7909 100644 --- a/regress/hooks-after.sh +++ b/regress/hooks-after.sh @@ -10,7 +10,7 @@ export TERM LC_ALL LANG OUT=$(mktemp -d) TMUX_TMPDIR="$OUT" export TMUX_TMPDIR -TMUX="$TEST_TMUX -Ltest$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" fail() { diff --git a/regress/hooks-lifecycle.sh b/regress/hooks-lifecycle.sh index 6fb271131..e90f7ba3a 100644 --- a/regress/hooks-lifecycle.sh +++ b/regress/hooks-lifecycle.sh @@ -15,7 +15,7 @@ export TERM LC_ALL LANG OUT=$(mktemp -d) TMUX_TMPDIR="$OUT" export TMUX_TMPDIR -TMUX="$TEST_TMUX -Ltest$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" fail() { diff --git a/regress/hooks-notify.sh b/regress/hooks-notify.sh index 947dd6c68..41916248c 100644 --- a/regress/hooks-notify.sh +++ b/regress/hooks-notify.sh @@ -10,7 +10,7 @@ export TERM LC_ALL LANG OUT=$(mktemp -d) TMUX_TMPDIR="$OUT" export TMUX_TMPDIR -TMUX="$TEST_TMUX -Ltest$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" fail() { diff --git a/regress/hooks.sh b/regress/hooks.sh index 537582295..e1d75bf67 100644 --- a/regress/hooks.sh +++ b/regress/hooks.sh @@ -10,7 +10,7 @@ export TERM LC_ALL LANG OUT=$(mktemp -d) TMUX_TMPDIR="$OUT" export TMUX_TMPDIR -TMUX="$TEST_TMUX -Ltest$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" fail() { diff --git a/regress/if-shell-TERM.sh b/regress/if-shell-TERM.sh index 21846fd10..d1db52f45 100644 --- a/regress/if-shell-TERM.sh +++ b/regress/if-shell-TERM.sh @@ -7,7 +7,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/if-shell-error.sh b/regress/if-shell-error.sh index 2eab8f7ca..3b2dac753 100644 --- a/regress/if-shell-error.sh +++ b/regress/if-shell-error.sh @@ -7,7 +7,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/if-shell-nested.sh b/regress/if-shell-nested.sh index 434775c43..e10be41c6 100644 --- a/regress/if-shell-nested.sh +++ b/regress/if-shell-nested.sh @@ -7,7 +7,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/input-common.inc b/regress/input-common.inc index 96eec1f09..100a7be0f 100644 --- a/regress/input-common.inc +++ b/regress/input-common.inc @@ -2,7 +2,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" TMP=$(mktemp) EXP=$(mktemp) diff --git a/regress/input-keys.sh b/regress/input-keys.sh index e2fc41f54..cb771d19a 100644 --- a/regress/input-keys.sh +++ b/regress/input-keys.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null sleep 1 $TMUX -f/dev/null new -x20 -y2 -d \; set -g escape-time 0 || exit 1 diff --git a/regress/input-reflow-stress.sh b/regress/input-reflow-stress.sh index aa1bbd717..926e8cdd0 100644 --- a/regress/input-reflow-stress.sh +++ b/regress/input-reflow-stress.sh @@ -8,8 +8,8 @@ export PATH TERM LANG LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Linput-reflow-stress-$$ -f/dev/null" -TMUX2="$TEST_TMUX -Linput-reflow-stress-outer-$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" TMP=$(mktemp "${TMPDIR:-/tmp}/input-reflow-stress.XXXXXX") || exit 1 EXP=$(mktemp "${TMPDIR:-/tmp}/input-reflow-stress.XXXXXX") || exit 1 diff --git a/regress/input-replies.sh b/regress/input-replies.sh index 3435cd943..5fc77f843 100644 --- a/regress/input-replies.sh +++ b/regress/input-replies.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null sleep 0.5 diff --git a/regress/input-requests.sh b/regress/input-requests.sh index 5e7b3781a..094ce2a8a 100644 --- a/regress/input-requests.sh +++ b/regress/input-requests.sh @@ -15,7 +15,8 @@ import tempfile import time tmux = sys.argv[1] -server = [tmux, "-Ltest", "-f/dev/null"] +label = "testA%d" % os.getpid() +server = [tmux, "-L" + label, "-f/dev/null"] def run(*args, check=True): return subprocess.run(server + list(args), check=check, @@ -25,7 +26,7 @@ def attach(): pid, fd = os.forkpty() if pid == 0: os.environ["TERM"] = "xterm-256color" - os.execl(tmux, tmux, "-Ltest", "-f/dev/null", "attach-session", + os.execl(tmux, tmux, "-L" + label, "-f/dev/null", "attach-session", "-t", "requests") os.set_blocking(fd, False) return pid, fd diff --git a/regress/kill-session-process-exit.sh b/regress/kill-session-process-exit.sh index 04617ca2c..405449be2 100644 --- a/regress/kill-session-process-exit.sh +++ b/regress/kill-session-process-exit.sh @@ -6,7 +6,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null sleep 1 diff --git a/regress/lifecycle-deferred.sh b/regress/lifecycle-deferred.sh index 2650f1827..d2669ff46 100644 --- a/regress/lifecycle-deferred.sh +++ b/regress/lifecycle-deferred.sh @@ -8,8 +8,8 @@ export TERM LC_ALL LANG [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Llifecycle-deferred -f/dev/null" -TMUX2="$TEST_TMUX -Llifecycle-deferred-outer -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" TMPDIR=$(mktemp -d) IN="$TMPDIR/in" diff --git a/regress/mode-mutation.sh b/regress/mode-mutation.sh index cab8e72c8..96927e995 100644 --- a/regress/mode-mutation.sh +++ b/regress/mode-mutation.sh @@ -8,20 +8,30 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMP=$(mktemp -d) || exit 1 +TMUX_TMPDIR="$TMP" +export TMUX_TMPDIR -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" -cleanup() +cleanup_servers() { $TMUX kill-server 2>/dev/null $TMUX2 kill-server 2>/dev/null sleep 0.5 } +cleanup() +{ + cleanup_servers + rm -rf "$TMP" +} +trap cleanup EXIT + fail() { - echo "$1" + echo "$1" >&2 cleanup exit 1 } @@ -53,7 +63,7 @@ wait_for() { i=0 while [ "$i" -lt 50 ]; do - capture | grep -q "$1" && return 0 + capture | grep -F -q "$1" && return 0 sleep 0.2 i=$((i + 1)) done @@ -95,7 +105,7 @@ start_client() s=$1 cmd=${2:-cat} - cleanup + cleanup_servers $TMUX new-session -d -s "$s" -n main -x 80 -y 24 "$cmd" || \ fail "$s: new-session failed" $TMUX2 new-session -d -s out -x 80 -y 24 "$TMUX attach -t $s" || \ @@ -287,7 +297,7 @@ test_copy_mode() assert_alive "copy-mode exit" } -cleanup +cleanup_servers test_choose_tree test_choose_buffer test_choose_client diff --git a/regress/new-session-base-index.sh b/regress/new-session-base-index.sh index bb6dd5945..89fdb4de5 100644 --- a/regress/new-session-base-index.sh +++ b/regress/new-session-base-index.sh @@ -6,7 +6,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/new-session-command.sh b/regress/new-session-command.sh index b2fc91db7..520c91e4f 100644 --- a/regress/new-session-command.sh +++ b/regress/new-session-command.sh @@ -6,7 +6,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/new-session-environment.sh b/regress/new-session-environment.sh index e5404e67d..fc935687f 100644 --- a/regress/new-session-environment.sh +++ b/regress/new-session-environment.sh @@ -5,7 +5,7 @@ PATH=/bin:/usr/bin [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TERM=$($TMUX start \; show -gv default-terminal) diff --git a/regress/new-session-no-client.sh b/regress/new-session-no-client.sh index 84fddaecb..2f3da5abe 100644 --- a/regress/new-session-no-client.sh +++ b/regress/new-session-no-client.sh @@ -8,7 +8,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/new-session-size.sh b/regress/new-session-size.sh index 029bd6eed..6a35abbbd 100644 --- a/regress/new-session-size.sh +++ b/regress/new-session-size.sh @@ -6,7 +6,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/new-window-command.sh b/regress/new-window-command.sh index 183491159..21a2661e8 100644 --- a/regress/new-window-command.sh +++ b/regress/new-window-command.sh @@ -6,7 +6,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/options-array.sh b/regress/options-array.sh index 3b18ce977..c372e3461 100644 --- a/regress/options-array.sh +++ b/regress/options-array.sh @@ -20,7 +20,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null check_value() diff --git a/regress/options-scope.sh b/regress/options-scope.sh index bbc7168aa..ac6d62f77 100644 --- a/regress/options-scope.sh +++ b/regress/options-scope.sh @@ -17,7 +17,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null # check_value $args $expected diff --git a/regress/options-values.sh b/regress/options-values.sh index 28acd2b47..75da52e01 100644 --- a/regress/options-values.sh +++ b/regress/options-values.sh @@ -17,7 +17,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null check_value() diff --git a/regress/osc-11colours.sh b/regress/osc-11colours.sh index 2fba76d82..5cdc1be41 100644 --- a/regress/osc-11colours.sh +++ b/regress/osc-11colours.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null $TMUX new -d diff --git a/regress/pane-ops.sh b/regress/pane-ops.sh index 46984bc27..762bea200 100644 --- a/regress/pane-ops.sh +++ b/regress/pane-ops.sh @@ -30,7 +30,7 @@ LC_ALL=C.UTF-8 export TERM LANG LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null # check_ok $cmd... diff --git a/regress/prompt-keys.sh b/regress/prompt-keys.sh index 8c17581b1..6fde51b7b 100644 --- a/regress/prompt-keys.sh +++ b/regress/prompt-keys.sh @@ -7,8 +7,8 @@ LANG=C.UTF-8 export TERM LC_ALL LANG [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -OUT="$TEST_TMUX -Ltest -f/dev/null" # outer (host for the client) -IN="$TEST_TMUX -Ltest2 -f/dev/null" # inner (under test) +OUT="$TEST_TMUX -LtestA$$ -f/dev/null" # outer (host for the client) +IN="$TEST_TMUX -LtestB$$ -f/dev/null" # inner (under test) $OUT kill-server 2>/dev/null $IN kill-server 2>/dev/null diff --git a/regress/prompt-mechanics.sh b/regress/prompt-mechanics.sh index 6f3e5294e..55bd17a69 100644 --- a/regress/prompt-mechanics.sh +++ b/regress/prompt-mechanics.sh @@ -20,8 +20,8 @@ LANG=C.UTF-8 export TERM LC_ALL LANG [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -OUT="$TEST_TMUX -Ltest -f/dev/null" # outer (host for the client) -IN="$TEST_TMUX -Ltest2 -f/dev/null" # inner (under test) +OUT="$TEST_TMUX -LtestA$$ -f/dev/null" # outer (host for the client) +IN="$TEST_TMUX -LtestB$$ -f/dev/null" # inner (under test) $OUT kill-server 2>/dev/null $IN kill-server 2>/dev/null diff --git a/regress/run-shell-output.sh b/regress/run-shell-output.sh index 3b44504c2..926a520c9 100644 --- a/regress/run-shell-output.sh +++ b/regress/run-shell-output.sh @@ -7,7 +7,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/screen-redraw-bidi.sh b/regress/screen-redraw-bidi.sh index e4e962950..ee9c2fa16 100644 --- a/regress/screen-redraw-bidi.sh +++ b/regress/screen-redraw-bidi.sh @@ -17,8 +17,8 @@ LC_ALL=C.UTF-8 export TERM LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" RESULTS=screen-redraw-results TMP=$(mktemp) diff --git a/regress/screen-redraw-cache.sh b/regress/screen-redraw-cache.sh index 27c98e3b4..0e0abf9db 100644 --- a/regress/screen-redraw-cache.sh +++ b/regress/screen-redraw-cache.sh @@ -18,8 +18,8 @@ LC_ALL=C.UTF-8 export TERM LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" RESULTS=screen-redraw-results TMP=$(mktemp) diff --git a/regress/screen-redraw-floating.sh b/regress/screen-redraw-floating.sh index 82c36d364..67d213699 100644 --- a/regress/screen-redraw-floating.sh +++ b/regress/screen-redraw-floating.sh @@ -16,8 +16,8 @@ LC_ALL=C.UTF-8 export TERM LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" RESULTS=screen-redraw-results TMP=$(mktemp) diff --git a/regress/screen-redraw-indicators.sh b/regress/screen-redraw-indicators.sh index 60bf652b2..28a1dee6c 100644 --- a/regress/screen-redraw-indicators.sh +++ b/regress/screen-redraw-indicators.sh @@ -18,8 +18,8 @@ LC_ALL=C.UTF-8 export TERM LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" RESULTS=screen-redraw-results TMP=$(mktemp) diff --git a/regress/screen-redraw-outside.sh b/regress/screen-redraw-outside.sh index 53a2a72b1..3eeb94938 100644 --- a/regress/screen-redraw-outside.sh +++ b/regress/screen-redraw-outside.sh @@ -18,8 +18,8 @@ LC_ALL=C.UTF-8 export TERM LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" RESULTS=screen-redraw-results TMP=$(mktemp) diff --git a/regress/screen-redraw-popups.sh b/regress/screen-redraw-popups.sh index 1eb7e5897..8ad3ba2eb 100644 --- a/regress/screen-redraw-popups.sh +++ b/regress/screen-redraw-popups.sh @@ -17,8 +17,8 @@ LC_ALL=C.UTF-8 export TERM LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" RESULTS=screen-redraw-results TMP=$(mktemp) diff --git a/regress/screen-redraw-scrollbars.sh b/regress/screen-redraw-scrollbars.sh index f8298b5e1..914fe542c 100644 --- a/regress/screen-redraw-scrollbars.sh +++ b/regress/screen-redraw-scrollbars.sh @@ -16,8 +16,8 @@ LC_ALL=C.UTF-8 export TERM LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" RESULTS=screen-redraw-results TMP=$(mktemp) diff --git a/regress/screen-redraw-status.sh b/regress/screen-redraw-status.sh index 12ca20bb1..46cb5fcad 100644 --- a/regress/screen-redraw-status.sh +++ b/regress/screen-redraw-status.sh @@ -20,8 +20,8 @@ LC_ALL=C.UTF-8 export TERM LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" RESULTS=screen-redraw-results TMP=$(mktemp) diff --git a/regress/screen-redraw-tiled.sh b/regress/screen-redraw-tiled.sh index 94353f5f8..3b32478f0 100644 --- a/regress/screen-redraw-tiled.sh +++ b/regress/screen-redraw-tiled.sh @@ -24,8 +24,8 @@ LC_ALL=C.UTF-8 export TERM LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" RESULTS=screen-redraw-results TMP=$(mktemp) diff --git a/regress/screen-redraw-window-style.sh b/regress/screen-redraw-window-style.sh index 1d2b2b281..69ac824f2 100644 --- a/regress/screen-redraw-window-style.sh +++ b/regress/screen-redraw-window-style.sh @@ -13,8 +13,8 @@ LC_ALL=C.UTF-8 export TERM LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" RESULTS=screen-redraw-results TMP=$(mktemp) diff --git a/regress/session-group-resize.sh b/regress/session-group-resize.sh index 28e7a85ed..f2b634a43 100644 --- a/regress/session-group-resize.sh +++ b/regress/session-group-resize.sh @@ -10,7 +10,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null TMP1=$(mktemp) diff --git a/regress/session-ops.sh b/regress/session-ops.sh index 4938ee22c..08c5dfbae 100644 --- a/regress/session-ops.sh +++ b/regress/session-ops.sh @@ -27,7 +27,7 @@ LC_ALL=C.UTF-8 export TERM LANG LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null # check_ok $cmd... diff --git a/regress/set-hook-B.sh b/regress/set-hook-B.sh index 188bfdd24..4947af70c 100644 --- a/regress/set-hook-B.sh +++ b/regress/set-hook-B.sh @@ -10,7 +10,7 @@ export TERM LC_ALL LANG OUT=$(mktemp -d) TMUX_TMPDIR="$OUT" export TMUX_TMPDIR -TMUX="$TEST_TMUX -Ltest$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" fail() { diff --git a/regress/set-hook-R.sh b/regress/set-hook-R.sh index b36edc323..49af68efc 100644 --- a/regress/set-hook-R.sh +++ b/regress/set-hook-R.sh @@ -10,7 +10,7 @@ export TERM LC_ALL LANG OUT=$(mktemp -d) TMUX_TMPDIR="$OUT" export TMUX_TMPDIR -TMUX="$TEST_TMUX -Ltest$$ -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" fail() { diff --git a/regress/style-trim.sh b/regress/style-trim.sh index 5b03482d9..f42e0ffff 100644 --- a/regress/style-trim.sh +++ b/regress/style-trim.sh @@ -17,9 +17,9 @@ if command -v bash >/dev/null 2>&1; then fi [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" $TMUX2 kill-server 2>/dev/null $TMUX2 -f/dev/null new -d "$TMUX -f/dev/null new -- $shell" diff --git a/regress/targets-panes.sh b/regress/targets-panes.sh index db353403b..9ea936173 100644 --- a/regress/targets-panes.sh +++ b/regress/targets-panes.sh @@ -27,7 +27,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null # check $target $expected [format] diff --git a/regress/targets.sh b/regress/targets.sh index 346a86736..75ee3dbb8 100644 --- a/regress/targets.sh +++ b/regress/targets.sh @@ -29,7 +29,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null # check $target $expected [format] diff --git a/regress/tty-draw-line.sh b/regress/tty-draw-line.sh index b57de08cc..59331aa0d 100644 --- a/regress/tty-draw-line.sh +++ b/regress/tty-draw-line.sh @@ -10,8 +10,8 @@ LC_ALL=C.UTF-8 export TERM LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" fail() { echo "$*" >&2 diff --git a/regress/tty-keys.sh b/regress/tty-keys.sh index 849f6f336..1b300b995 100644 --- a/regress/tty-keys.sh +++ b/regress/tty-keys.sh @@ -4,9 +4,9 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null -TMUX2="$TEST_TMUX -Ltest2 -f/dev/null" +TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null" $TMUX2 kill-server 2>/dev/null TMP=$(mktemp) diff --git a/regress/utf8-test.sh b/regress/utf8-test.sh index b3cf41bd0..1836cc459 100644 --- a/regress/utf8-test.sh +++ b/regress/utf8-test.sh @@ -4,7 +4,7 @@ PATH=/bin:/usr/bin TERM=screen [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" TMP=$(mktemp) trap "rm -f $TMP" 0 1 15 $TMUX kill-server 2>/dev/null diff --git a/regress/window-ops.sh b/regress/window-ops.sh index dde7fc957..bdb1b5fb9 100644 --- a/regress/window-ops.sh +++ b/regress/window-ops.sh @@ -30,7 +30,7 @@ LC_ALL=C.UTF-8 export TERM LANG LC_ALL [ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) -TMUX="$TEST_TMUX -Ltest -f/dev/null" +TMUX="$TEST_TMUX -LtestA$$ -f/dev/null" $TMUX kill-server 2>/dev/null # check_ok $cmd...