mirror of https://github.com/tmux-plugins/tpm
parent
274098a029
commit
830feaae69
@ -1 +1,4 @@ |
||||
**/.vagrant/ |
||||
run_tests |
||||
tests/run_tests_in_isolation |
||||
tests/helpers/helpers.sh |
||||
|
@ -0,0 +1,3 @@ |
||||
[submodule "lib/tmux-test"] |
||||
path = lib/tmux-test |
||||
url = https://github.com/tmux-plugins/tmux-test.git |
@ -1,13 +1,14 @@ |
||||
# generic packages |
||||
# generic packages and latest Tmux 1.9a |
||||
before_install: |
||||
- sudo apt-get update |
||||
- sudo apt-get install -y git-core expect |
||||
- sudo apt-get install -y python-software-properties software-properties-common |
||||
|
||||
# install latest Tmux 1.9a |
||||
install: |
||||
- sudo add-apt-repository -y ppa:pi-rho/dev |
||||
- sudo apt-get update |
||||
- sudo apt-get install -y tmux=1.9a-1~ppa1~p |
||||
|
||||
script: ./tests/run-tests-within-vm |
||||
install: |
||||
- git clone https://github.com/tmux-plugins/tmux-test lib/tmux-test |
||||
- lib/tmux-test/setup |
||||
|
||||
script: ./tests/run_tests_in_isolation |
||||
|
@ -1,10 +0,0 @@ |
||||
VAGRANTFILE_API_VERSION = '2' |
||||
|
||||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| |
||||
config.vm.box = 'precise32' |
||||
config.vm.box_url = 'http://files.vagrantup.com/precise32.box' |
||||
|
||||
config.vm.synced_folder './', '/home/vagrant/tpm' |
||||
|
||||
config.vm.provision 'shell', path: 'vagrant_provisioning.sh' |
||||
end |
@ -0,0 +1 @@ |
||||
Subproject commit 672b2c3883df2f99acb27b3c302d4b773e62aa28 |
@ -1,31 +0,0 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
||||
|
||||
# running test suite is successful by default |
||||
tests_exit_value=0 |
||||
|
||||
run_vagrant() { |
||||
vagrant up |
||||
} |
||||
|
||||
# Halt vagrant after tests are done running, unless KEEP_RUNNING environment |
||||
# variable is set to 'true'. |
||||
stop_vagrant() { |
||||
if [ -z "$KEEP_RUNNING" ]; then |
||||
vagrant halt |
||||
fi |
||||
} |
||||
|
||||
run_tests() { |
||||
vagrant ssh -c "cd ~/tpm; ./tests/run-tests-within-vm" |
||||
tests_exit_value=$? |
||||
} |
||||
|
||||
main() { |
||||
run_vagrant |
||||
run_tests |
||||
stop_vagrant |
||||
exit "$tests_exit_value" |
||||
} |
||||
main |
@ -1,73 +0,0 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
FAIL="false" |
||||
|
||||
set_tmux_conf_helper() { |
||||
> ~/.tmux.conf # empty filename |
||||
while read line; do |
||||
echo "$line" >> ~/.tmux.conf |
||||
done |
||||
} |
||||
|
||||
create_test_plugin_helper() { |
||||
local plugin_path="$HOME/.tmux/plugins/tmux_test_plugin/" |
||||
rm -rf $plugin_path |
||||
mkdir -p $plugin_path |
||||
|
||||
while read -r line; do |
||||
echo $line >> "$plugin_path/test_plugin.tmux" |
||||
done |
||||
chmod +x "$plugin_path/test_plugin.tmux" |
||||
} |
||||
|
||||
teardown_helper() { |
||||
rm ~/.tmux.conf |
||||
rm -rf ~/.tmux/ |
||||
tmux kill-server >/dev/null 2>&1 |
||||
} |
||||
|
||||
check_dir_exists_helper() { |
||||
local dir_path=$1 |
||||
if [ -d "$dir_path" ]; then |
||||
return 0 |
||||
else |
||||
return 1 |
||||
fi |
||||
} |
||||
|
||||
# runs the scripts and asserts it has the correct output and exit code |
||||
script_run_helper() { |
||||
local script="$1" |
||||
local expected_output="$2" |
||||
local expected_exit_code="${3:-0}" |
||||
"$script" | |
||||
grep "$expected_output" >/dev/null 2>&1 && # grep -q flag quits the script early |
||||
[ "${PIPESTATUS[0]}" -eq "$expected_exit_code" ] |
||||
} |
||||
|
||||
fail_helper() { |
||||
local message="$1" |
||||
echo "$message" >&2 |
||||
FAIL="true" |
||||
} |
||||
|
||||
exit_value_helper() { |
||||
local fail="$1" |
||||
if [ "$FAIL" == "true" ]; then |
||||
echo "FAIL!" |
||||
echo |
||||
exit 1 |
||||
else |
||||
echo "SUCCESS" |
||||
echo |
||||
exit 0 |
||||
fi |
||||
} |
||||
|
||||
run_tests() { |
||||
# get all the functions starting with 'test_' and invoke them |
||||
for test in $(compgen -A function | grep "^test_"); do |
||||
"$test" |
||||
done |
||||
exit_value_helper |
||||
} |
@ -0,0 +1,18 @@ |
||||
check_dir_exists_helper() { |
||||
local dir_path=$1 |
||||
if [ -d "$dir_path" ]; then |
||||
return 0 |
||||
else |
||||
return 1 |
||||
fi |
||||
} |
||||
|
||||
# runs the scripts and asserts it has the correct output and exit code |
||||
script_run_helper() { |
||||
local script="$1" |
||||
local expected_output="$2" |
||||
local expected_exit_code="${3:-0}" |
||||
"$script" | |
||||
grep "$expected_output" >/dev/null 2>&1 && # grep -q flag quits the script early |
||||
[ "${PIPESTATUS[0]}" -eq "$expected_exit_code" ] |
||||
} |
@ -1,41 +0,0 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
# A test runner file. |
||||
# Intended to be run from `./run-tests` script *within* a virtual machine. |
||||
# DO NOT run it locally as it might overwrite your `.tmux.conf` (that's what it |
||||
# does during the tests). |
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
||||
|
||||
# running test suite is successful by default |
||||
tests_exit_value=0 |
||||
|
||||
set_global_exit_val_to_false() { |
||||
tests_exit_value=1 |
||||
} |
||||
|
||||
test_files() { |
||||
ls -1 "$CURRENT_DIR" | # test files are in the current dir |
||||
grep -i '^test' | # test file names start with 'test' |
||||
xargs # file names in one line |
||||
} |
||||
|
||||
run_tests() { |
||||
local test_file |
||||
for test_file in $(test_files); do |
||||
echo "Running test: $test_file" |
||||
"$CURRENT_DIR/$test_file" |
||||
|
||||
# handling exit value |
||||
local exit_value="$?" |
||||
if [ "$exit_value" != 0 ]; then |
||||
set_global_exit_val_to_false |
||||
fi |
||||
done |
||||
} |
||||
|
||||
main() { |
||||
run_tests |
||||
exit "$tests_exit_value" |
||||
} |
||||
main |
@ -1,9 +0,0 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
sudo apt-get update |
||||
sudo apt-get install -y git-core expect python-software-properties software-properties-common |
||||
|
||||
# install latest Tmux 1.9a |
||||
sudo add-apt-repository -y ppa:pi-rho/dev |
||||
sudo apt-get update |
||||
sudo apt-get install -y tmux=1.9a-1~ppa1~p |
Loading…
Reference in new issue