1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
# tests/Makefile.am - handle the autotest based testsuite
EXTRA_DIST =
DISTCLEANFILES =
TESTCASES =
TESTCASES += autotest.at
TESTCASES += nbb-basic.at
TESTCASES += nbb-detect.at
TESTCASES += nbb-config.at
TESTCASES += nbb-scons.at
TESTCASES += nbb-automake.at
TESTCASES += nbb-runsh.at
# Add more testcases here
EXTRA_DIST += $(TESTCASES)
TESTSUITE_NAME = nbb-foo
TESTSUITE_COPYRIGHT = Copyright (C) 2007, 2008 Hans Ulrich Niedermann
TESTED_EXECUTABLES = git bzr
TESTSUITE = testsuite
EXTRA_DIST += atlocal.in local.at
DISTCLEANFILES += atconfig atlocal
DISTCLEANFILES += \
testsuite.log \
testsuite.dir/at-stderr \
testsuite.dir/at-stdout \
testsuite.dir/at-check-line \
testsuite.dir/at-status
git-version-check:
cd $(top_builddir) && $(MAKE) git-version-check
check-local: git-version-check atconfig atlocal $(srcdir)/$(TESTSUITE)
@echo "INFO: Running uninstalled test suite"; \
abs_top_builddir="$$(cd "$(top_builddir)" > /dev/null 2>&1 && pwd)"; \
abs_top_srcdir="$$(cd "$(top_srcdir)" > /dev/null 2>&1 && pwd)"; \
echo " " $(SHELL) "$(srcdir)/$(TESTSUITE)" AUTOTEST_PATH=`cd $(top_builddir)/src > /dev/null && pwd` PYTHONPATH="$${abs_top_builddir}/src" PYTHON="$(PYTHON)" NBB_SCRIPT="$${abs_top_builddir}/src/nbb" $(TESTSUITEFLAGS); \
$(SHELL) "$(srcdir)/$(TESTSUITE)" AUTOTEST_PATH=`cd $(top_builddir)/src > /dev/null && pwd` \
PYTHONPATH="$${abs_top_builddir}/src" \
PYTHON="$(PYTHON)" \
NBB_SCRIPT="$${abs_top_builddir}/src/nbb" \
$(TESTSUITEFLAGS)
installcheck-local: atconfig atlocal $(srcdir)/$(TESTSUITE)
@echo "INFO: Running installed test suite"; \
$(SHELL) "$(srcdir)/$(TESTSUITE)" AUTOTEST_PATH='$(DESTDIR)$(bindir)' \
PYTHONPATH="$(DESTDIR)$(pythondir)" \
PYTHON="$(PYTHON)" \
NBB_SCRIPT="$(DESTDIR)$(bindir)/nbb" \
$(TESTSUITEFLAGS)
clean-local:
test ! -f '$(srcdir)/$(TESTSUITE)' || \
$(SHELL) '$(srcdir)/$(TESTSUITE)' --clean
# Note about the location of testsuite.at, $(TESTSUITE), and package.m4:
# We locate these files in the $(srcdir), because
# a) They are shipped in the source tarball.
# b) If they are created in $(builddir), they will need to be removed on
# "make clean" or "make distclean". Re-generation requires tools a
# normal system does not need to have.
# c) They do not change depending on any configure run, they only change
# depending on configure.ac or tests/Makefile.am updates - and those
# require special build tools to handle anyway. Thus, a normal build
# will not touch these files at all and just leave the filese from
# upstream in place.
# testsuite.at depends on Makefile.in to make sure that changes in the
# list of TESTCASES are reflected in testsuite.at. We do not depend on
# Makefile, as Makefile is re-created on every ./configure run, and that
# does not imply an addition to TESTCASES.
EXTRA_DIST += $(srcdir)/testsuite.at
$(srcdir)/testsuite.at: $(TESTCASES) Makefile.in
@:; echo "INFO: Checking $(srcdir)/testsuite.at is up to date"; \
{ \
echo "dnl testsuite.at autogenerated from tests/Makefile.am"; \
echo "AT_INIT()"; : "([$(TESTSUITE_NAME)])"; \
echo "AT_COPYRIGHT([$(TESTSUITE_COPYRIGHT)])"; \
for exe in $(TESTED_EXECUTABLES); do \
echo "AT_TESTED([$${exe}])"; \
done; \
for tc in $(TESTCASES); do \
echo "m4_include([$${tc}])"; \
done; \
} > testsuite.at.new
@if test -f $(srcdir)/testsuite.at \
&& cmp testsuite.at.new $(srcdir)/testsuite.at > /dev/null; \
then rm -f testsuite.at.new; \
else echo "INFO: Updating $(srcdir)/testsuite.at"; \
mv -f testsuite.at.new $(srcdir)/testsuite.at; fi
# FIXME: Hack to handle unset AUTOM4TE variable
EXTRA_DIST += $(srcdir)/$(TESTSUITE)
$(srcdir)/$(TESTSUITE): testsuite.at local.at package.m4 $(TESTCASES)
@echo "INFO: Checking whether $(srcdir)/$(TESTSUITE) is up to date"; \
AUTOM4TE="$(AUTOM4TE)"; \
if test "x$${AUTOM4TE}" = "x"; then AUTOM4TE="autom4te"; fi; \
$${AUTOM4TE} --language=autotest -I '$(srcdir)' -o $(TESTSUITE).tmp $(srcdir)/testsuite.at
@if test -f $(srcdir)/$(TESTSUITE) && cmp $(TESTSUITE).tmp $(srcdir)/$(TESTSUITE) > /dev/null; \
then rm -f $(TESTSUITE).tmp; \
else echo "INFO: Updating $(srcdir)/$(TESTSUITE)"; \
mv -f $(TESTSUITE).tmp $(srcdir)/$(TESTSUITE); fi
EXTRA_DIST += $(srcdir)/package.m4
$(srcdir)/package.m4: $(top_srcdir)/configure.ac $(top_builddir)/config.status Makefile.in
@:; echo "INFO: Checking $(srcdir)/package.m4 is up to date"; \
{ \
echo '# Signature of the current package (generated by tests/Makefile.am).'; \
echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])'; \
echo 'm4_define([AT_PACKAGE_TARNAME], [@PACKAGE_TARNAME@])'; \
echo 'm4_define([AT_PACKAGE_VERSION], [@PACKAGE_VERSION@])'; \
echo 'm4_define([AT_PACKAGE_STRING], [@PACKAGE_STRING@])'; \
echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
} > package.m4.tmp
@if test -f $(srcdir)/package.m4 && cmp package.m4.tmp $(srcdir)/package.m4; \
then rm -f package.m4.tmp; \
else echo "INFO: Updating $(srcdir)/package.m4"; \
mv -f package.m4.tmp $(srcdir)/package.m4; fi
dist-hook:
$(MAKE) $(srcdir)/package.m4 $(srcdir)/$(TESTSUITE)
# End of tests/Makefile.am.
|