From d928682b389f09a66afaa65de382da2a7426d9a6 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Fri, 25 Sep 2026 14:45:18 +0100 Subject: [PATCH] 5438 test. --- regress/socket-path.sh | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 regress/socket-path.sh diff --git a/regress/socket-path.sh b/regress/socket-path.sh new file mode 100644 index 000000000..eb3b2dbfe --- /dev/null +++ b/regress/socket-path.sh @@ -0,0 +1,57 @@ +#!/bin/sh + +# The socket directory must be an existing absolute path without "..". An +# empty $TMUX_TMPDIR is skipped. + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +unset TMUX TMUX_TMPDIR + +TMP=$(mktemp -d) +TMP=$(cd "$TMP" && pwd -P) +L="testSP$$" +DEFAULT="$(cd /tmp && pwd -P)/tmux-$(id -u)/$L" + +cleanup() +{ + "$TEST_TMUX" -S "$DEFAULT" kill-server 2>/dev/null + "$TEST_TMUX" -S "$TMP/tmux-$(id -u)/$L" kill-server 2>/dev/null + rm -rf "$TMP" "$DEFAULT" "$DEFAULT.lock" +} +trap cleanup 0 1 15 + +# check_path expected env... +check_path() +{ + expected=$1; shift + env "$@" "$TEST_TMUX" -L"$L" -f/dev/null new -d 'sleep 60' || exit 1 + actual=$(env "$@" "$TEST_TMUX" -L"$L" display -p '#{socket_path}') + env "$@" "$TEST_TMUX" -L"$L" kill-server + [ "$actual" = "$expected" ] || exit 1 +} + +# check_error expected env... +check_error() +{ + expected=$1; shift + if actual=$(env "$@" "$TEST_TMUX" -L"$L" -f/dev/null new -d \ + 'sleep 60' 2>&1); then + env "$@" "$TEST_TMUX" -L"$L" kill-server + exit 1 + fi + [ "$actual" = "$expected" ] || exit 1 +} + +check_path "$DEFAULT" TMUX_TMPDIR= +check_path "$TMP/tmux-$(id -u)/$L" TMUX_TMPDIR="$TMP" + +check_error "socket directory tmp is not an absolute path" TMUX_TMPDIR=tmp +check_error "couldn't resolve socket directory $TMP/missing (No such file or directory)" \ + TMUX_TMPDIR="$TMP/missing" +check_error "socket directory $TMP/.. contains .." TMUX_TMPDIR="$TMP/.." +check_error "socket directory /../tmp contains .." TMUX_TMPDIR=/../tmp +check_error "socket directory $TMP/../.. contains .." TMUX_TMPDIR="$TMP/../.." + +exit 0