Use test-runner.sh instead of homegrown test.sh

This commit is contained in:
2014-05-26 13:44:08 +01:00
parent 47ce28bba6
commit f3e0f666cb
21 changed files with 35 additions and 42 deletions

3
.gitignore vendored
View File

@@ -1 +1,2 @@
test/assert.sh
test/assert.sh
test-runner.sh

View File

@@ -1,12 +1,38 @@
test: prepare
./test.sh
test: bootstrap
./test-runner.sh
prepare:
test -f "test/assert.sh" || ( \
bootstrap: test-runner.sh test/assert.sh
clean: remove-test-runner.sh remove-assert.sh
test/assert.sh:
test -f "test/assert.sh" || \
echo "fetching assert.sh..." && \
curl -s -L -o test/assert.sh \
https://raw.github.com/lehmannro/assert.sh/v1.0.2/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"\
) || exit 0
test-runner.sh:
test -f "test-runner.sh" || \
echo "fetching test-runner.sh..." && \
curl -s -L -o test-runner.sh \
https://github.com/jimeh/test-runner.sh/raw/v0.1.0/test-runner.sh && \
chmod +x test-runner.sh
remove-test-runner.sh:
( \
test -f "test-runner.sh" && rm "test-runner.sh" && \
echo "removed test-runner.sh"\
) || exit 0
update-test-runner.sh: remove-test-runner.sh test-runner.sh
.SILENT:
.PHONY: test prepare
.PHONY: test bootstrap

34
test.sh
View File

@@ -1,34 +0,0 @@
#! /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