Update names test.

This commit is contained in:
Nicholas Marriott
2026-07-01 18:02:25 +01:00
parent 5e32eddb8c
commit 8108356978

View File

@@ -35,68 +35,59 @@ $TMUX set-option -qg allow-set-title on || exit 1
$TMUX set-option -qg allow-rename on || exit 1 $TMUX set-option -qg allow-rename on || exit 1
$TMUX set-option -qg automatic-rename off || exit 1 $TMUX set-option -qg automatic-rename off || exit 1
# Commands reject ':' and '.' for sessions and windows, but allow '#'. # Commands allow empty names, ':', '.', '#' and '#('.
$TMUX rename-session 'session#ok' || fail "session name with # rejected" $TMUX rename-session '' || fail "empty session name rejected"
must_equal "$($TMUX display-message -p '#{session_name}')" 'session#ok' must_equal "$($TMUX display-message -p '#{session_name}')" ''
must_fail $TMUX rename-session 'session:bad' $TMUX rename-session 'session:.##(ok)' || \
must_fail $TMUX rename-session 'session.bad' fail "session name with : . or #( rejected"
must_equal "$($TMUX display-message -p '#{session_name}')" 'session:.#(ok)'
$TMUX rename-window 'window#ok' || fail "window name with # rejected" $TMUX rename-window '' || fail "empty window name rejected"
must_equal "$($TMUX display-message -p '#{window_name}')" 'window#ok' must_equal "$($TMUX display-message -p '#{window_name}')" ''
must_fail $TMUX rename-window 'window:bad' $TMUX rename-window 'window:.##(ok)' || \
must_fail $TMUX rename-window 'window.bad' fail "window name with : . or #( rejected"
must_equal "$($TMUX display-message -p '#{window_name}')" 'window:.#(ok)'
$TMUX set-option -q @name 'format#ok' || exit 1 $TMUX set-option -q @name 'format:.#(ok)' || exit 1
$TMUX rename-session '#{@name}' || fail "format in session name not expanded" $TMUX rename-session '#{@name}' || fail "format in session name not expanded"
must_equal "$($TMUX display-message -p '#{session_name}')" 'format#ok' must_equal "$($TMUX display-message -p '#{session_name}')" 'format:.#(ok)'
$TMUX rename-window '#{@name}' || fail "format in window name not expanded" $TMUX rename-window '#{@name}' || fail "format in window name not expanded"
must_equal "$($TMUX display-message -p '#{window_name}')" 'format#ok' must_equal "$($TMUX display-message -p '#{window_name}')" 'format:.#(ok)'
must_fail $TMUX rename-session '#{session_name}:bad' $TMUX set-option -q @name 'format:.#(ok)' || exit 1
must_fail $TMUX rename-window '#{window_name}.bad'
pid=$($TMUX display-message -p '#{pid}') pid=$($TMUX display-message -p '#{pid}')
created=$($TMUX new-session -dP -F '#{session_id}:#{window_id}' \ created=$($TMUX new-session -dP -F '#{session_id}:#{window_id}' \
-s 'new-session#ok' -n 'new-window#ok') || \ -s 'new-session:.##(ok)' -n 'new-window:.##(ok)') || \
fail "new-session name with # rejected" fail "new-session name with : . or #( rejected"
created_session=${created%:*} created_session=${created%:*}
created_window=${created#*:} created_window=${created#*:}
must_equal "$($TMUX display-message -pt "$created_session" '#{session_name}')" \ must_equal "$($TMUX display-message -pt "$created_session" '#{session_name}')" \
'new-session#ok' 'new-session:.#(ok)'
must_equal "$($TMUX display-message -pt "$created_window" '#{window_name}')" \ must_equal "$($TMUX display-message -pt "$created_window" '#{window_name}')" \
'new-window#ok' 'new-window:.#(ok)'
$TMUX kill-session -t "$created_session" $TMUX kill-session -t "$created_session"
must_fail $TMUX new-session -d -s 'new-session:bad'
must_fail $TMUX new-session -d -s 'new-session.bad'
must_fail $TMUX new-session -d -n 'new-window:bad'
must_fail $TMUX new-session -d -n 'new-window.bad'
created_window=$($TMUX new-window -dP -F '#{window_id}' \ created_window=$($TMUX new-window -dP -F '#{window_id}' \
-n 'created-window#ok') || \ -n 'created-window:.##(ok)') || \
fail "new-window name with # rejected" fail "new-window name with : . or #( rejected"
must_equal "$($TMUX display-message -pt "$created_window" '#{window_name}')" \ must_equal "$($TMUX display-message -pt "$created_window" '#{window_name}')" \
'created-window#ok' 'created-window:.#(ok)'
must_fail $TMUX new-window -d -n 'created-window:bad'
must_fail $TMUX new-window -d -n 'created-window.bad'
created=$($TMUX new-session -dP -F '#{session_id}:#{window_id}' \ created=$($TMUX new-session -dP -F '#{session_id}:#{window_id}' \
-s 'new-session-#{pid}' -n 'new-window-#{pid}') || \ -s 'new-session-#{pid}:.##(ok)' -n 'new-window-#{pid}:.##(ok)') || \
fail "format in new-session name not expanded" fail "format in new-session name not expanded"
created_session=${created%:*} created_session=${created%:*}
created_window=${created#*:} created_window=${created#*:}
must_equal "$($TMUX display-message -pt "$created_session" '#{session_name}')" \ must_equal "$($TMUX display-message -pt "$created_session" '#{session_name}')" \
"new-session-$pid" "new-session-$pid:.#(ok)"
must_equal "$($TMUX display-message -pt "$created_window" '#{window_name}')" \ must_equal "$($TMUX display-message -pt "$created_window" '#{window_name}')" \
"new-window-$pid" "new-window-$pid:.#(ok)"
$TMUX kill-session -t "$created_session" $TMUX kill-session -t "$created_session"
created_window=$($TMUX new-window -dP -F '#{window_id}' -n '#{@name}') || \ created_window=$($TMUX new-window -dP -F '#{window_id}' -n '#{@name}') || \
fail "format in new-window name not expanded" fail "format in new-window name not expanded"
must_equal "$($TMUX display-message -pt "$created_window" '#{window_name}')" \ must_equal "$($TMUX display-message -pt "$created_window" '#{window_name}')" \
'format#ok' 'format:.#(ok)'
must_fail $TMUX new-session -d -s 'new-session-#{pid}:bad'
must_fail $TMUX new-session -d -n 'new-window-#{pid}.bad'
must_fail $TMUX new-window -d -n '#{window_name}:bad'
# Invalid UTF-8 is never allowed for command names. # Invalid UTF-8 is never allowed for command names.
invalid=$(printf '\302') invalid=$(printf '\302')
@@ -124,9 +115,9 @@ must_equal "$($TMUX list-buffers -F '#{buffer_name}')" 'buffer#:.ok'
# Window names from escape sequences allow '#' except in '#('. # Window names from escape sequences allow '#' except in '#('.
$TMUX send-keys "printf '\\033kescape#:.ok\\033\\\\'" Enter || exit 1 $TMUX send-keys "printf '\\033kescape#:.ok\\033\\\\'" Enter || exit 1
sleep 1 sleep 1
must_equal "$($TMUX display-message -p '#{window_name}')" 'escape#__ok' must_equal "$($TMUX display-message -p '#{window_name}')" 'escape#:.ok'
# Titles from escape sequences reject only '#'. # Titles from escape sequences allow '#' except in '#('.
$TMUX send-keys "printf '\\033]2;escape#:.ok\\007'" Enter || exit 1 $TMUX send-keys "printf '\\033]2;escape#:.ok\\007'" Enter || exit 1
sleep 1 sleep 1
must_equal "$($TMUX display-message -p '#{pane_title}')" 'escape#:.ok' must_equal "$($TMUX display-message -p '#{pane_title}')" 'escape#:.ok'