From a5344a3940f292d8d4f8907f92a54bf726b87e44 Mon Sep 17 00:00:00 2001 From: patrick brisbin Date: Fri, 23 Aug 2013 14:31:32 -0400 Subject: An integration test suite This test suite uses cram to run integration tests through `/bin/sh`. The tests are all high-level acceptance tests; they should work regardless of the implemention code. To run them, you must first install cram: sudo pip install cram Then the `check` target will run them: make check Failure output should be printed clearly to stdout, but in general: full test output is in `test/test-suite.log` and output specific to a test named `foo.t` is in `foo.t.log`. Tests are now encouraged in `CONTRIBUTING.md` as part of the normal pull request process. This is a TAP-enabled test suite. --- test/helper.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 test/helper.sh (limited to 'test/helper.sh') diff --git a/test/helper.sh b/test/helper.sh new file mode 100644 index 0000000..539e270 --- /dev/null +++ b/test/helper.sh @@ -0,0 +1,34 @@ +for bin in lsrc mkrc rcup rcdn; do + chmod +x "$TESTDIR/../bin"/$bin +done + +export HOME="$PWD" +export PATH="$TESTDIR/../bin:$PATH" +export RCRC="$HOME/.rcrc" +export RCM_LIB="$TESTDIR/../share" + +mkdir .dotfiles + +assert() { + local msg="$1"; shift + + test "$@" || echo "Failed assertion: $msg" + + return 0 +} + +refute() { + local msg="$1"; shift + + test "$@" && echo "Failed assertion: $msg" + + return 0 +} + +assert_linked() { + local from="$1" to="$2" + local resolved="$(readlink -f "$from")" + + assert "$from should be a symlink" -h "$from" + assert "$from should resolve to $to, resolved to $resolved" "$resolved" = "$to" +} -- cgit v1.2.3