summaryrefslogtreecommitdiffstats
path: root/Makefile.in
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2013-06-15 15:38:27 (EDT)
committer P. J. McDermott <pjm@nac.net>2013-06-15 15:40:28 (EDT)
commitff5dc57dead03dffe11318695d61481d27688d4d (patch)
treebf458b069a44a669cbff68f9638b3409d3a47100 /Makefile.in
parent32f7ccc0b1e3a32dad9d4f7acfe72f5069aaa9b3 (diff)
Make test target non-recursive.
Diffstat (limited to 'Makefile.in')
-rw-r--r--Makefile.in32
1 files changed, 29 insertions, 3 deletions
diff --git a/Makefile.in b/Makefile.in
index 0c48098..73cfffd 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -62,6 +62,7 @@ include $(srcdir)/lib/package/local.mk
include $(srcdir)/lib/metadata/local.mk
include $(srcdir)/man/local.mk
include $(srcdir)/locale/local.mk
+include $(srcdir)/tests/local.mk
bin = $(bin_srcs:.sh=)
pkglib = $(pkglib_srcs:.sh=.sm)
@@ -93,7 +94,8 @@ distfiles = \
$(pkglibmetadata_srcs) \
$(man1_srcs) \
$(man3_srcs) \
- $(locale_srcs)
+ $(locale_srcs) \
+ $(tests)
script = \
s&@@PACKAGE_NAME@@&$(package_name)&;\
@@ -245,8 +247,32 @@ uninstall-locale:
done
test: all
- @printf 'Running tests...\n'
- @cd tests && $(MAKE) $(MACROS) test
+ @cd '$(srcdir)/tests'; \
+ all=0; failed=0; \
+ for test in $(tests); do \
+ out="$$($(sh) "$(srcdir)/$${test}.sh" 2>&1)"; \
+ if [ $${?} -eq 0 ]; then \
+ printf 'PASS: %s\n' "$${test}"; \
+ else \
+ printf 'FAIL: %s\n' "$${test}"; \
+ echo "$${out}" | sed 's/^/ /'; \
+ failed=$$(($$failed + 1)); \
+ fi; \
+ all=$$(($$all + 1)); \
+ done; \
+ banner="$$(printf '%d out of %d tests failed' $${failed} $${all})"; \
+ l=$$(echo "$${banner}" | wc -c); \
+ i=1; while [ "$${i}" -lt "$${l}" ]; do \
+ printf '='; \
+ i=$$(($$i + 1)); \
+ done; \
+ printf '\n%s\n' "$${banner}"; \
+ i=1; while [ $${i} -lt $${l} ]; do \
+ printf '='; \
+ i=$$(($$i + 1)); \
+ done; \
+ printf '\n'; \
+ exit $${failed}
$(distdir):
@mkdir -p '$(distdir)'