mirror of
https://github.com/jimeh/tmuxifier.git
synced 2026-02-19 01:46:40 +00:00
92 lines
1.8 KiB
Bash
92 lines
1.8 KiB
Bash
[ -n "$TEST_DEBUG" ] && set -x
|
|
|
|
resolve_link() {
|
|
$(type -p greadlink readlink | head -1) $1
|
|
}
|
|
|
|
abs_dirname() {
|
|
local cwd="$(pwd)"
|
|
local path="$1"
|
|
|
|
while [ -n "$path" ]; do
|
|
cd "${path%/*}"
|
|
local name="${path##*/}"
|
|
path="$(resolve_link "$name" || true)"
|
|
done
|
|
|
|
pwd
|
|
cd "$cwd"
|
|
}
|
|
|
|
# Find and store path to Tmux binary.
|
|
TMUX_BIN="$(command -v tmux)"
|
|
|
|
# Set testroot variable.
|
|
testroot="$(abs_dirname "$BASH_SOURCE")"
|
|
|
|
# Set root variable.
|
|
root="$(abs_dirname "$testroot/../..")"
|
|
|
|
# Set TMUXIFIER environment variable.
|
|
TMUXIFIER="$root"
|
|
|
|
# Setup PATH environment variable.
|
|
PATH="$root/bin:$root/libexec:$PATH"
|
|
|
|
# Unset TMUX environment variable, tests assume they're not running within
|
|
# Tmux.
|
|
unset TMUX
|
|
|
|
# Unset various Tmuxifier environment variables to prevent a local install of
|
|
# Tmuxifier interfering with tests.
|
|
unset TMUXIFIER_LAYOUT_PATH
|
|
unset TMUXIFIER_TMUX_OPTS
|
|
unset TMUXIFIER_NO_COMPLETE
|
|
|
|
# Include assert.sh and stub.sh libraries.
|
|
source "${testroot}/assert.sh"
|
|
source "${testroot}/stub.sh"
|
|
|
|
#
|
|
# Test Helpers
|
|
#
|
|
|
|
test-socket-tmux() {
|
|
export TMUXIFIER_TMUX_OPTS="-L tmuxifier-tests"
|
|
"$TMUX_BIN" $TMUXIFIER_TMUX_OPTS "$@"
|
|
}
|
|
|
|
create-test-session() {
|
|
session="$1"
|
|
if [ -z "$session" ]; then session="test"; fi
|
|
|
|
test-socket-tmux new-session -d -s "$session"
|
|
}
|
|
|
|
kill-test-session() {
|
|
local target="$1"
|
|
if [ -z "$target" ]; then target="$session"; fi
|
|
|
|
test-socket-tmux kill-session -t "$target"
|
|
}
|
|
|
|
kill-test-server() {
|
|
test-socket-tmux kill-server
|
|
unset TMUXIFIER_TMUX_OPTS
|
|
unset session
|
|
}
|
|
|
|
test-socket-window-count() {
|
|
local list="$(test-socket-tmux list-windows)"
|
|
if [ -n "$1" ]; then
|
|
echo "$list" | grep $1 | wc -l | awk '{print $1}'
|
|
else
|
|
echo "$list" | wc -l | awk '{print $1}'
|
|
fi
|
|
}
|
|
|
|
test-socket-pane-count() {
|
|
local list="$(test-socket-tmux list-panes -t "$session:")"
|
|
echo "$list" | wc -l | awk '{print $1}'
|
|
}
|