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} }