-
Notifications
You must be signed in to change notification settings - Fork 7
/
CheckListOfTests.am
76 lines (73 loc) · 2.76 KB
/
CheckListOfTests.am
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
## -*- Automake -*-
##
## Copyright (C) 2011 Free Software Foundation, Inc.
##
## 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, 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/>.
##
## Temporary files used in the `check-list-of-tests' target.
am__tmk = tests-in-makefile-list.tmp
am__tfs = tests-on-filesystem-list.tmp
am__tdf = diff-in-tests-lists.tmp
## Check that the list of tests given in the Makefile is equal to the
## list of all test scripts in the Automake testsuite.
.PHONY: maintainer-check-list-of-tests
maintainer-check-list-of-tests:
## Prefer unified diffs over plain diffs, for readability.
@if diff -u /dev/null /dev/null >/dev/null 2>&1; then \
diff='diff -u'; \
else \
diff='diff'; \
fi; \
## Determine which files are to be considered test scripts.
## Do not blindly look for `$(TEST_EXTENSIONS)', because the parallel
## testsuite driver provided by Automake allow entries in `$(TESTS)'
## not to be real files, but rather paramaters for the corresponding
## LOG_COMPILER (well, sort of).
set X $(checked_test_extensions); shift; \
if test $$# -eq 0; then \
set X $(TEST_EXTENSIONS); shift; \
fi; \
if test $$# -eq 0; then \
echo '$@: internal error: $$(checked_test_extensions) and' \
'$$(TEST_EXTENSIONS) are both undefined or empty' >&2; \
exit 255; \
fi; \
## List of tests in Makefile.
lst='$(expected_list_of_tests)'; \
test -n "$$lst" || lst='$(TESTS)'; \
for t in $$lst; do \
echo "$$t"; \
done | sort >$(am__tmk); \
## List of tests on filesystem. Be careful to cater for VPATH builds too.
for ext in $$*; do \
ls *$$ext 2>/dev/null; \
if test $(srcdir) != $(builddir); then \
(cd $(srcdir) && ls *$$ext 2>/dev/null); \
fi; \
done | sort | uniq >$(am__tfs); \
## Compare the two lists, complain if they differ.
if $$diff $(am__tmk) $(am__tfs) >$(am__tdf); then \
result=0; \
else \
echo '$@: list of tests in Makefile an on filesystem differ' >&2; \
echo "+ $$diff in-makefile on-filesystem" >&2; \
cat $(am__tdf) >&2; \
result=1; \
fi; \
rm -f $(am__tmk) $(am__tfs) $(am__tdf); \
exit $$result;
.PHONY: clean-maintcheck-testslist-tmp
clean-local: clean-maintcheck-testslist-tmp
clean-maintcheck-testslist-tmp:
rm -f $(am__tmk) $(am__tfs) $(am__tdf)