diff options
Diffstat (limited to 'regress')
-rw-r--r-- | regress/Makefile | 9 | ||||
-rw-r--r-- | regress/capture-pane-sgr0.sh | 24 | ||||
-rw-r--r-- | regress/control-client-size.sh | 49 | ||||
-rw-r--r-- | regress/has-session-return.sh | 19 | ||||
-rw-r--r-- | regress/if-shell-TERM.sh | 30 | ||||
-rw-r--r-- | regress/if-shell-error.sh | 26 | ||||
-rw-r--r-- | regress/if-shell-nested.sh | 25 | ||||
-rw-r--r-- | regress/kill-session-process-exit.sh | 21 | ||||
-rw-r--r-- | regress/new-session-base-index.sh | 27 | ||||
-rw-r--r-- | regress/new-session-command.sh | 25 | ||||
-rw-r--r-- | regress/new-session-environment.sh | 66 | ||||
-rw-r--r-- | regress/new-session-no-client.sh | 25 | ||||
-rw-r--r-- | regress/new-session-size.sh | 27 | ||||
-rw-r--r-- | regress/new-window-command.sh | 26 |
14 files changed, 399 insertions, 0 deletions
diff --git a/regress/Makefile b/regress/Makefile new file mode 100644 index 00000000..3775a711 --- /dev/null +++ b/regress/Makefile @@ -0,0 +1,9 @@ +TESTS!= echo *.sh + +.PHONY: all $(TESTS) +.NOTPARALLEL: all $(TESTS) + +all: $(TESTS) + +$(TESTS): + sh $*.sh diff --git a/regress/capture-pane-sgr0.sh b/regress/capture-pane-sgr0.sh new file mode 100644 index 00000000..79d96a38 --- /dev/null +++ b/regress/capture-pane-sgr0.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +# 884 +# capture-pane should send colours after SGR 0 + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +TMP=$(mktemp) +trap "rm -f $TMP" 0 1 15 + +$TMUX -f/dev/null new -d \ + "printf '\033[31;42;1mabc\033[0;31mdef'; $TMUX capturep -peS0 -E0 >$TMP" +sleep 1 +printf '\033[1m\033[31m\033[42mabc\033[0m\033[31m\033[49mdef\033[39m\n'| \ + cmp - $TMP || exit 1 + +$TMUX has 2>/dev/null && exit 1 + +exit 0 diff --git a/regress/control-client-size.sh b/regress/control-client-size.sh new file mode 100644 index 00000000..cef48a0e --- /dev/null +++ b/regress/control-client-size.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +# 947 +# size in control mode should change after refresh-client -C, and -x and -y +# should work without -d for control clients + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +TMP=$(mktemp) +OUT=$(mktemp) +trap "rm -f $TMP $OUT" 0 1 15 + +$TMUX -f/dev/null new -d || exit 1 +sleep 1 +cat <<EOF|$TMUX -C a >$TMP +ls -F':#{session_width} #{session_height}' +refresh -C 100,50 +ls -F':#{session_width} #{session_height}' +EOF +grep ^: $TMP >$OUT +printf ":80 24\n:100 50\n"|cmp -s $OUT || exit 1 +$TMUX kill-server 2>/dev/null + +$TMUX -f/dev/null new -d || exit 1 +sleep 1 +cat <<EOF|$TMUX -C a >$TMP +ls -F':#{session_width} #{session_height}' +refresh -C 80,24 +ls -F':#{session_width} #{session_height}' +EOF +grep ^: $TMP >$OUT +printf ":80 24\n:80 24\n"|cmp -s $OUT || exit 1 +$TMUX kill-server 2>/dev/null + +cat <<EOF|$TMUX -C new -x 100 -y 50 >$TMP +ls -F':#{session_width} #{session_height}' +refresh -C 80,24 +ls -F':#{session_width} #{session_height}' +EOF +grep ^: $TMP >$OUT +printf ":100 50\n:80 24\n"|cmp -s $OUT || exit 1 +$TMUX kill-server 2>/dev/null + +exit 0 diff --git a/regress/has-session-return.sh b/regress/has-session-return.sh new file mode 100644 index 00000000..5cc30f05 --- /dev/null +++ b/regress/has-session-return.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +# 971 +# has-session should return 1 on error + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +$TMUX -f/dev/null has -tfoo </dev/null 2>/dev/null && exit 1 +$TMUX -f/dev/null start\; has -tfoo </dev/null 2>/dev/null && exit 1 +$TMUX -f/dev/null new -d\; has -tfoo </dev/null 2>/dev/null && exit 1 +$TMUX -f/dev/null new -dsfoo\; has -tfoo </dev/null 2>/dev/null || exit 1 +$TMUX kill-server 2>/dev/null + +exit 0 diff --git a/regress/if-shell-TERM.sh b/regress/if-shell-TERM.sh new file mode 100644 index 00000000..5967a58f --- /dev/null +++ b/regress/if-shell-TERM.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# 882 +# TERM should come from outside tmux for if-shell from the config file + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +TMP=$(mktemp) +trap "rm -f $TMP" 0 1 15 + +cat <<EOF >$TMP +if '[ "\$TERM" = "xterm" ]' \ + 'set -g default-terminal "vt220"' \ + 'set -g default-terminal "ansi"' +EOF + +TERM=xterm $TMUX -f$TMP new -d "echo \"#\$TERM\" >>$TMP" || exit 1 +sleep 1 && [ "$(tail -1 $TMP)" = "#vt220" ] || exit 1 + +TERM=screen $TMUX -f$TMP new -d "echo \"#\$TERM\" >>$TMP" || exit 1 +sleep 1 && [ "$(tail -1 $TMP)" = "#ansi" ] || exit 1 + +$TMUX has 2>/dev/null && exit 1 + +exit 0 diff --git a/regress/if-shell-error.sh b/regress/if-shell-error.sh new file mode 100644 index 00000000..24dc578e --- /dev/null +++ b/regress/if-shell-error.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +# 883 +# if-shell with an error should not core :-) + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +TMP=$(mktemp) +trap "rm -f $TMP" 0 1 15 + +cat <<EOF >$TMP +if 'true' 'wibble wobble' +EOF + +$TMUX -f$TMP new -d || exit 1 +sleep 1 +E=$($TMUX display -p '#{pane_in_mode}') +$TMUX kill-server 2>/dev/null +[ "$E" = "1" ] || exit 1 + +exit 0 diff --git a/regress/if-shell-nested.sh b/regress/if-shell-nested.sh new file mode 100644 index 00000000..976c6738 --- /dev/null +++ b/regress/if-shell-nested.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +# 882 +# tmux inside if-shell itself should work + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +TMP=$(mktemp) +trap "rm -f $TMP" 0 1 15 + +cat <<EOF >$TMP +if '$TMUX run "true"' 'set -s @done yes' +EOF + +TERM=xterm $TMUX -f$TMP new -d "$TMUX show -vs @done >>$TMP" || exit 1 +sleep 1 && [ "$(tail -1 $TMP)" = "yes" ] || exit 1 + +$TMUX has 2>/dev/null && exit 1 + +exit 0 diff --git a/regress/kill-session-process-exit.sh b/regress/kill-session-process-exit.sh new file mode 100644 index 00000000..27d883e2 --- /dev/null +++ b/regress/kill-session-process-exit.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# when we kill a session, processes running in it should be killed + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +$TMUX new -d 'sleep 1000' || exit 1 +P=$($TMUX display -pt0:0.0 '#{pane_pid}') +$TMUX new -d || exit 1 +sleep 1 +$TMUX kill-session -t0: +sleep 1 +kill -0 $P 2>/dev/null && exit 1 +$TMUX kill-server 2>/dev/null + +exit 0 diff --git a/regress/new-session-base-index.sh b/regress/new-session-base-index.sh new file mode 100644 index 00000000..337037c3 --- /dev/null +++ b/regress/new-session-base-index.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +# new session base-index + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +TMP=$(mktemp) +trap "rm -f $TMP" 0 1 15 + +cat <<EOF >$TMP +set -g base-index 100 +new +set base-index 200 +neww +EOF + +$TMUX -f$TMP start +echo $($TMUX lsw -F'#{window_index}') >$TMP +(echo "100 200"|cmp -s - $TMP) || exit 1 +$TMUX kill-server 2>/dev/null + +exit 0 diff --git a/regress/new-session-command.sh b/regress/new-session-command.sh new file mode 100644 index 00000000..02ba55d9 --- /dev/null +++ b/regress/new-session-command.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +# new session command + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +TMP=$(mktemp) +trap "rm -f $TMP" 0 1 15 + +cat <<EOF >$TMP +new sleep 101 +new -- sleep 102 +new "sleep 103" +EOF + +$TMUX -f$TMP start +[ $($TMUX ls|wc -l) -eq 3 ] || exit 1 +$TMUX kill-server 2>/dev/null + +exit 0 diff --git a/regress/new-session-environment.sh b/regress/new-session-environment.sh new file mode 100644 index 00000000..d53f204e --- /dev/null +++ b/regress/new-session-environment.sh @@ -0,0 +1,66 @@ +#!/bin/sh + +# new session environment + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +TMP=$(mktemp) +OUT=$(mktemp) +SCRIPT=$(mktemp) +trap "rm -f $TMP $OUT $SCRIPT" 0 1 15 + +cat <<EOF >$SCRIPT +( +echo TERM=\$TERM +echo PWD=\$(pwd) +echo PATH=\$PATH +echo SHELL=\$SHELL +echo TEST=\$TEST +) >$OUT +EOF + +cat <<EOF >$TMP +new -- /bin/sh $SCRIPT +EOF + +(cd /; env -i TERM=ansi TEST=test1 PATH=1 SHELL=/bin/sh \ + $TMUX -f$TMP start) || exit 1 +sleep 1 +(cat <<EOF|cmp -s - $OUT) || exit 1 +TERM=screen +PWD=/ +PATH=1 +SHELL=/bin/sh +TEST=test1 +EOF + +(cd /; env -i TERM=ansi TEST=test2 PATH=2 SHELL=/bin/sh \ + $TMUX -f$TMP new -d -- /bin/sh $SCRIPT) || exit 1 +sleep 1 +(cat <<EOF|cmp -s - $OUT) || exit 1 +TERM=screen +PWD=/ +PATH=2 +SHELL=/bin/sh +TEST=test2 +EOF + +(cd /; env -i TERM=ansi TEST=test3 PATH=3 SHELL=/bin/sh \ + $TMUX -f/dev/null new -d source $TMP) || exit 1 +sleep 1 +(cat <<EOF|cmp -s - $OUT) || exit 1 +TERM=screen +PWD=/ +PATH=2 +SHELL=/bin/sh +TEST=test2 +EOF + +$TMUX kill-server 2>/dev/null + +exit 0 diff --git a/regress/new-session-no-client.sh b/regress/new-session-no-client.sh new file mode 100644 index 00000000..88c064cd --- /dev/null +++ b/regress/new-session-no-client.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +# 869 +# new with no client (that is, from the config file) should imply -d and +# not attach + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +TMP=$(mktemp) +trap "rm -f $TMP" 0 1 15 + +cat <<EOF >$TMP +new -stest +EOF + +$TMUX -f$TMP start || exit 1 +sleep 1 && $TMUX has -t=test: || exit 1 +$TMUX kill-server 2>/dev/null + +exit 0 diff --git a/regress/new-session-size.sh b/regress/new-session-size.sh new file mode 100644 index 00000000..f9394f35 --- /dev/null +++ b/regress/new-session-size.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +# new-session without clients should be the right size + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +TMP=$(mktemp) +trap "rm -f $TMP" 0 1 15 + +$TMUX -f/dev/null new -d </dev/null || exit 1 +sleep 1 +$TMUX ls -F "#{session_width} #{session_height}" >$TMP +printf "80 24\n"|cmp -s $TMP || exit 1 +$TMUX kill-server 2>/dev/null + +$TMUX -f/dev/null new -d -x 100 -y 50 </dev/null || exit 1 +sleep 1 +$TMUX ls -F "#{session_width} #{session_height}" >$TMP +printf "100 50\n"|cmp -s $TMP || exit 1 +$TMUX kill-server 2>/dev/null + +exit 0 diff --git a/regress/new-window-command.sh b/regress/new-window-command.sh new file mode 100644 index 00000000..176bffb5 --- /dev/null +++ b/regress/new-window-command.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +# new session command + +PATH=/bin:/usr/bin +TERM=screen + +[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux) +TMUX="$TEST_TMUX -Ltest" +$TMUX kill-server 2>/dev/null + +TMP=$(mktemp) +trap "rm -f $TMP" 0 1 15 + +cat <<EOF >$TMP +new +neww sleep 101 +neww -- sleep 102 +neww "sleep 103" +EOF + +$TMUX -f$TMP start +[ $($TMUX lsw|wc -l) -eq 4 ] || exit 1 +$TMUX kill-server 2>/dev/null + +exit 0 |