summaryrefslogtreecommitdiff
path: root/tests/defs
blob: 1c9dd908b872b3dcf6c3046d3f823b235076c0e2 (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
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
# -*- shell-script -*-
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009, 2010, 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/>.

## -------------------------------------------------------- ##
##  Source static setup and definitions for the testsuite.  ##
## -------------------------------------------------------- ##

# This code needs to be 'set -e' clean.

# Ensure we are running from the right directory.
test -f ./defs-static || {
   echo "$0: ./defs-static: not found in current directory" >&2
   exit 99
}

# Source the shell sanitization and variables' definitions.
. ./defs-static || exit 99

# The name of the current test (without the `.test' suffix).
# Test scripts can override it if they need to (but this should
# be done carefully, and *before* including ./defs).
if test -z "$me"; then
  # Guard against failure to spawn sed (seen on MSYS), or empty $argv0.
  me=`echo "$argv0" | sed -e 's,.*[\\/],,;s/\.test$//'` \
    && test -n "$me" \
    || { echo "$argv0: failed to define \$me" >&2; exit 99; }
fi

## ---------------------------------------- ##
##  Sanity checks and environment cleanup.  ##
## ---------------------------------------- ##

# A single whitespace character.
sp=' '
# A tabulation character.
tab='	'
# A newline character.
nl='
'

# As autoconf-generated configure scripts do, ensure that IFS
# is defined initially, so that saving and restoring $IFS works.
IFS=$sp$tab$nl

# Ensure $testsrcdir is set correctly.
test -f "$testsrcdir/defs-static.in" || {
   echo "$me: $testsrcdir/defs-static.in not found, check \$testsrcdir" >&2
   exit 99
}

# Ensure $testbuilddir is set correctly.
test -f "$testbuilddir/defs-static" || {
   echo "$me: $testbuilddir/defs-static not found, check \$testbuilddir" >&2
   exit 99
}

# Unset some MAKE... variables that may cause $MAKE to act like a
# recursively invoked sub-make.  Any $MAKE invocation in a test is
# conceptually an independent invocation, not part of the main
# 'automake' build.
unset MFLAGS MAKEFLAGS AM_MAKEFLAGS MAKELEVEL __MKLVL__ MAKE_JOBS_FIFO
# Unset verbosity flag.
unset V
# Also unset variables that will let `make -e install' divert
# files into unwanted directories.
unset DESTDIR
unset prefix exec_prefix bindir datarootdir datadir docdir dvidir
unset htmldir includedir infodir libdir libexecdir localedir mandir
unset oldincludedir pdfdir psdir sbindir sharedstatedir sysconfdir
# Unset variables that might change the "make distcheck" behaviour.
unset DISTCHECK_CONFIGURE_FLAGS AM_DISTCHECK_CONFIGURE_FLAGS
# The tests call `make -e' but we do not want $srcdir from the environment
# to override the definition from the Makefile.
unset srcdir
# Also unset variables that control our test driver.  While not
# conceptually independent, they cause some changed semantics we
# need to control (and test for) in some of the tests to ensure
# backward-compatible behavior.
unset TESTS_ENVIRONMENT AM_TESTS_ENVIRONMENT
unset DISABLE_HARD_ERRORS
unset AM_COLOR_TESTS
unset TESTS
unset TEST_LOG_COMPILER
unset TEST_LOGS
unset TEST_SUITE_LOG
unset RECHECK_LOGS
unset VERBOSE


## ---------------------------- ##
##  Auxiliary shell functions.  ##
## ---------------------------- ##

# We use a trap below for cleanup.  This requires us to go through
# hoops to get the right exit status transported through the signal.
# So use `Exit STATUS' instead of `exit STATUS' inside of the tests.
# Turn off errexit here so that we don't trip the bug with OSF1/Tru64
# sh inside this function.
Exit ()
{
  set +e
  (exit $1)
  exit $1
}

# Print warnings (e.g., about skipped and failed tests) to this file
# number.  Override by putting, say:
#   stderr_fileno_=9; export stderr_fileno_; exec 9>&2;
# in the definition of AM_TESTS_ENVIRONMENT.
# This is useful when using automake's parallel tests mode, to print the
# reason for skip/failure to console, rather than to the *.log files.
: ${stderr_fileno_=2}

# Copied from Gnulib's `tests/init.sh'.
warn_ () { echo "$@" 1>&$stderr_fileno_; }
fail_ () { warn_ "$me: failed test: $@"; Exit 1; }
skip_ () { warn_ "$me: skipped test: $@"; Exit 77; }
fatal_ () { warn_ "$me: hard error: $@"; Exit 99; }
framework_failure_ () { warn_ "$me: set-up failure: $@"; Exit 99; }

# cross_compiling
# ---------------
# Tell whether we are cross-compiling.  This is especially useful to skip
# tests (or portions of them) that requires a native compiler.
cross_compiling ()
{
  test x"$host_alias" != x
}

# is_newest FILE FILES
# --------------------
# Return false if any file in FILES is newer than FILE.
# Resolve ties in favor of FILE.
is_newest ()
{
  is_newest_files=`find "$@" -prune -newer "$1"`
  test -z "$is_newest_files"
}

# is_blocked_signal SIGNAL-NUMBER
# --------------------------------
# Return success if the given signal number is blocked in the shell,
# return a non-zero exit status and print a proper diagnostic otherwise.
is_blocked_signal ()
{
  $SHELL -c "kill -$1 \$\$; echo '$me: signal $1 seems blocked'"
}

# AUTOMAKE_run status [options...]
# --------------------------------
# Run Automake with OPTIONS, and fail if automake
# does not exit with STATUS.
AUTOMAKE_run ()
{
  expected_exitcode=$1
  shift
  exitcode=0
  $AUTOMAKE ${1+"$@"} >stdout 2>stderr || exitcode=$?
  cat stderr >&2
  cat stdout
  test $exitcode = $expected_exitcode || Exit 1
}

# AUTOMAKE_fails [options...]
# ---------------------------
# Run Automake with OPTIONS, and fail if automake
# does not exit with STATUS.
AUTOMAKE_fails ()
{
  AUTOMAKE_run 1 ${1+"$@"}
}

# using_gmake
# -----------
# Return success if $MAKE is GNU make, return failure otherwise.
# Caches the result for speed reasons.
using_gmake ()
{
  case $am__using_gmake in
    yes)
      return 0;;
    no)
      return 1;;
    '')
      # Use --version AND -v, because SGI Make doesn't fail on --version.
      # Also grep for GNU because newer versions of FreeBSD make do
      # not complain about `--version' (they seem to silently ignore it).
      if $MAKE --version -v | grep GNU; then
        am__using_gmake=yes
        return 0
      else
        am__using_gmake=no
        return 1
      fi;;
    *)
      echo "invalid value for \$am__using_gmake: '$am__using_gmake'" >&2
      Exit 99;;
  esac
}

# make_can_chain_suffix_rules
# ---------------------------
# Return 0 if $MAKE is a make implementation that can chain suffix rules
# automatically, return 1 otherwise.  Caches the result for speed reasons.
make_can_chain_suffix_rules ()
{
  if test -z "$am__can_chain_suffix_rules"; then
    if using_gmake; then
      am__can_chain_suffix_rules=yes
      return 0
    else
      mkdir am__chain.dir$$
      cd am__chain.dir$$
      unindent > Makefile << 'END'
        .u.v: ; cp $< $@
        .v.w: ; cp $< $@
END
      echo make can chain suffix rules > foo.u
      if $MAKE foo.w && diff foo.u foo.w; then
        am__can_chain_suffix_rules=yes
      else
        am__can_chain_suffix_rules=no
      fi
      cd ..
      rm -rf am__chain.dir$$
    fi
  fi
  case $am__can_chain_suffix_rules in
    yes) return 0;;
     no) return 1;;
      *) fatal_ "make_can_chain_suffix_rules: internal error";;
  esac
}
am__can_chain_suffix_rules="" # Avoid interferences from the environment.

commented_sed_unindent_prog='
  /^$/b                    # Nothing to do for empty lines.
  x                        # Get x<indent> into pattern space.
  /^$/{                    # No prior x<indent>, go prepare it.
    g                      # Copy this 1st non-blank line into pattern space.
    s/^\(['"$tab"' ]*\).*/x\1/   # Prepare x<indent> in pattern space.
  }                        # Now: x<indent> in pattern and <line> in hold.
  G                        # Build x<indent>\n<line> in pattern space, and
  h                        # duplicate it into hold space.
  s/\n.*$//                # Restore x<indent> in pattern space, and
  x                        # exchange with the above duplicate in hold space.
  s/^x\(.*\)\n\1//         # Remove leading <indent> from <line>.
  s/^x.*\n//               # Restore <line> when there is no leading <indent>.
'

# unindent [input files...]
# -------------------------
# Remove the "proper" amount of leading whitespace from the given files,
# and output the result on stdout.  That amount is determined by looking
# at the leading whitespace of the first non-blank line in the input
# files.  If no input file is specified, standard input is implied.
unindent ()
{
  if test x"$sed_unindent_prog" = x; then
    sed_unindent_prog=`printf '%s\n' "$commented_sed_unindent_prog" | sed -e "s/  *# .*//"`
  fi
  sed "$sed_unindent_prog" ${1+"$@"}
}
sed_unindent_prog="" # Avoid interferences from the environment.


## ----------------------------------------------------------- ##
##  Checks for required tools, and additional setups (if any)  ##
##  required by them.                                          ##
## ----------------------------------------------------------- ##

# Print it here, so that the user will see it also if the test
# will be skipped due to some tool missing in $PATH itself.
echo "$PATH"

# So that we can force the use of correct gcc, g++ etc., consistently
# with cross-compilation settings.
if cross_compiling; then
  am__tool_prefix="$host_alias-"
else
  am__tool_prefix=
fi

# Look for (and maybe set up) required tools and/or system features; skip
# the current test if they are not found.
for tool in : $required
do
  # Check that each required tool is present.
  case $tool in
    :) ;;
    cc|c++|fortran|fortran77)
      echo "$me: dummy requirement '$tool', no check done"
      ;;
    bzip2)
      # Do not use --version, bzip2 still tries to compress stdin.
      echo "$me: running bzip2 --help"
      bzip2 --help || exit 77
      ;;
    cl)
      CC=cl
      export CC
      echo "$me: running $CC -?"
      $CC -? || exit 77
      ;;
    cscope)
      # Sun cscope is interactive without redirection.
      echo "$me: running cscope --version </dev/null"
      cscope --version </dev/null || exit 77
      ;;
    etags)
      # Exuberant Ctags will create a TAGS file even
      # when asked for --help or --version.  (Emacs's etags
      # does not have such problem.)  Use -o /dev/null
      # to make sure we do not pollute the tests/ directory.
      echo "$me: running etags --version -o /dev/null"
      etags --version -o /dev/null || exit 77
      ;;
    GNUmake)
      echo "$me: determine if $MAKE is GNU make"
      using_gmake || exit 77
      ;;
    gcc)
      # When gcc is required, export `CC=gcc' so that ./configure
      # always use it.  This is important only when the user
      # has defined CC in his environment, otherwise ./configure will
      # prefer gcc to other compilers.
      CC=${am__tool_prefix}gcc
      export CC
      echo "$me: running $CC --version"
      $CC --version || exit 77
      echo "$me: running $CC -v"
      $CC -v || exit 77
      ;;
    gcj)
      GCJ=${am__tool_prefix}gcj
      export GCJ
      echo "$me: running $GCJ --version"
      $GCJ --version || exit 77
      echo "$me: running $GCJ -v"
      $GCJ -v || exit 77
      ;;
    g++)
      CXX=${am__tool_prefix}g++
      export CXX
      echo "$me: running $CXX --version"
      $CXX --version || exit 77
      echo "$me: running $CXX -v"
      $CXX -v || exit 77
      ;;
    gfortran)
      FC=${am__tool_prefix}gfortran
      export FC
      echo "$me: running $FC --version"
      $FC --version || skip_ "GNU Fortran compiler not available"
      echo "$me: running $FC -v"
      $FC -v || skip_ "botched installation for GNU Fortran compiler"
      case " $required " in
        *\ g77\ *) ;;
        *) F77=$FC; export F77;;
      esac
      ;;
    g77)
      F77=${am__tool_prefix}g77
      export F77
      echo "$me: running $F77 --version"
      $F77 --version || skip_ "GNU Fortran 77 compiler not available"
      echo "$me: running $F77 -v"
      $F77 -v || skip_ "botched installation for GNU Fortran 77 compiler"
      case " $required " in
        *\ gfortran\ *) ;;
        *) FC=$F77; export FC;;
      esac
      ;;
    icc)
      CC=icc
      export CC
      # There is no way to ask *only* the compiler's version.
      # This tool always wants to do something (by default
      # it will try link *nothing* and complain it cannot find
      # main(); funny).  Use -help so it does not try linking anything.
      echo "$me: running $CC -V -help"
      $CC -V -help || exit 77
      ;;
    javac)
      # The Java compiler from JDK 1.5 (and presumably earlier versions)
      # cannot handle the `-version' option by itself: it bails out
      # telling that source files are missing.  Adding also the `-help'
      # option seems to solve the problem.
      echo "$me: running javac -version -help"
      javac -version -help || skip_ "java compiler not found"
      ;;
    java)
      # See the comments above about `javac' for why we use also `-help'.
      echo "$me: running java -version -help"
      java -version -help || skip_ "java interpreter not found"
      ;;
    lib)
      AR=lib
      export AR
      # Attempting to create an empty archive will actually not
      # create the archive, but lib will output its version.
      echo "$me: running $AR -out:defstest.lib"
      $AR -out:defstest.lib || skip_ "Microsoft \`lib' utility not available"
      ;;
    makedepend)
      echo "$me: running makedepend -f-"
      makedepend -f- || exit 77
      ;;
    makeinfo-html)
      # Make sure makeinfo understands --html.
      echo "$me: running makeinfo --html --version"
      makeinfo --html --version || exit 77
      ;;
    non-root)
      # Skip this test case if the user is root.
      # We try to append to a read-only file to detect this.
      priv_check_temp=priv-check.$$
      touch $priv_check_temp || exit 99
      chmod a-w $priv_check_temp || exit 99
      (echo foo >> $priv_check_temp) >/dev/null 2>&1
      overwrite_status=$?
      rm -f $priv_check_temp
      if test $overwrite_status -eq 0; then
        echo "$me: cannot drop file write permissions" >&2
        exit 77
      fi
      unset priv_check_temp overwrite_status
      ;;
    perl-threads)
      if test "$WANT_NO_THREADS" = "yes"; then
        echo "$me: skip with Devel::Cover: cannot cope with threads" >&2
        exit 77
      fi
      ;;
    native)
      cross_compiling && skip_ "doesn't work in cross-compile mode"
      ;;
    python)
      # Python doesn't support --version, it has -V
      echo "$me: running python -V"
      python -V || exit 77
      ;;
    ro-dir)
      # Skip this test case if read-only directories aren't supported
      # (e.g., under DOS.)
      ro_dir_temp=ro_dir.$$
      mkdir $ro_dir_temp || exit 99
      chmod a-w $ro_dir_temp || exit 99
      (: > $ro_dir_temp/probe) >/dev/null 2>/dev/null
      create_status=$?
      rm -rf $ro_dir_temp
      if test $create_status -eq 0; then
        echo "$me: cannot drop directory write permissions" >&2
        exit 77
      fi
      unset ro_dir_temp create_status
      ;;
    rst2html)
      # Try the variants that are tried in check.am.
      while :; do
        for r2h in $RST2HTML rst2html rst2html.py; do
          echo "$me: running $r2h --version"
          $r2h --version && break 2
        done
        echo "$me: no proper rst2html program found" >&2
        exit 77
      done
      unset r2h
      ;;
    runtest)
      # DejaGnu's runtest program. We rely on being able to specify
      # the program on the runtest command-line. This requires
      # DejaGnu 1.4.3 or later.
      echo "$me: running runtest SOMEPROGRAM=someprogram --version"
      runtest SOMEPROGRAM=someprogram --version || exit 77
      ;;
    tex)
      # No all versions of Tex support `--version', so we use
      # a configure check.
      if test -z "$TEX"; then
        echo "$me: TeX is required, but it wasn't found by configure" >&2
        exit 77
      fi
      ;;
    texi2dvi-o)
      # Texi2dvi supports `-o' since Texinfo 4.1.
      echo "$me: running texi2dvi -o /dev/null --version"
      texi2dvi -o /dev/null --version || exit 77
      ;;
    xsi-shell)
      # Try some XSI features.
      # Keep this in sync with libtool.m4:_LT_CHECK_SHELL_FEATURES.
      echo "$me: trying some XSI constructs"
      ( _am_dummy="a/b/c"
	test "${_am_dummy##*/},${_am_dummy%/*},${_am_dummy#??}"${_am_dummy%"$_am_dummy"}, \
		= c,a/b,b/c, \
	&& eval 'test $(( 1 + 1 )) -eq 2 \
	&& test "${#_am_dummy}" -eq 5' ) || exit 77
      ;;
    flex|lex)
      # Since flex is required, we pick LEX for ./configure.
      LEX=flex
      export LEX
      echo "$me: running flex --version"
      flex --version || exit 77
      ;;
    yacc)
      if test x"$YACC" = x"no"; then
        # The user has explicitly told he doesn't want a yacc program
        # to be used.
        echo "$me: \$YACC is \"no\", skipping test" >&2
        exit 77
      elif test -z "$YACC"; then
        # The user hasn't explicitly specified any yacc program in the
        # environment, so we try to use bison, skipping the test if it's
        # not found.
        YACC='bison -y'
        export YACC
        echo "$me: running bison --version"
        bison --version || exit 77
      fi
      ;;
    *)
      # Generic case: the tool must support --version.
      echo "$me: running $tool --version"
      # It is not likely but possible that $tool is a special builtin,
      # in which case the shell is allowed to exit after an error.
      # So, please leave the subshell here.
      ( $tool --version ) || exit 77
      ;;
  esac
done

# Using just `$testbuilddir' for the check here is ok, since the
# further temporary subdirectory where the test will be run is
# ensured not to contain any whitespace character.
case $testbuilddir in
  *\ *|*\	*)
    case " $required " in
      *' libtool '* | *' libtoolize '* )
        echo "$me: libtool/libtoolized cannot cope correctly" >&2
        echo "$me: with spaces in the build tree" >&2
        exit 77
        ;;
    esac
    ;;
esac

# This test is necessary, although Automake's configure script bails out
# when $srcdir contains spaces.  This is because $testsrcdir is in not
# configure-time $srcdir, but is instead configure-time $abs_srcdir, and
# that is allowed to contain spaces.
case $testsrcdir in
  *\ * |*\	*)
    case " $required " in
      *' libtool '* | *' libtoolize '* | *' gettext '* )
        echo "$me: our testsuite setup cannot cope correctly with spaces" >&2
        echo "$me: in the source tree for libtool/gettext tests" >&2
        exit 77
        ;;
   esac
   ;;
esac

# We might need extra macros, e.g., from Libtool or Gettext.
# Find them on the system.
# Use `-I $top_testsrcdir/m4' in addition to `--acdir=$top_testsrcdir/m4',
# because the other `-I' directories added for libtool and gettext might
# contain files from an old version of Automake that we don't want to use.
# Use `-Wno-syntax' because we do not want our test suite to fail because
# some third-party .m4 file is underquoted.
case " $required " in
  *' libtool '* | *' libtoolize '* | *' gettext '* )
    aclocaldir=$testprefix/share/aclocal
    extra_includes=""
    if test -f $aclocaldir/dirlist; then
       extra_includes=`
       <$aclocaldir/dirlist \
       sed  's/#.*//;s/[	 ][	 ]*$//g' \
       | while read dir; do test ! -d "$dir" || echo "-I $dir"; done`
    else :; fi

    libtool_found=no
    gettext_found=no
    for d in $extra_includes $aclocaldir ; do
      test "x$d" != x-I || continue
      if test -f "$d/libtool.m4"; then
        libtool_found=yes
      fi
      if test -f "$d/gettext.m4"; then
        gettext_found=yes
      fi
    done
    case " $required " in
      *' libtool '*|*' libtoolize '*)
        if test $libtool_found != yes; then
          echo "$me: libtool/libtoolize is required, but libtool.m4 wasn't" >&2
          echo "$me: found in directories $aclocaldir $extra_includes" >&2
          exit 77
        fi
        ;;
      *' gettext '*)
        if test $gettext_found != yes; then
          echo "$me: gettext is required, but gettext.m4 wasn't found" >&2
          echo "$me: in directories $aclocaldir $extra_includes" >&2
          exit 77
        fi
        ;;
    esac
    ACLOCAL="$ACLOCAL -Wno-syntax -I $top_testsrcdir/m4 $extra_includes -I $aclocaldir"
    unset libtool_found gettext_found
    unset extra_includes aclocaldir
    ;;
esac


## ---------------------------------------------------------------- ##
##  Create and set up of the temporary directory used by the test.  ##
##  Set up of the exit trap for cleanup of said directory.          ##
## ---------------------------------------------------------------- ##

# This might be used in testcases checking distribution-related features.
# Test scripts are free to override this if they need to.
distdir=$me-1.0

# The subdirectory where the current test script will run and write its
# temporary/data files.  This will be created shortly, and will be removed
# by the cleanup trap below if the test passes.  If the test doesn't pass,
# this directory will be kept, to facilitate debugging.
testSubDir=$me.dir

test ! -d $testSubDir || {
  find $testSubDir -type d ! -perm -700 -exec chmod u+rwx {} ";"
  rm -rf $testSubDir
}
mkdir $testSubDir

cd ./$testSubDir

if test "$sh_errexit_works" = yes; then
  trap 'exit_status=$?
    set +e
    cd "$testbuilddir"
    case $exit_status,$keep_testdirs in
    0,)
      find $testSubDir -type d ! -perm -700 -exec chmod u+rwx {} ";"
      rm -rf $testSubDir
      ;;
    esac
    test "$signal" != 0 && echo "$me: caught signal $signal"
    echo "$me: exit $exit_status"
    exit $exit_status
  ' 0
  for signal in 1 2 13 15; do
    trap 'signal='$signal'; { Exit 99; }' $signal
  done
  signal=0
fi

# Copy in some files we need.
for file in install-sh missing depcomp; do
   cp "$top_testsrcdir/lib/$file" . || Exit 99
done

# Build appropriate environment in test directory.  Eg create
# configure.in, touch all necessary files, etc.
# Don't use AC_OUTPUT, but AC_CONFIG_FILES so that appending
# still produces a valid configure.ac.  But then, tests running
# config.status really need to append AC_OUTPUT.
{
  echo "AC_INIT([$me], [1.0])"
  if test x"$parallel_tests" = x"yes"; then
    echo "AM_INIT_AUTOMAKE([parallel-tests])"
  else
    echo "AM_INIT_AUTOMAKE"
  fi
  echo "AC_CONFIG_FILES([Makefile])"
} >configure.in

## ---------------- ##
##  Ready to go...  ##
## ---------------- ##

set -x
set -e

pwd