summaryrefslogtreecommitdiffstats
path: root/testsuite/check.mk
blob: 01709f81e7fc0ef4e7cb0bcfc3520efb07f086fd (plain)
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
# Include this file at the end of each tests/*/Makefile.am.
# Copyright (C) 2007-2010 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 3 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/>.

built_programs = \
  echo 'spy:;@echo $$(PROGRAMS) $$(SCRIPTS)' \
    | MAKEFLAGS= $(MAKE) -s -C $(top_builddir)/src -f Makefile -f - spy \
    | tr -s ' ' '\n' | sed -e 's,$(EXEEXT)$$,,'

# Note that the first lines are statements.  They ensure that environment
# variables that can perturb tests are unset or set to expected values.
# The rest are envvar settings that propagate build-related Makefile
# variables to test scripts.
TESTS_ENVIRONMENT =                             \
  tmp__=$$TMPDIR; test -d "$$tmp__" || tmp__=.; \
  . $(srcdir)/envvar-check;                     \
  TMPDIR=$$tmp__; export TMPDIR;                \
  shell_or_perl_() {                            \
    if grep '^\#!/usr/bin/perl' "$$1" > /dev/null; then                 \
      if $(PERL) -e 'use warnings' > /dev/null 2>&1; then               \
        grep '^\#!/usr/bin/perl -T' "$$1" > /dev/null && T_=T || T_=;   \
        $(PERL) -w$$T_ -I$(srcdir) -MCoreutils                          \
              -M"CuTmpdir qw($$f)" -- "$$1";    \
      else                                      \
        echo 1>&2 "$$f: configure did not find a usable version of Perl," \
          "so skipping this test";              \
        (exit 77);                              \
      fi;                                       \
    else                                        \
      $(SHELL) "$$1";                           \
    fi;                                         \
  };                                            \
  export                                        \
  LOCALE_FR='$(LOCALE_FR)'                      \
  LOCALE_FR_UTF8='$(LOCALE_FR_UTF8)'            \
  abs_top_builddir='$(abs_top_builddir)'        \
  abs_top_srcdir='$(abs_top_srcdir)'            \
  abs_srcdir='$(abs_srcdir)'                    \
  built_programs="`$(built_programs)`"          \
  host_os=$(host_os)                            \
  host_triplet='$(host_triplet)'                \
  srcdir='$(srcdir)'                            \
  top_srcdir='$(top_srcdir)'                    \
  CONFIG_HEADER='$(abs_top_builddir)/lib/config.h' \
  CU_TEST_NAME=`basename '$(abs_srcdir)'`,$$f   \
  AWK='$(AWK)'                                  \
  EGREP='$(EGREP)'                              \
  EXEEXT='$(EXEEXT)'                            \
  MAKE=$(MAKE)                                  \
  PACKAGE_BUGREPORT='$(PACKAGE_BUGREPORT)'      \
  PACKAGE_VERSION=$(PACKAGE_VERSION)            \
  PERL='$(PERL)'                                \
  PREFERABLY_POSIX_SHELL='$(PREFERABLY_POSIX_SHELL)' \
  REPLACE_GETCWD=$(REPLACE_GETCWD)              \
  PATH="$(abs_top_builddir)/src$(PATH_SEPARATOR)$(abs_top_srcdir)/src$(PATH_SEPARATOR)$$PATH" \
  VERSION=$(VERSION) \
  ; shell_or_perl_

TEST_LOGS = $(TESTS:=.log)

# Parallel replacement of Automake's check-TESTS target.
SUFFIXES =

VERBOSE = yes