diff options
author | P. J. McDermott <pjm@nac.net> | 2013-05-27 05:59:52 (EDT) |
---|---|---|
committer | P. J. McDermott <pjm@nac.net> | 2013-05-27 05:59:52 (EDT) |
commit | 00c289b25035faa590fe44bd8ce0b748ccd2ba82 (patch) | |
tree | 2801422748d0dd54cbb13c3c8963fe42176e8de2 /tests/testlib.sh | |
parent | 6478b3434097adb88120b213528e04510c583521 (diff) |
Implement a proper unit testing framework.
Diffstat (limited to 'tests/testlib.sh')
-rw-r--r-- | tests/testlib.sh | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/testlib.sh b/tests/testlib.sh new file mode 100644 index 0000000..d3fe350 --- /dev/null +++ b/tests/testlib.sh @@ -0,0 +1,40 @@ +assert() +{ + if ! t_out=$(eval 2>&1 "${@}"); then + printf 'Assertion failed: %s\n' "${*}" + printf '%s\n' "${t_out}" | sed 's/^/ /' + t_fail='true' + fi +} + +test_nodes() +{ + t_dir="${1}" + shift 1 + if [ ${#} -gt 0 ]; then + printf "${t_dir}%s\n" "${@}" | sort >expected + else + >expected + fi + find "${t_dir}" -exec ls -dF '{}' ';' | sort >actual + diff -u expected actual + t_ret=${?} + rm -f expected actual + return ${t_ret} +} + +test_non_dir_nodes() +{ + t_dir="${1}" + shift 1 + if [ ${#} -gt 0 ]; then + printf "${t_dir}%s\n" "${@}" | sort >expected + else + >expected + fi + find "${t_dir}" ! -type d | sort >actual + diff -u expected actual + t_ret=${?} + rm -f expected actual + return ${t_ret} +} |