summaryrefslogtreecommitdiffstats
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
parent32f7ccc0b1e3a32dad9d4f7acfe72f5069aaa9b3 (diff)
Make test target non-recursive.
-rw-r--r--Makefile.in32
-rw-r--r--tests/Makefile.in64
-rw-r--r--tests/local.mk22
3 files changed, 51 insertions, 67 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)'
diff --git a/tests/Makefile.in b/tests/Makefile.in
deleted file mode 100644
index f9ab9a0..0000000
--- a/tests/Makefile.in
+++ /dev/null
@@ -1,64 +0,0 @@
-# opkbuild
-# Makefile.in
-# Input Makefile for configure.
-#
-# Copyright (C) 2012 Patrick "P. J." McDermott
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-package_name = @package_name@
-package_version= @package_version@
-
-SH = @sh@
-
-.SUFFIXES:
-
-TESTS = ob_match_arch ob_parse_dep ob_reduce_deps
-
-distdir = ../$(package_name)-$(package_version)/tests
-distfiles = Makefile.in common.sh
-
-test:
- @all=0; failed=0; \
- for test in $(TESTS); do \
- out="$$($(SH) "$${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)'
- @cp -pR $(distfiles) '$(distdir)'
- @for test in $(TESTS); do \
- cp -p "$${test}.sh" "$${test}.rc" '$(distdir)'; \
- done
diff --git a/tests/local.mk b/tests/local.mk
new file mode 100644
index 0000000..ce8a2c0
--- /dev/null
+++ b/tests/local.mk
@@ -0,0 +1,22 @@
+# opkbuild
+# tests/local.mk
+#
+# Copyright (C) 2012-2013 Patrick "P. J." McDermott
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+tests = \
+ tests/ob_match_arch \
+ tests/ob_parse_dep \
+ tests/ob_reduce_deps