From d47838ca1ffe66cb4a26796213d4273b09b7b4e3 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Wed, 4 Jun 2014 00:07:23 +0100 Subject: [PATCH] Add and use test helpers to create/kill test-specific tmux sessions --- .../__get_first_window_index.test.sh | 30 +++++++------------ test/libexec/tmuxifier-tmux.test.sh | 8 ++--- test/test-helper.sh | 29 ++++++++++++++++++ 3 files changed, 42 insertions(+), 25 deletions(-) diff --git a/test/lib/layout-helpers/__get_first_window_index.test.sh b/test/lib/layout-helpers/__get_first_window_index.test.sh index ef34372..c08dfd4 100755 --- a/test/lib/layout-helpers/__get_first_window_index.test.sh +++ b/test/lib/layout-helpers/__get_first_window_index.test.sh @@ -6,35 +6,25 @@ source "${root}/lib/layout-helpers.sh" # __get_first_window_index() tests. # -# Setup. -libexec="${root}/libexec" -export TMUXIFIER_TMUX_OPTS="-L tmuxifier-tests" -session="test" - - # When first window has a index of 0. -tmux $TMUXIFIER_TMUX_OPTS new-session -d -s $session +create-test-session assert "__get_first_window_index" "0" -tmux $TMUXIFIER_TMUX_OPTS kill-server +kill-test-session # When first window has a index of 1. -tmux $TMUXIFIER_TMUX_OPTS new-session -d -s $session -tmux $TMUXIFIER_TMUX_OPTS new-window -t "$session:1" -tmux $TMUXIFIER_TMUX_OPTS kill-window -t "$session:0" +create-test-session +test-socket-tmux new-window -t "$session:1" +test-socket-tmux kill-window -t "$session:0" assert "__get_first_window_index" "1" -tmux $TMUXIFIER_TMUX_OPTS kill-server +kill-test-session # When first window has a index of 2. -tmux $TMUXIFIER_TMUX_OPTS new-session -d -s $session -tmux $TMUXIFIER_TMUX_OPTS new-window -t "$session:2" -tmux $TMUXIFIER_TMUX_OPTS kill-window -t "$session:0" +create-test-session +test-socket-tmux new-window -t "$session:2" +test-socket-tmux kill-window -t "$session:0" assert "__get_first_window_index" "2" -tmux $TMUXIFIER_TMUX_OPTS kill-server +kill-test-session -# Tear down. -unset TMUXIFIER_TMUX_OPTS -unset session - # End of tests. assert_end "__get_first_window_index()" diff --git a/test/libexec/tmuxifier-tmux.test.sh b/test/libexec/tmuxifier-tmux.test.sh index 0ed39df..9716360 100755 --- a/test/libexec/tmuxifier-tmux.test.sh +++ b/test/libexec/tmuxifier-tmux.test.sh @@ -8,17 +8,15 @@ source "${root}/lib/util.sh" # Setup. libexec="${root}/libexec" -export TMUXIFIER_TMUX_OPTS="-L tmuxifier-tests" -tmux $TMUXIFIER_TMUX_OPTS new-session -d -s foobar -tmux $TMUXIFIER_TMUX_OPTS new-session -d -s dude +test-socket-tmux new-session -d -s foobar +test-socket-tmux new-session -d -s dude # Passes all arguments to Tmux. assert "${libexec}/tmuxifier-tmux list-sessions -F \"- #{session_name}\"" \ "- dude\n- foobar" # Tear down. -tmux $TMUXIFIER_TMUX_OPTS kill-server -unset TMUXIFIER_TMUX_OPTS +kill-test-server # End of tests. assert_end "tmuxifier-tmux" diff --git a/test/test-helper.sh b/test/test-helper.sh index db512ea..3d37985 100644 --- a/test/test-helper.sh +++ b/test/test-helper.sh @@ -18,6 +18,9 @@ abs_dirname() { cd "$cwd" } +# Find and store path to Tmux binary. +TMUX_BIN="$(command -v tmux)" + # Set testroot variable. testroot="$(abs_dirname "$BASH_SOURCE")" @@ -43,3 +46,29 @@ unset TMUXIFIER_NO_COMPLETE # Include assert.sh and stub.sh libraries. source "${testroot}/assert.sh" source "${testroot}/stub.sh" + + +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 +}