mirror of
https://github.com/jimeh/tmuxifier.git
synced 2026-02-19 01:46:40 +00:00
Basic setup for tests
Based on the test setup of stub.sh: https://github.com/jimeh/stub.sh
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
test/assert.sh
|
||||
test/stub.sh
|
||||
4
.travis.yml
Normal file
4
.travis.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
language: bash
|
||||
script: make test
|
||||
before_install:
|
||||
- sudo apt-get install bc
|
||||
37
Makefile
Normal file
37
Makefile
Normal file
@@ -0,0 +1,37 @@
|
||||
test: prepare
|
||||
./test.sh
|
||||
|
||||
prepare: test/assert.sh test/stub.sh
|
||||
|
||||
test/assert.sh:
|
||||
test -f "test/assert.sh" || ( \
|
||||
echo "fetching test/assert.sh..." && \
|
||||
curl -s -L -o test/assert.sh \
|
||||
https://raw.github.com/lehmannro/assert.sh/v1.0.2/assert.sh \
|
||||
)
|
||||
|
||||
update-assert.sh: remove-assert.sh test/assert.sh
|
||||
|
||||
remove-assert.sh:
|
||||
test -f "test/assert.sh" && \
|
||||
rm "test/assert.sh" && \
|
||||
echo "removed test/assert.sh"
|
||||
|
||||
test/stub.sh:
|
||||
test -f "test/stub.sh" || ( \
|
||||
echo "fetching test/stub.sh..." && \
|
||||
curl -s -L -o test/stub.sh \
|
||||
https://raw.github.com/jimeh/stub.sh/v0.3.0/stub.sh \
|
||||
)
|
||||
|
||||
update-stub.sh: remove-stub.sh test/stub.sh
|
||||
|
||||
remove-stub.sh:
|
||||
test -f "test/stub.sh" && \
|
||||
rm "test/stub.sh" && \
|
||||
echo "removed test/stub.sh"
|
||||
|
||||
.SILENT:
|
||||
.PHONY: test prepare \
|
||||
test/assert.sh update-assert.sh remove-assert.sh \
|
||||
test/stub.sh update-stub.sh remove-stub.sh
|
||||
34
test.sh
Executable file
34
test.sh
Executable file
@@ -0,0 +1,34 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
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"
|
||||
}
|
||||
|
||||
|
||||
testdir="$(abs_dirname "$0")/test"
|
||||
testfiles="$(find "$testdir" -name "*-test.sh")"
|
||||
|
||||
RET=0
|
||||
for testfile in $testfiles; do
|
||||
echo ""
|
||||
echo "running: ${testfile/#$(dirname "$testdir")\//}"
|
||||
cd "$(dirname "$testfile")"
|
||||
"$testfile"
|
||||
if [ "$?" != "0" ]; then RET=1; fi
|
||||
done
|
||||
echo ""
|
||||
exit $RET
|
||||
8
test/test-helper.sh
Normal file
8
test/test-helper.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
[ -n "$TEST_DEBUG" ] && set -x
|
||||
|
||||
# Set testroot variable.
|
||||
testroot="$(dirname "$BASH_SOURCE")"
|
||||
|
||||
# Include assert.sh and stub.sh libraries.
|
||||
source "${testroot}/assert.sh"
|
||||
source "${testroot}/stub.sh"
|
||||
Reference in New Issue
Block a user