xref: /netbsd-src/external/bsd/kyua-cli/dist/bootstrap/testsuite (revision f39f9c9b2b3d39fa4e71f38ebea4c5d12192a641)
16b3a42afSjmmv#! /bin/sh
26b3a42afSjmmv# Generated from bootstrap/testsuite.at by GNU Autoconf 2.69.
36b3a42afSjmmv#
46b3a42afSjmmv# Copyright (C) 2009-2012 Free Software Foundation, Inc.
56b3a42afSjmmv#
66b3a42afSjmmv# This test suite is free software; the Free Software Foundation gives
76b3a42afSjmmv# unlimited permission to copy, distribute and modify it.
86b3a42afSjmmv## -------------------- ##
96b3a42afSjmmv## M4sh Initialization. ##
106b3a42afSjmmv## -------------------- ##
116b3a42afSjmmv
126b3a42afSjmmv# Be more Bourne compatible
136b3a42afSjmmvDUALCASE=1; export DUALCASE # for MKS sh
146b3a42afSjmmvif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
156b3a42afSjmmv  emulate sh
166b3a42afSjmmv  NULLCMD=:
176b3a42afSjmmv  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
186b3a42afSjmmv  # is contrary to our usage.  Disable this feature.
196b3a42afSjmmv  alias -g '${1+"$@"}'='"$@"'
206b3a42afSjmmv  setopt NO_GLOB_SUBST
216b3a42afSjmmvelse
226b3a42afSjmmv  case `(set -o) 2>/dev/null` in #(
236b3a42afSjmmv  *posix*) :
246b3a42afSjmmv    set -o posix ;; #(
256b3a42afSjmmv  *) :
266b3a42afSjmmv     ;;
276b3a42afSjmmvesac
286b3a42afSjmmvfi
296b3a42afSjmmv
306b3a42afSjmmv
316b3a42afSjmmvas_nl='
326b3a42afSjmmv'
336b3a42afSjmmvexport as_nl
346b3a42afSjmmv# Printing a long string crashes Solaris 7 /usr/bin/printf.
356b3a42afSjmmvas_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
366b3a42afSjmmvas_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
376b3a42afSjmmvas_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
386b3a42afSjmmv# Prefer a ksh shell builtin over an external printf program on Solaris,
396b3a42afSjmmv# but without wasting forks for bash or zsh.
406b3a42afSjmmvif test -z "$BASH_VERSION$ZSH_VERSION" \
416b3a42afSjmmv    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
426b3a42afSjmmv  as_echo='print -r --'
436b3a42afSjmmv  as_echo_n='print -rn --'
446b3a42afSjmmvelif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
456b3a42afSjmmv  as_echo='printf %s\n'
466b3a42afSjmmv  as_echo_n='printf %s'
476b3a42afSjmmvelse
486b3a42afSjmmv  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
496b3a42afSjmmv    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
506b3a42afSjmmv    as_echo_n='/usr/ucb/echo -n'
516b3a42afSjmmv  else
526b3a42afSjmmv    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
536b3a42afSjmmv    as_echo_n_body='eval
546b3a42afSjmmv      arg=$1;
556b3a42afSjmmv      case $arg in #(
566b3a42afSjmmv      *"$as_nl"*)
576b3a42afSjmmv	expr "X$arg" : "X\\(.*\\)$as_nl";
586b3a42afSjmmv	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
596b3a42afSjmmv      esac;
606b3a42afSjmmv      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
616b3a42afSjmmv    '
626b3a42afSjmmv    export as_echo_n_body
636b3a42afSjmmv    as_echo_n='sh -c $as_echo_n_body as_echo'
646b3a42afSjmmv  fi
656b3a42afSjmmv  export as_echo_body
666b3a42afSjmmv  as_echo='sh -c $as_echo_body as_echo'
676b3a42afSjmmvfi
686b3a42afSjmmv
696b3a42afSjmmv# The user is always right.
706b3a42afSjmmvif test "${PATH_SEPARATOR+set}" != set; then
716b3a42afSjmmv  PATH_SEPARATOR=:
726b3a42afSjmmv  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
736b3a42afSjmmv    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
746b3a42afSjmmv      PATH_SEPARATOR=';'
756b3a42afSjmmv  }
766b3a42afSjmmvfi
776b3a42afSjmmv
786b3a42afSjmmv
796b3a42afSjmmv# IFS
806b3a42afSjmmv# We need space, tab and new line, in precisely that order.  Quoting is
816b3a42afSjmmv# there to prevent editors from complaining about space-tab.
826b3a42afSjmmv# (If _AS_PATH_WALK were called with IFS unset, it would disable word
836b3a42afSjmmv# splitting by setting IFS to empty value.)
846b3a42afSjmmvIFS=" ""	$as_nl"
856b3a42afSjmmv
866b3a42afSjmmv# Find who we are.  Look in the path if we contain no directory separator.
876b3a42afSjmmvas_myself=
886b3a42afSjmmvcase $0 in #((
896b3a42afSjmmv  *[\\/]* ) as_myself=$0 ;;
906b3a42afSjmmv  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
916b3a42afSjmmvfor as_dir in $PATH
926b3a42afSjmmvdo
936b3a42afSjmmv  IFS=$as_save_IFS
946b3a42afSjmmv  test -z "$as_dir" && as_dir=.
956b3a42afSjmmv    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
966b3a42afSjmmv  done
976b3a42afSjmmvIFS=$as_save_IFS
986b3a42afSjmmv
996b3a42afSjmmv     ;;
1006b3a42afSjmmvesac
1016b3a42afSjmmv# We did not find ourselves, most probably we were run as `sh COMMAND'
1026b3a42afSjmmv# in which case we are not to be found in the path.
1036b3a42afSjmmvif test "x$as_myself" = x; then
1046b3a42afSjmmv  as_myself=$0
1056b3a42afSjmmvfi
1066b3a42afSjmmvif test ! -f "$as_myself"; then
1076b3a42afSjmmv  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
1086b3a42afSjmmv  exit 1
1096b3a42afSjmmvfi
1106b3a42afSjmmv
1116b3a42afSjmmv# Unset variables that we do not need and which cause bugs (e.g. in
1126b3a42afSjmmv# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
1136b3a42afSjmmv# suppresses any "Segmentation fault" message there.  '((' could
1146b3a42afSjmmv# trigger a bug in pdksh 5.2.14.
1156b3a42afSjmmvfor as_var in BASH_ENV ENV MAIL MAILPATH
1166b3a42afSjmmvdo eval test x\${$as_var+set} = xset \
1176b3a42afSjmmv  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
1186b3a42afSjmmvdone
1196b3a42afSjmmvPS1='$ '
1206b3a42afSjmmvPS2='> '
1216b3a42afSjmmvPS4='+ '
1226b3a42afSjmmv
1236b3a42afSjmmv# NLS nuisances.
1246b3a42afSjmmvLC_ALL=C
1256b3a42afSjmmvexport LC_ALL
1266b3a42afSjmmvLANGUAGE=C
1276b3a42afSjmmvexport LANGUAGE
1286b3a42afSjmmv
1296b3a42afSjmmv# CDPATH.
1306b3a42afSjmmv(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
1316b3a42afSjmmv
1326b3a42afSjmmvif test "x$CONFIG_SHELL" = x; then
1336b3a42afSjmmv  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
1346b3a42afSjmmv  emulate sh
1356b3a42afSjmmv  NULLCMD=:
1366b3a42afSjmmv  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
1376b3a42afSjmmv  # is contrary to our usage.  Disable this feature.
1386b3a42afSjmmv  alias -g '\${1+\"\$@\"}'='\"\$@\"'
1396b3a42afSjmmv  setopt NO_GLOB_SUBST
1406b3a42afSjmmvelse
1416b3a42afSjmmv  case \`(set -o) 2>/dev/null\` in #(
1426b3a42afSjmmv  *posix*) :
1436b3a42afSjmmv    set -o posix ;; #(
1446b3a42afSjmmv  *) :
1456b3a42afSjmmv     ;;
1466b3a42afSjmmvesac
1476b3a42afSjmmvfi
1486b3a42afSjmmv"
1496b3a42afSjmmv  as_required="as_fn_return () { (exit \$1); }
1506b3a42afSjmmvas_fn_success () { as_fn_return 0; }
1516b3a42afSjmmvas_fn_failure () { as_fn_return 1; }
1526b3a42afSjmmvas_fn_ret_success () { return 0; }
1536b3a42afSjmmvas_fn_ret_failure () { return 1; }
1546b3a42afSjmmv
1556b3a42afSjmmvexitcode=0
1566b3a42afSjmmvas_fn_success || { exitcode=1; echo as_fn_success failed.; }
1576b3a42afSjmmvas_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
1586b3a42afSjmmvas_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
1596b3a42afSjmmvas_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
1606b3a42afSjmmvif ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
1616b3a42afSjmmv
1626b3a42afSjmmvelse
1636b3a42afSjmmv  exitcode=1; echo positional parameters were not saved.
1646b3a42afSjmmvfi
1656b3a42afSjmmvtest x\$exitcode = x0 || exit 1
1666b3a42afSjmmvtest -x / || exit 1"
1676b3a42afSjmmv  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
1686b3a42afSjmmv  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
1696b3a42afSjmmv  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
1706b3a42afSjmmv  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
1716b3a42afSjmmvtest \$(( 1 + 1 )) = 2 || exit 1"
1726b3a42afSjmmv  if (eval "$as_required") 2>/dev/null; then :
1736b3a42afSjmmv  as_have_required=yes
1746b3a42afSjmmvelse
1756b3a42afSjmmv  as_have_required=no
1766b3a42afSjmmvfi
1776b3a42afSjmmv  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
1786b3a42afSjmmv
1796b3a42afSjmmvelse
1806b3a42afSjmmv  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1816b3a42afSjmmvas_found=false
1826b3a42afSjmmvfor as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
1836b3a42afSjmmvdo
1846b3a42afSjmmv  IFS=$as_save_IFS
1856b3a42afSjmmv  test -z "$as_dir" && as_dir=.
1866b3a42afSjmmv  as_found=:
1876b3a42afSjmmv  case $as_dir in #(
1886b3a42afSjmmv	 /*)
1896b3a42afSjmmv	   for as_base in sh bash ksh sh5; do
1906b3a42afSjmmv	     # Try only shells that exist, to save several forks.
1916b3a42afSjmmv	     as_shell=$as_dir/$as_base
1926b3a42afSjmmv	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
1936b3a42afSjmmv		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
1946b3a42afSjmmv  CONFIG_SHELL=$as_shell as_have_required=yes
1956b3a42afSjmmv		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
1966b3a42afSjmmv  break 2
1976b3a42afSjmmvfi
1986b3a42afSjmmvfi
1996b3a42afSjmmv	   done;;
2006b3a42afSjmmv       esac
2016b3a42afSjmmv  as_found=false
2026b3a42afSjmmvdone
2036b3a42afSjmmv$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
2046b3a42afSjmmv	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
2056b3a42afSjmmv  CONFIG_SHELL=$SHELL as_have_required=yes
2066b3a42afSjmmvfi; }
2076b3a42afSjmmvIFS=$as_save_IFS
2086b3a42afSjmmv
2096b3a42afSjmmv
2106b3a42afSjmmv      if test "x$CONFIG_SHELL" != x; then :
2116b3a42afSjmmv  export CONFIG_SHELL
2126b3a42afSjmmv             # We cannot yet assume a decent shell, so we have to provide a
2136b3a42afSjmmv# neutralization value for shells without unset; and this also
2146b3a42afSjmmv# works around shells that cannot unset nonexistent variables.
2156b3a42afSjmmv# Preserve -v and -x to the replacement shell.
2166b3a42afSjmmvBASH_ENV=/dev/null
2176b3a42afSjmmvENV=/dev/null
2186b3a42afSjmmv(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
2196b3a42afSjmmvcase $- in # ((((
2206b3a42afSjmmv  *v*x* | *x*v* ) as_opts=-vx ;;
2216b3a42afSjmmv  *v* ) as_opts=-v ;;
2226b3a42afSjmmv  *x* ) as_opts=-x ;;
2236b3a42afSjmmv  * ) as_opts= ;;
2246b3a42afSjmmvesac
2256b3a42afSjmmvexec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
2266b3a42afSjmmv# Admittedly, this is quite paranoid, since all the known shells bail
2276b3a42afSjmmv# out after a failed `exec'.
2286b3a42afSjmmv$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
2296b3a42afSjmmvexit 255
2306b3a42afSjmmvfi
2316b3a42afSjmmv
2326b3a42afSjmmv    if test x$as_have_required = xno; then :
2336b3a42afSjmmv  $as_echo "$0: This script requires a shell more modern than all"
2346b3a42afSjmmv  $as_echo "$0: the shells that I found on your system."
2356b3a42afSjmmv  if test x${ZSH_VERSION+set} = xset ; then
2366b3a42afSjmmv    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
2376b3a42afSjmmv    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
2386b3a42afSjmmv  else
2396b3a42afSjmmv    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
2406b3a42afSjmmv$0: including any error possibly output before this
2416b3a42afSjmmv$0: message. Then install a modern shell, or manually run
2426b3a42afSjmmv$0: the script under such a shell if you do have one."
2436b3a42afSjmmv  fi
2446b3a42afSjmmv  exit 1
2456b3a42afSjmmvfi
2466b3a42afSjmmvfi
2476b3a42afSjmmvfi
2486b3a42afSjmmvSHELL=${CONFIG_SHELL-/bin/sh}
2496b3a42afSjmmvexport SHELL
2506b3a42afSjmmv# Unset more variables known to interfere with behavior of common tools.
2516b3a42afSjmmvCLICOLOR_FORCE= GREP_OPTIONS=
2526b3a42afSjmmvunset CLICOLOR_FORCE GREP_OPTIONS
2536b3a42afSjmmv
2546b3a42afSjmmv## --------------------- ##
2556b3a42afSjmmv## M4sh Shell Functions. ##
2566b3a42afSjmmv## --------------------- ##
2576b3a42afSjmmv# as_fn_unset VAR
2586b3a42afSjmmv# ---------------
2596b3a42afSjmmv# Portably unset VAR.
2606b3a42afSjmmvas_fn_unset ()
2616b3a42afSjmmv{
2626b3a42afSjmmv  { eval $1=; unset $1;}
2636b3a42afSjmmv}
2646b3a42afSjmmvas_unset=as_fn_unset
2656b3a42afSjmmv
2666b3a42afSjmmv# as_fn_set_status STATUS
2676b3a42afSjmmv# -----------------------
2686b3a42afSjmmv# Set $? to STATUS, without forking.
2696b3a42afSjmmvas_fn_set_status ()
2706b3a42afSjmmv{
2716b3a42afSjmmv  return $1
2726b3a42afSjmmv} # as_fn_set_status
2736b3a42afSjmmv
2746b3a42afSjmmv# as_fn_exit STATUS
2756b3a42afSjmmv# -----------------
2766b3a42afSjmmv# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
2776b3a42afSjmmvas_fn_exit ()
2786b3a42afSjmmv{
2796b3a42afSjmmv  set +e
2806b3a42afSjmmv  as_fn_set_status $1
2816b3a42afSjmmv  exit $1
2826b3a42afSjmmv} # as_fn_exit
2836b3a42afSjmmv
2846b3a42afSjmmv# as_fn_mkdir_p
2856b3a42afSjmmv# -------------
2866b3a42afSjmmv# Create "$as_dir" as a directory, including parents if necessary.
2876b3a42afSjmmvas_fn_mkdir_p ()
2886b3a42afSjmmv{
2896b3a42afSjmmv
2906b3a42afSjmmv  case $as_dir in #(
2916b3a42afSjmmv  -*) as_dir=./$as_dir;;
2926b3a42afSjmmv  esac
2936b3a42afSjmmv  test -d "$as_dir" || eval $as_mkdir_p || {
2946b3a42afSjmmv    as_dirs=
2956b3a42afSjmmv    while :; do
2966b3a42afSjmmv      case $as_dir in #(
2976b3a42afSjmmv      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
2986b3a42afSjmmv      *) as_qdir=$as_dir;;
2996b3a42afSjmmv      esac
3006b3a42afSjmmv      as_dirs="'$as_qdir' $as_dirs"
3016b3a42afSjmmv      as_dir=`$as_dirname -- "$as_dir" ||
3026b3a42afSjmmv$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
3036b3a42afSjmmv	 X"$as_dir" : 'X\(//\)[^/]' \| \
3046b3a42afSjmmv	 X"$as_dir" : 'X\(//\)$' \| \
3056b3a42afSjmmv	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
3066b3a42afSjmmv$as_echo X"$as_dir" |
3076b3a42afSjmmv    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
3086b3a42afSjmmv	    s//\1/
3096b3a42afSjmmv	    q
3106b3a42afSjmmv	  }
3116b3a42afSjmmv	  /^X\(\/\/\)[^/].*/{
3126b3a42afSjmmv	    s//\1/
3136b3a42afSjmmv	    q
3146b3a42afSjmmv	  }
3156b3a42afSjmmv	  /^X\(\/\/\)$/{
3166b3a42afSjmmv	    s//\1/
3176b3a42afSjmmv	    q
3186b3a42afSjmmv	  }
3196b3a42afSjmmv	  /^X\(\/\).*/{
3206b3a42afSjmmv	    s//\1/
3216b3a42afSjmmv	    q
3226b3a42afSjmmv	  }
3236b3a42afSjmmv	  s/.*/./; q'`
3246b3a42afSjmmv      test -d "$as_dir" && break
3256b3a42afSjmmv    done
3266b3a42afSjmmv    test -z "$as_dirs" || eval "mkdir $as_dirs"
3276b3a42afSjmmv  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
3286b3a42afSjmmv
3296b3a42afSjmmv
3306b3a42afSjmmv} # as_fn_mkdir_p
3316b3a42afSjmmv
3326b3a42afSjmmv# as_fn_executable_p FILE
3336b3a42afSjmmv# -----------------------
3346b3a42afSjmmv# Test if FILE is an executable regular file.
3356b3a42afSjmmvas_fn_executable_p ()
3366b3a42afSjmmv{
3376b3a42afSjmmv  test -f "$1" && test -x "$1"
3386b3a42afSjmmv} # as_fn_executable_p
3396b3a42afSjmmv# as_fn_append VAR VALUE
3406b3a42afSjmmv# ----------------------
3416b3a42afSjmmv# Append the text in VALUE to the end of the definition contained in VAR. Take
3426b3a42afSjmmv# advantage of any shell optimizations that allow amortized linear growth over
3436b3a42afSjmmv# repeated appends, instead of the typical quadratic growth present in naive
3446b3a42afSjmmv# implementations.
3456b3a42afSjmmvif (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
3466b3a42afSjmmv  eval 'as_fn_append ()
3476b3a42afSjmmv  {
3486b3a42afSjmmv    eval $1+=\$2
3496b3a42afSjmmv  }'
3506b3a42afSjmmvelse
3516b3a42afSjmmv  as_fn_append ()
3526b3a42afSjmmv  {
3536b3a42afSjmmv    eval $1=\$$1\$2
3546b3a42afSjmmv  }
3556b3a42afSjmmvfi # as_fn_append
3566b3a42afSjmmv
3576b3a42afSjmmv# as_fn_arith ARG...
3586b3a42afSjmmv# ------------------
3596b3a42afSjmmv# Perform arithmetic evaluation on the ARGs, and store the result in the
3606b3a42afSjmmv# global $as_val. Take advantage of shells that can avoid forks. The arguments
3616b3a42afSjmmv# must be portable across $(()) and expr.
3626b3a42afSjmmvif (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
3636b3a42afSjmmv  eval 'as_fn_arith ()
3646b3a42afSjmmv  {
3656b3a42afSjmmv    as_val=$(( $* ))
3666b3a42afSjmmv  }'
3676b3a42afSjmmvelse
3686b3a42afSjmmv  as_fn_arith ()
3696b3a42afSjmmv  {
3706b3a42afSjmmv    as_val=`expr "$@" || test $? -eq 1`
3716b3a42afSjmmv  }
3726b3a42afSjmmvfi # as_fn_arith
3736b3a42afSjmmv
3746b3a42afSjmmv
3756b3a42afSjmmv# as_fn_error STATUS ERROR [LINENO LOG_FD]
3766b3a42afSjmmv# ----------------------------------------
3776b3a42afSjmmv# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
3786b3a42afSjmmv# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
3796b3a42afSjmmv# script with STATUS, using 1 if that was 0.
3806b3a42afSjmmvas_fn_error ()
3816b3a42afSjmmv{
3826b3a42afSjmmv  as_status=$1; test $as_status -eq 0 && as_status=1
3836b3a42afSjmmv  if test "$4"; then
3846b3a42afSjmmv    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
3856b3a42afSjmmv    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
3866b3a42afSjmmv  fi
3876b3a42afSjmmv  $as_echo "$as_me: error: $2" >&2
3886b3a42afSjmmv  as_fn_exit $as_status
3896b3a42afSjmmv} # as_fn_error
3906b3a42afSjmmv
3916b3a42afSjmmvif expr a : '\(a\)' >/dev/null 2>&1 &&
3926b3a42afSjmmv   test "X`expr 00001 : '.*\(...\)'`" = X001; then
3936b3a42afSjmmv  as_expr=expr
3946b3a42afSjmmvelse
3956b3a42afSjmmv  as_expr=false
3966b3a42afSjmmvfi
3976b3a42afSjmmv
3986b3a42afSjmmvif (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
3996b3a42afSjmmv  as_basename=basename
4006b3a42afSjmmvelse
4016b3a42afSjmmv  as_basename=false
4026b3a42afSjmmvfi
4036b3a42afSjmmv
4046b3a42afSjmmvas_me=`$as_basename -- "$0" ||
4056b3a42afSjmmv$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
4066b3a42afSjmmv	 X"$0" : 'X\(//\)$' \| \
4076b3a42afSjmmv	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
4086b3a42afSjmmv$as_echo X/"$0" |
4096b3a42afSjmmv    sed '/^.*\/\([^/][^/]*\)\/*$/{
4106b3a42afSjmmv	    s//\1/
4116b3a42afSjmmv	    q
4126b3a42afSjmmv	  }
4136b3a42afSjmmv	  /^X\/\(\/\/\)$/{
4146b3a42afSjmmv	    s//\1/
4156b3a42afSjmmv	    q
4166b3a42afSjmmv	  }
4176b3a42afSjmmv	  /^X\/\(\/\).*/{
4186b3a42afSjmmv	    s//\1/
4196b3a42afSjmmv	    q
4206b3a42afSjmmv	  }
4216b3a42afSjmmv	  s/.*/./; q'`
4226b3a42afSjmmv
4236b3a42afSjmmvif (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
4246b3a42afSjmmv  as_dirname=dirname
4256b3a42afSjmmvelse
4266b3a42afSjmmv  as_dirname=false
4276b3a42afSjmmvfi
4286b3a42afSjmmv
4296b3a42afSjmmv# Avoid depending upon Character Ranges.
4306b3a42afSjmmvas_cr_letters='abcdefghijklmnopqrstuvwxyz'
4316b3a42afSjmmvas_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
4326b3a42afSjmmvas_cr_Letters=$as_cr_letters$as_cr_LETTERS
4336b3a42afSjmmvas_cr_digits='0123456789'
4346b3a42afSjmmvas_cr_alnum=$as_cr_Letters$as_cr_digits
4356b3a42afSjmmv
4366b3a42afSjmmv
4376b3a42afSjmmv  as_lineno_1=$LINENO as_lineno_1a=$LINENO
4386b3a42afSjmmv  as_lineno_2=$LINENO as_lineno_2a=$LINENO
4396b3a42afSjmmv  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
4406b3a42afSjmmv  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
4416b3a42afSjmmv  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
4426b3a42afSjmmv  sed -n '
4436b3a42afSjmmv    p
4446b3a42afSjmmv    /[$]LINENO/=
4456b3a42afSjmmv  ' <$as_myself |
4466b3a42afSjmmv    sed '
4476b3a42afSjmmv      s/[$]LINENO.*/&-/
4486b3a42afSjmmv      t lineno
4496b3a42afSjmmv      b
4506b3a42afSjmmv      :lineno
4516b3a42afSjmmv      N
4526b3a42afSjmmv      :loop
4536b3a42afSjmmv      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
4546b3a42afSjmmv      t loop
4556b3a42afSjmmv      s/-\n.*//
4566b3a42afSjmmv    ' >$as_me.lineno &&
4576b3a42afSjmmv  chmod +x "$as_me.lineno" ||
4586b3a42afSjmmv    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
4596b3a42afSjmmv
4606b3a42afSjmmv  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
4616b3a42afSjmmv  # already done that, so ensure we don't try to do so again and fall
4626b3a42afSjmmv  # in an infinite loop.  This has already happened in practice.
4636b3a42afSjmmv  _as_can_reexec=no; export _as_can_reexec
4646b3a42afSjmmv  # Don't try to exec as it changes $[0], causing all sort of problems
4656b3a42afSjmmv  # (the dirname of $[0] is not the place where we might find the
4666b3a42afSjmmv  # original and so on.  Autoconf is especially sensitive to this).
4676b3a42afSjmmv  . "./$as_me.lineno"
4686b3a42afSjmmv  # Exit status is that of the last command.
4696b3a42afSjmmv  exit
4706b3a42afSjmmv}
4716b3a42afSjmmv
4726b3a42afSjmmvECHO_C= ECHO_N= ECHO_T=
4736b3a42afSjmmvcase `echo -n x` in #(((((
4746b3a42afSjmmv-n*)
4756b3a42afSjmmv  case `echo 'xy\c'` in
4766b3a42afSjmmv  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
4776b3a42afSjmmv  xy)  ECHO_C='\c';;
4786b3a42afSjmmv  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
4796b3a42afSjmmv       ECHO_T='	';;
4806b3a42afSjmmv  esac;;
4816b3a42afSjmmv*)
4826b3a42afSjmmv  ECHO_N='-n';;
4836b3a42afSjmmvesac
4846b3a42afSjmmv
4856b3a42afSjmmvrm -f conf$$ conf$$.exe conf$$.file
4866b3a42afSjmmvif test -d conf$$.dir; then
4876b3a42afSjmmv  rm -f conf$$.dir/conf$$.file
4886b3a42afSjmmvelse
4896b3a42afSjmmv  rm -f conf$$.dir
4906b3a42afSjmmv  mkdir conf$$.dir 2>/dev/null
4916b3a42afSjmmvfi
4926b3a42afSjmmvif (echo >conf$$.file) 2>/dev/null; then
4936b3a42afSjmmv  if ln -s conf$$.file conf$$ 2>/dev/null; then
4946b3a42afSjmmv    as_ln_s='ln -s'
4956b3a42afSjmmv    # ... but there are two gotchas:
4966b3a42afSjmmv    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
4976b3a42afSjmmv    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
4986b3a42afSjmmv    # In both cases, we have to default to `cp -pR'.
4996b3a42afSjmmv    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
5006b3a42afSjmmv      as_ln_s='cp -pR'
5016b3a42afSjmmv  elif ln conf$$.file conf$$ 2>/dev/null; then
5026b3a42afSjmmv    as_ln_s=ln
5036b3a42afSjmmv  else
5046b3a42afSjmmv    as_ln_s='cp -pR'
5056b3a42afSjmmv  fi
5066b3a42afSjmmvelse
5076b3a42afSjmmv  as_ln_s='cp -pR'
5086b3a42afSjmmvfi
5096b3a42afSjmmvrm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
5106b3a42afSjmmvrmdir conf$$.dir 2>/dev/null
5116b3a42afSjmmv
5126b3a42afSjmmvif mkdir -p . 2>/dev/null; then
5136b3a42afSjmmv  as_mkdir_p='mkdir -p "$as_dir"'
5146b3a42afSjmmvelse
5156b3a42afSjmmv  test -d ./-p && rmdir ./-p
5166b3a42afSjmmv  as_mkdir_p=false
5176b3a42afSjmmvfi
5186b3a42afSjmmv
5196b3a42afSjmmvas_test_x='test -x'
5206b3a42afSjmmvas_executable_p=as_fn_executable_p
5216b3a42afSjmmv
5226b3a42afSjmmv# Sed expression to map a string onto a valid CPP name.
5236b3a42afSjmmvas_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
5246b3a42afSjmmv
5256b3a42afSjmmv# Sed expression to map a string onto a valid variable name.
5266b3a42afSjmmvas_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
5276b3a42afSjmmv
5286b3a42afSjmmv
5296b3a42afSjmmv
5306b3a42afSjmmv
5316b3a42afSjmmv
5326b3a42afSjmmvSHELL=${CONFIG_SHELL-/bin/sh}
5336b3a42afSjmmv
5346b3a42afSjmmv# How were we run?
5356b3a42afSjmmvat_cli_args="$@"
5366b3a42afSjmmv
5376b3a42afSjmmv
5386b3a42afSjmmv# Not all shells have the 'times' builtin; the subshell is needed to make
5396b3a42afSjmmv# sure we discard the 'times: not found' message from the shell.
5406b3a42afSjmmvat_times_p=false
5416b3a42afSjmmv(times) >/dev/null 2>&1 && at_times_p=:
5426b3a42afSjmmv
5436b3a42afSjmmv# CLI Arguments to pass to the debugging scripts.
5446b3a42afSjmmvat_debug_args=
5456b3a42afSjmmv# -e sets to true
5466b3a42afSjmmvat_errexit_p=false
5476b3a42afSjmmv# Shall we be verbose?  ':' means no, empty means yes.
5486b3a42afSjmmvat_verbose=:
5496b3a42afSjmmvat_quiet=
5506b3a42afSjmmv# Running several jobs in parallel, 0 means as many as test groups.
5516b3a42afSjmmvat_jobs=1
5526b3a42afSjmmvat_traceon=:
5536b3a42afSjmmvat_trace_echo=:
5546b3a42afSjmmvat_check_filter_trace=:
5556b3a42afSjmmv
5566b3a42afSjmmv# Shall we keep the debug scripts?  Must be `:' when the suite is
5576b3a42afSjmmv# run by a debug script, so that the script doesn't remove itself.
5586b3a42afSjmmvat_debug_p=false
5596b3a42afSjmmv# Display help message?
5606b3a42afSjmmvat_help_p=false
5616b3a42afSjmmv# Display the version message?
5626b3a42afSjmmvat_version_p=false
5636b3a42afSjmmv# List test groups?
5646b3a42afSjmmvat_list_p=false
5656b3a42afSjmmv# --clean
5666b3a42afSjmmvat_clean=false
5676b3a42afSjmmv# Test groups to run
5686b3a42afSjmmvat_groups=
5696b3a42afSjmmv# Whether to rerun failed tests.
5706b3a42afSjmmvat_recheck=
5716b3a42afSjmmv# Whether a write failure occurred
5726b3a42afSjmmvat_write_fail=0
5736b3a42afSjmmv
5746b3a42afSjmmv# The directory we run the suite in.  Default to . if no -C option.
5756b3a42afSjmmvat_dir=`pwd`
5766b3a42afSjmmv# An absolute reference to this testsuite script.
5776b3a42afSjmmvcase $as_myself in
5786b3a42afSjmmv  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
5796b3a42afSjmmv  * ) at_myself=$at_dir/$as_myself ;;
5806b3a42afSjmmvesac
5816b3a42afSjmmv# Whether -C is in effect.
5826b3a42afSjmmvat_change_dir=false
5836b3a42afSjmmv
5846b3a42afSjmmv# Whether to enable colored test results.
5856b3a42afSjmmvat_color=no
5866b3a42afSjmmv# List of the tested programs.
5876b3a42afSjmmvat_tested='kyua'
5886b3a42afSjmmv# As many question marks as there are digits in the last test group number.
5896b3a42afSjmmv# Used to normalize the test group numbers so that `ls' lists them in
5906b3a42afSjmmv# numerical order.
5916b3a42afSjmmvat_format='??'
5926b3a42afSjmmv# Description of all the test groups.
5936b3a42afSjmmvat_help_all="1;testsuite.at:70;test program crashes in test list;;
5946b3a42afSjmmv2;testsuite.at:81;test program prints an empty test list;;
5956b3a42afSjmmv3;testsuite.at:92;test program with zero test cases;;
5966b3a42afSjmmv4;testsuite.at:103;run test case that passes;;
5976b3a42afSjmmv5;testsuite.at:115;run test case that fails;;
5986b3a42afSjmmv6;testsuite.at:128;run test case that skips;;
5996b3a42afSjmmv7;testsuite.at:141;run two test cases, success;;
6006b3a42afSjmmv8;testsuite.at:154;run two test cases, failure;;
6016b3a42afSjmmv9;testsuite.at:167;run mixed test cases;;
6026b3a42afSjmmv10;testsuite.at:181;run tests from build directories;;
6036b3a42afSjmmv"
6046b3a42afSjmmv# List of the all the test groups.
6056b3a42afSjmmvat_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
6066b3a42afSjmmv
6076b3a42afSjmmv# at_fn_validate_ranges NAME...
6086b3a42afSjmmv# -----------------------------
6096b3a42afSjmmv# Validate and normalize the test group number contained in each variable
6106b3a42afSjmmv# NAME. Leading zeroes are treated as decimal.
6116b3a42afSjmmvat_fn_validate_ranges ()
6126b3a42afSjmmv{
6136b3a42afSjmmv  for at_grp
6146b3a42afSjmmv  do
6156b3a42afSjmmv    eval at_value=\$$at_grp
6166b3a42afSjmmv    if test $at_value -lt 1 || test $at_value -gt 10; then
6176b3a42afSjmmv      $as_echo "invalid test group: $at_value" >&2
6186b3a42afSjmmv      exit 1
6196b3a42afSjmmv    fi
6206b3a42afSjmmv    case $at_value in
6216b3a42afSjmmv      0*) # We want to treat leading 0 as decimal, like expr and test, but
6226b3a42afSjmmv	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
6236b3a42afSjmmv	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
6246b3a42afSjmmv	  # expr fork, but it is not worth the effort to determine if the
6256b3a42afSjmmv	  # shell supports XSI when the user can just avoid leading 0.
6266b3a42afSjmmv	  eval $at_grp='`expr $at_value + 0`' ;;
6276b3a42afSjmmv    esac
6286b3a42afSjmmv  done
6296b3a42afSjmmv}
6306b3a42afSjmmv
6316b3a42afSjmmvat_prev=
6326b3a42afSjmmvfor at_option
6336b3a42afSjmmvdo
6346b3a42afSjmmv  # If the previous option needs an argument, assign it.
6356b3a42afSjmmv  if test -n "$at_prev"; then
6366b3a42afSjmmv    at_option=$at_prev=$at_option
6376b3a42afSjmmv    at_prev=
6386b3a42afSjmmv  fi
6396b3a42afSjmmv
6406b3a42afSjmmv  case $at_option in
6416b3a42afSjmmv  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
6426b3a42afSjmmv  *)    at_optarg= ;;
6436b3a42afSjmmv  esac
6446b3a42afSjmmv
6456b3a42afSjmmv  # Accept the important Cygnus configure options, so we can diagnose typos.
6466b3a42afSjmmv
6476b3a42afSjmmv  case $at_option in
6486b3a42afSjmmv    --help | -h )
6496b3a42afSjmmv	at_help_p=:
6506b3a42afSjmmv	;;
6516b3a42afSjmmv
6526b3a42afSjmmv    --list | -l )
6536b3a42afSjmmv	at_list_p=:
6546b3a42afSjmmv	;;
6556b3a42afSjmmv
6566b3a42afSjmmv    --version | -V )
6576b3a42afSjmmv	at_version_p=:
6586b3a42afSjmmv	;;
6596b3a42afSjmmv
6606b3a42afSjmmv    --clean | -c )
6616b3a42afSjmmv	at_clean=:
6626b3a42afSjmmv	;;
6636b3a42afSjmmv
6646b3a42afSjmmv    --color )
6656b3a42afSjmmv	at_color=always
6666b3a42afSjmmv	;;
6676b3a42afSjmmv    --color=* )
6686b3a42afSjmmv	case $at_optarg in
6696b3a42afSjmmv	no | never | none) at_color=never ;;
6706b3a42afSjmmv	auto | tty | if-tty) at_color=auto ;;
6716b3a42afSjmmv	always | yes | force) at_color=always ;;
6726b3a42afSjmmv	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
6736b3a42afSjmmv	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
6746b3a42afSjmmv	esac
6756b3a42afSjmmv	;;
6766b3a42afSjmmv
6776b3a42afSjmmv    --debug | -d )
6786b3a42afSjmmv	at_debug_p=:
6796b3a42afSjmmv	;;
6806b3a42afSjmmv
6816b3a42afSjmmv    --errexit | -e )
6826b3a42afSjmmv	at_debug_p=:
6836b3a42afSjmmv	at_errexit_p=:
6846b3a42afSjmmv	;;
6856b3a42afSjmmv
6866b3a42afSjmmv    --verbose | -v )
6876b3a42afSjmmv	at_verbose=; at_quiet=:
6886b3a42afSjmmv	;;
6896b3a42afSjmmv
6906b3a42afSjmmv    --trace | -x )
6916b3a42afSjmmv	at_traceon='set -x'
6926b3a42afSjmmv	at_trace_echo=echo
6936b3a42afSjmmv	at_check_filter_trace=at_fn_filter_trace
6946b3a42afSjmmv	;;
6956b3a42afSjmmv
6966b3a42afSjmmv    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
6976b3a42afSjmmv	at_fn_validate_ranges at_option
6986b3a42afSjmmv	as_fn_append at_groups "$at_option$as_nl"
6996b3a42afSjmmv	;;
7006b3a42afSjmmv
7016b3a42afSjmmv    # Ranges
7026b3a42afSjmmv    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
7036b3a42afSjmmv	at_range_start=`echo $at_option |tr -d X-`
7046b3a42afSjmmv	at_fn_validate_ranges at_range_start
7056b3a42afSjmmv	at_range=`$as_echo "$at_groups_all" | \
7066b3a42afSjmmv	  sed -ne '/^'$at_range_start'$/,$p'`
7076b3a42afSjmmv	as_fn_append at_groups "$at_range$as_nl"
7086b3a42afSjmmv	;;
7096b3a42afSjmmv
7106b3a42afSjmmv    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
7116b3a42afSjmmv	at_range_end=`echo $at_option |tr -d X-`
7126b3a42afSjmmv	at_fn_validate_ranges at_range_end
7136b3a42afSjmmv	at_range=`$as_echo "$at_groups_all" | \
7146b3a42afSjmmv	  sed -ne '1,/^'$at_range_end'$/p'`
7156b3a42afSjmmv	as_fn_append at_groups "$at_range$as_nl"
7166b3a42afSjmmv	;;
7176b3a42afSjmmv
7186b3a42afSjmmv    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
7196b3a42afSjmmv    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
7206b3a42afSjmmv    [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
7216b3a42afSjmmv    [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
7226b3a42afSjmmv    [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
7236b3a42afSjmmv    [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
7246b3a42afSjmmv	at_range_start=`expr $at_option : '\(.*\)-'`
7256b3a42afSjmmv	at_range_end=`expr $at_option : '.*-\(.*\)'`
7266b3a42afSjmmv	if test $at_range_start -gt $at_range_end; then
7276b3a42afSjmmv	  at_tmp=$at_range_end
7286b3a42afSjmmv	  at_range_end=$at_range_start
7296b3a42afSjmmv	  at_range_start=$at_tmp
7306b3a42afSjmmv	fi
7316b3a42afSjmmv	at_fn_validate_ranges at_range_start at_range_end
7326b3a42afSjmmv	at_range=`$as_echo "$at_groups_all" | \
7336b3a42afSjmmv	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
7346b3a42afSjmmv	as_fn_append at_groups "$at_range$as_nl"
7356b3a42afSjmmv	;;
7366b3a42afSjmmv
7376b3a42afSjmmv    # Directory selection.
7386b3a42afSjmmv    --directory | -C )
7396b3a42afSjmmv	at_prev=--directory
7406b3a42afSjmmv	;;
7416b3a42afSjmmv    --directory=* )
7426b3a42afSjmmv	at_change_dir=:
7436b3a42afSjmmv	at_dir=$at_optarg
7446b3a42afSjmmv	if test x- = "x$at_dir" ; then
7456b3a42afSjmmv	  at_dir=./-
7466b3a42afSjmmv	fi
7476b3a42afSjmmv	;;
7486b3a42afSjmmv
7496b3a42afSjmmv    # Parallel execution.
7506b3a42afSjmmv    --jobs | -j )
7516b3a42afSjmmv	at_jobs=0
7526b3a42afSjmmv	;;
7536b3a42afSjmmv    --jobs=* | -j[0-9]* )
7546b3a42afSjmmv	if test -n "$at_optarg"; then
7556b3a42afSjmmv	  at_jobs=$at_optarg
7566b3a42afSjmmv	else
7576b3a42afSjmmv	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
7586b3a42afSjmmv	fi
7596b3a42afSjmmv	case $at_jobs in *[!0-9]*)
7606b3a42afSjmmv	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
7616b3a42afSjmmv	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
7626b3a42afSjmmv	esac
7636b3a42afSjmmv	;;
7646b3a42afSjmmv
7656b3a42afSjmmv    # Keywords.
7666b3a42afSjmmv    --keywords | -k )
7676b3a42afSjmmv	at_prev=--keywords
7686b3a42afSjmmv	;;
7696b3a42afSjmmv    --keywords=* )
7706b3a42afSjmmv	at_groups_selected=$at_help_all
7716b3a42afSjmmv	at_save_IFS=$IFS
7726b3a42afSjmmv	IFS=,
7736b3a42afSjmmv	set X $at_optarg
7746b3a42afSjmmv	shift
7756b3a42afSjmmv	IFS=$at_save_IFS
7766b3a42afSjmmv	for at_keyword
7776b3a42afSjmmv	do
7786b3a42afSjmmv	  at_invert=
7796b3a42afSjmmv	  case $at_keyword in
7806b3a42afSjmmv	  '!'*)
7816b3a42afSjmmv	    at_invert="-v"
7826b3a42afSjmmv	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
7836b3a42afSjmmv	    ;;
7846b3a42afSjmmv	  esac
7856b3a42afSjmmv	  # It is on purpose that we match the test group titles too.
7866b3a42afSjmmv	  at_groups_selected=`$as_echo "$at_groups_selected" |
7876b3a42afSjmmv	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
7886b3a42afSjmmv	done
7896b3a42afSjmmv	# Smash the keywords.
7906b3a42afSjmmv	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
7916b3a42afSjmmv	as_fn_append at_groups "$at_groups_selected$as_nl"
7926b3a42afSjmmv	;;
7936b3a42afSjmmv    --recheck)
7946b3a42afSjmmv	at_recheck=:
7956b3a42afSjmmv	;;
7966b3a42afSjmmv
7976b3a42afSjmmv    *=*)
7986b3a42afSjmmv	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
7996b3a42afSjmmv	# Reject names that are not valid shell variable names.
8006b3a42afSjmmv	case $at_envvar in
8016b3a42afSjmmv	  '' | [0-9]* | *[!_$as_cr_alnum]* )
8026b3a42afSjmmv	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
8036b3a42afSjmmv	esac
8046b3a42afSjmmv	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
8056b3a42afSjmmv	# Export now, but save eval for later and for debug scripts.
8066b3a42afSjmmv	export $at_envvar
8076b3a42afSjmmv	as_fn_append at_debug_args " $at_envvar='$at_value'"
8086b3a42afSjmmv	;;
8096b3a42afSjmmv
8106b3a42afSjmmv     *) $as_echo "$as_me: invalid option: $at_option" >&2
8116b3a42afSjmmv	$as_echo "Try \`$0 --help' for more information." >&2
8126b3a42afSjmmv	exit 1
8136b3a42afSjmmv	;;
8146b3a42afSjmmv  esac
8156b3a42afSjmmvdone
8166b3a42afSjmmv
8176b3a42afSjmmv# Verify our last option didn't require an argument
8186b3a42afSjmmvif test -n "$at_prev"; then :
8196b3a42afSjmmv  as_fn_error $? "\`$at_prev' requires an argument"
8206b3a42afSjmmvfi
8216b3a42afSjmmv
8226b3a42afSjmmv# The file containing the suite.
8236b3a42afSjmmvat_suite_log=$at_dir/$as_me.log
8246b3a42afSjmmv
8256b3a42afSjmmv# Selected test groups.
8266b3a42afSjmmvif test -z "$at_groups$at_recheck"; then
8276b3a42afSjmmv  at_groups=$at_groups_all
8286b3a42afSjmmvelse
8296b3a42afSjmmv  if test -n "$at_recheck" && test -r "$at_suite_log"; then
8306b3a42afSjmmv    at_oldfails=`sed -n '
8316b3a42afSjmmv      /^Failed tests:$/,/^Skipped tests:$/{
8326b3a42afSjmmv	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
8336b3a42afSjmmv      }
8346b3a42afSjmmv      /^Unexpected passes:$/,/^## Detailed failed tests/{
8356b3a42afSjmmv	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
8366b3a42afSjmmv      }
8376b3a42afSjmmv      /^## Detailed failed tests/q
8386b3a42afSjmmv      ' "$at_suite_log"`
8396b3a42afSjmmv    as_fn_append at_groups "$at_oldfails$as_nl"
8406b3a42afSjmmv  fi
8416b3a42afSjmmv  # Sort the tests, removing duplicates.
8426b3a42afSjmmv  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
8436b3a42afSjmmvfi
8446b3a42afSjmmv
8456b3a42afSjmmvif test x"$at_color" = xalways \
8466b3a42afSjmmv   || { test x"$at_color" = xauto && test -t 1; }; then
8476b3a42afSjmmv  at_red=`printf '\033[0;31m'`
8486b3a42afSjmmv  at_grn=`printf '\033[0;32m'`
8496b3a42afSjmmv  at_lgn=`printf '\033[1;32m'`
8506b3a42afSjmmv  at_blu=`printf '\033[1;34m'`
8516b3a42afSjmmv  at_std=`printf '\033[m'`
8526b3a42afSjmmvelse
8536b3a42afSjmmv  at_red= at_grn= at_lgn= at_blu= at_std=
8546b3a42afSjmmvfi
8556b3a42afSjmmv
8566b3a42afSjmmv# Help message.
8576b3a42afSjmmvif $at_help_p; then
8586b3a42afSjmmv  cat <<_ATEOF || at_write_fail=1
8596b3a42afSjmmvUsage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
8606b3a42afSjmmv
8616b3a42afSjmmvRun all the tests, or the selected TESTS, given by numeric ranges, and
8626b3a42afSjmmvsave a detailed log file.  Upon failure, create debugging scripts.
8636b3a42afSjmmv
8646b3a42afSjmmvDo not change environment variables directly.  Instead, set them via
8656b3a42afSjmmvcommand line arguments.  Set \`AUTOTEST_PATH' to select the executables
8666b3a42afSjmmvto exercise.  Each relative directory is expanded as build and source
8676b3a42afSjmmvdirectories relative to the top level of this distribution.
8686b3a42afSjmmvE.g., from within the build directory /tmp/foo-1.0, invoking this:
8696b3a42afSjmmv
8706b3a42afSjmmv  $ $0 AUTOTEST_PATH=bin
8716b3a42afSjmmv
8726b3a42afSjmmvis equivalent to the following, assuming the source directory is /src/foo-1.0:
8736b3a42afSjmmv
8746b3a42afSjmmv  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
8756b3a42afSjmmv_ATEOF
8766b3a42afSjmmvcat <<_ATEOF || at_write_fail=1
8776b3a42afSjmmv
8786b3a42afSjmmvOperation modes:
8796b3a42afSjmmv  -h, --help     print the help message, then exit
8806b3a42afSjmmv  -V, --version  print version number, then exit
8816b3a42afSjmmv  -c, --clean    remove all the files this test suite might create and exit
8826b3a42afSjmmv  -l, --list     describes all the tests, or the selected TESTS
8836b3a42afSjmmv_ATEOF
8846b3a42afSjmmvcat <<_ATEOF || at_write_fail=1
8856b3a42afSjmmv
8866b3a42afSjmmvExecution tuning:
8876b3a42afSjmmv  -C, --directory=DIR
8886b3a42afSjmmv                 change to directory DIR before starting
8896b3a42afSjmmv      --color[=never|auto|always]
8906b3a42afSjmmv                 enable colored test results on terminal, or always
8916b3a42afSjmmv  -j, --jobs[=N]
8926b3a42afSjmmv                 Allow N jobs at once; infinite jobs with no arg (default 1)
8936b3a42afSjmmv  -k, --keywords=KEYWORDS
8946b3a42afSjmmv                 select the tests matching all the comma-separated KEYWORDS
8956b3a42afSjmmv                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
8966b3a42afSjmmv      --recheck  select all tests that failed or passed unexpectedly last time
8976b3a42afSjmmv  -e, --errexit  abort as soon as a test fails; implies --debug
8986b3a42afSjmmv  -v, --verbose  force more detailed output
8996b3a42afSjmmv                 default for debugging scripts
9006b3a42afSjmmv  -d, --debug    inhibit clean up and top-level logging
9016b3a42afSjmmv                 default for debugging scripts
9026b3a42afSjmmv  -x, --trace    enable tests shell tracing
9036b3a42afSjmmv_ATEOF
9046b3a42afSjmmvcat <<_ATEOF || at_write_fail=1
9056b3a42afSjmmv
9066b3a42afSjmmvReport bugs to <kyua-discuss@googlegroups.com>.
9076b3a42afSjmmv_ATEOF
9086b3a42afSjmmv  exit $at_write_fail
9096b3a42afSjmmvfi
9106b3a42afSjmmv
9116b3a42afSjmmv# List of tests.
9126b3a42afSjmmvif $at_list_p; then
9136b3a42afSjmmv  cat <<_ATEOF || at_write_fail=1
914*f39f9c9bSjmmvKyua - Command line interface 0.7 test suite: bootstrapping tests test groups:
9156b3a42afSjmmv
9166b3a42afSjmmv NUM: FILE-NAME:LINE     TEST-GROUP-NAME
9176b3a42afSjmmv      KEYWORDS
9186b3a42afSjmmv
9196b3a42afSjmmv_ATEOF
9206b3a42afSjmmv  # Pass an empty line as separator between selected groups and help.
9216b3a42afSjmmv  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
9226b3a42afSjmmv    awk 'NF == 1 && FS != ";" {
9236b3a42afSjmmv	   selected[$ 1] = 1
9246b3a42afSjmmv	   next
9256b3a42afSjmmv	 }
9266b3a42afSjmmv	 /^$/ { FS = ";" }
9276b3a42afSjmmv	 NF > 0 {
9286b3a42afSjmmv	   if (selected[$ 1]) {
9296b3a42afSjmmv	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
9306b3a42afSjmmv	     if ($ 4) {
9316b3a42afSjmmv	       lmax = 79
9326b3a42afSjmmv	       indent = "     "
9336b3a42afSjmmv	       line = indent
9346b3a42afSjmmv	       len = length (line)
9356b3a42afSjmmv	       n = split ($ 4, a, " ")
9366b3a42afSjmmv	       for (i = 1; i <= n; i++) {
9376b3a42afSjmmv		 l = length (a[i]) + 1
9386b3a42afSjmmv		 if (i > 1 && len + l > lmax) {
9396b3a42afSjmmv		   print line
9406b3a42afSjmmv		   line = indent " " a[i]
9416b3a42afSjmmv		   len = length (line)
9426b3a42afSjmmv		 } else {
9436b3a42afSjmmv		   line = line " " a[i]
9446b3a42afSjmmv		   len += l
9456b3a42afSjmmv		 }
9466b3a42afSjmmv	       }
9476b3a42afSjmmv	       if (n)
9486b3a42afSjmmv		 print line
9496b3a42afSjmmv	     }
9506b3a42afSjmmv	   }
9516b3a42afSjmmv	 }' || at_write_fail=1
9526b3a42afSjmmv  exit $at_write_fail
9536b3a42afSjmmvfi
9546b3a42afSjmmvif $at_version_p; then
955*f39f9c9bSjmmv  $as_echo "$as_me (Kyua - Command line interface 0.7)" &&
9566b3a42afSjmmv  cat <<\_ATEOF || at_write_fail=1
9576b3a42afSjmmv
9586b3a42afSjmmvCopyright (C) 2012 Free Software Foundation, Inc.
9596b3a42afSjmmvThis test suite is free software; the Free Software Foundation gives
9606b3a42afSjmmvunlimited permission to copy, distribute and modify it.
9616b3a42afSjmmv_ATEOF
9626b3a42afSjmmv  exit $at_write_fail
9636b3a42afSjmmvfi
9646b3a42afSjmmv
9656b3a42afSjmmv# Should we print banners?  Yes if more than one test is run.
9666b3a42afSjmmvcase $at_groups in #(
9676b3a42afSjmmv  *$as_nl* )
9686b3a42afSjmmv      at_print_banners=: ;; #(
9696b3a42afSjmmv  * ) at_print_banners=false ;;
9706b3a42afSjmmvesac
9716b3a42afSjmmv# Text for banner N, set to a single space once printed.
9726b3a42afSjmmv
9736b3a42afSjmmv# Take any -C into account.
9746b3a42afSjmmvif $at_change_dir ; then
9756b3a42afSjmmv  test x != "x$at_dir" && cd "$at_dir" \
9766b3a42afSjmmv    || as_fn_error $? "unable to change directory"
9776b3a42afSjmmv  at_dir=`pwd`
9786b3a42afSjmmvfi
9796b3a42afSjmmv
9806b3a42afSjmmv# Load the config files for any default variable assignments.
9816b3a42afSjmmvfor at_file in atconfig atlocal
9826b3a42afSjmmvdo
9836b3a42afSjmmv  test -r $at_file || continue
9846b3a42afSjmmv  . ./$at_file || as_fn_error $? "invalid content: $at_file"
9856b3a42afSjmmvdone
9866b3a42afSjmmv
9876b3a42afSjmmv# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
9886b3a42afSjmmv: "${at_top_build_prefix=$at_top_builddir}"
9896b3a42afSjmmv
9906b3a42afSjmmv# Perform any assignments requested during argument parsing.
9916b3a42afSjmmveval "$at_debug_args"
9926b3a42afSjmmv
9936b3a42afSjmmv# atconfig delivers names relative to the directory the test suite is
9946b3a42afSjmmv# in, but the groups themselves are run in testsuite-dir/group-dir.
9956b3a42afSjmmvif test -n "$at_top_srcdir"; then
9966b3a42afSjmmv  builddir=../..
9976b3a42afSjmmv  for at_dir_var in srcdir top_srcdir top_build_prefix
9986b3a42afSjmmv  do
9996b3a42afSjmmv    eval at_val=\$at_$at_dir_var
10006b3a42afSjmmv    case $at_val in
10016b3a42afSjmmv      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
10026b3a42afSjmmv      *) at_prefix=../../ ;;
10036b3a42afSjmmv    esac
10046b3a42afSjmmv    eval "$at_dir_var=\$at_prefix\$at_val"
10056b3a42afSjmmv  done
10066b3a42afSjmmvfi
10076b3a42afSjmmv
10086b3a42afSjmmv## -------------------- ##
10096b3a42afSjmmv## Directory structure. ##
10106b3a42afSjmmv## -------------------- ##
10116b3a42afSjmmv
10126b3a42afSjmmv# This is the set of directories and files used by this script
10136b3a42afSjmmv# (non-literals are capitalized):
10146b3a42afSjmmv#
10156b3a42afSjmmv# TESTSUITE         - the testsuite
10166b3a42afSjmmv# TESTSUITE.log     - summarizes the complete testsuite run
10176b3a42afSjmmv# TESTSUITE.dir/    - created during a run, remains after -d or failed test
10186b3a42afSjmmv# + at-groups/      - during a run: status of all groups in run
10196b3a42afSjmmv# | + NNN/          - during a run: meta-data about test group NNN
10206b3a42afSjmmv# | | + check-line  - location (source file and line) of current AT_CHECK
10216b3a42afSjmmv# | | + status      - exit status of current AT_CHECK
10226b3a42afSjmmv# | | + stdout      - stdout of current AT_CHECK
10236b3a42afSjmmv# | | + stder1      - stderr, including trace
10246b3a42afSjmmv# | | + stderr      - stderr, with trace filtered out
10256b3a42afSjmmv# | | + test-source - portion of testsuite that defines group
10266b3a42afSjmmv# | | + times       - timestamps for computing duration
10276b3a42afSjmmv# | | + pass        - created if group passed
10286b3a42afSjmmv# | | + xpass       - created if group xpassed
10296b3a42afSjmmv# | | + fail        - created if group failed
10306b3a42afSjmmv# | | + xfail       - created if group xfailed
10316b3a42afSjmmv# | | + skip        - created if group skipped
10326b3a42afSjmmv# + at-stop         - during a run: end the run if this file exists
10336b3a42afSjmmv# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
10346b3a42afSjmmv# + 0..NNN/         - created for each group NNN, remains after -d or failed test
10356b3a42afSjmmv# | + TESTSUITE.log - summarizes the group results
10366b3a42afSjmmv# | + ...           - files created during the group
10376b3a42afSjmmv
10386b3a42afSjmmv# The directory the whole suite works in.
10396b3a42afSjmmv# Should be absolute to let the user `cd' at will.
10406b3a42afSjmmvat_suite_dir=$at_dir/$as_me.dir
10416b3a42afSjmmv# The file containing the suite ($at_dir might have changed since earlier).
10426b3a42afSjmmvat_suite_log=$at_dir/$as_me.log
10436b3a42afSjmmv# The directory containing helper files per test group.
10446b3a42afSjmmvat_helper_dir=$at_suite_dir/at-groups
10456b3a42afSjmmv# Stop file: if it exists, do not start new jobs.
10466b3a42afSjmmvat_stop_file=$at_suite_dir/at-stop
10476b3a42afSjmmv# The fifo used for the job dispatcher.
10486b3a42afSjmmvat_job_fifo=$at_suite_dir/at-job-fifo
10496b3a42afSjmmv
10506b3a42afSjmmvif $at_clean; then
10516b3a42afSjmmv  test -d "$at_suite_dir" &&
10526b3a42afSjmmv    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
10536b3a42afSjmmv  rm -f -r "$at_suite_dir" "$at_suite_log"
10546b3a42afSjmmv  exit $?
10556b3a42afSjmmvfi
10566b3a42afSjmmv
10576b3a42afSjmmv# Don't take risks: use only absolute directories in PATH.
10586b3a42afSjmmv#
10596b3a42afSjmmv# For stand-alone test suites (ie. atconfig was not found),
10606b3a42afSjmmv# AUTOTEST_PATH is relative to `.'.
10616b3a42afSjmmv#
10626b3a42afSjmmv# For embedded test suites, AUTOTEST_PATH is relative to the top level
10636b3a42afSjmmv# of the package.  Then expand it into build/src parts, since users
10646b3a42afSjmmv# may create executables in both places.
10656b3a42afSjmmvAUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
10666b3a42afSjmmvat_path=
10676b3a42afSjmmvas_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10686b3a42afSjmmvfor as_dir in $AUTOTEST_PATH $PATH
10696b3a42afSjmmvdo
10706b3a42afSjmmv  IFS=$as_save_IFS
10716b3a42afSjmmv  test -z "$as_dir" && as_dir=.
10726b3a42afSjmmv    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
10736b3a42afSjmmvcase $as_dir in
10746b3a42afSjmmv  [\\/]* | ?:[\\/]* )
10756b3a42afSjmmv    as_fn_append at_path "$as_dir"
10766b3a42afSjmmv    ;;
10776b3a42afSjmmv  * )
10786b3a42afSjmmv    if test -z "$at_top_build_prefix"; then
10796b3a42afSjmmv      # Stand-alone test suite.
10806b3a42afSjmmv      as_fn_append at_path "$as_dir"
10816b3a42afSjmmv    else
10826b3a42afSjmmv      # Embedded test suite.
10836b3a42afSjmmv      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
10846b3a42afSjmmv      as_fn_append at_path "$at_top_srcdir/$as_dir"
10856b3a42afSjmmv    fi
10866b3a42afSjmmv    ;;
10876b3a42afSjmmvesac
10886b3a42afSjmmv  done
10896b3a42afSjmmvIFS=$as_save_IFS
10906b3a42afSjmmv
10916b3a42afSjmmv
10926b3a42afSjmmv# Now build and simplify PATH.
10936b3a42afSjmmv#
10946b3a42afSjmmv# There might be directories that don't exist, but don't redirect
10956b3a42afSjmmv# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
10966b3a42afSjmmvat_new_path=
10976b3a42afSjmmvas_save_IFS=$IFS; IFS=$PATH_SEPARATOR
10986b3a42afSjmmvfor as_dir in $at_path
10996b3a42afSjmmvdo
11006b3a42afSjmmv  IFS=$as_save_IFS
11016b3a42afSjmmv  test -z "$as_dir" && as_dir=.
11026b3a42afSjmmv    test -d "$as_dir" || continue
11036b3a42afSjmmvcase $as_dir in
11046b3a42afSjmmv  [\\/]* | ?:[\\/]* ) ;;
11056b3a42afSjmmv  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
11066b3a42afSjmmvesac
11076b3a42afSjmmvcase $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
11086b3a42afSjmmv  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
11096b3a42afSjmmv  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
11106b3a42afSjmmv  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
11116b3a42afSjmmvesac
11126b3a42afSjmmv  done
11136b3a42afSjmmvIFS=$as_save_IFS
11146b3a42afSjmmv
11156b3a42afSjmmvPATH=$at_new_path
11166b3a42afSjmmvexport PATH
11176b3a42afSjmmv
11186b3a42afSjmmv# Setting up the FDs.
11196b3a42afSjmmv
11206b3a42afSjmmv
11216b3a42afSjmmv
11226b3a42afSjmmv# 5 is the log file.  Not to be overwritten if `-d'.
11236b3a42afSjmmvif $at_debug_p; then
11246b3a42afSjmmv  at_suite_log=/dev/null
11256b3a42afSjmmvelse
11266b3a42afSjmmv  : >"$at_suite_log"
11276b3a42afSjmmvfi
11286b3a42afSjmmvexec 5>>"$at_suite_log"
11296b3a42afSjmmv
11306b3a42afSjmmv# Banners and logs.
11316b3a42afSjmmv$as_echo "## ------------------------------------------------------------------ ##
1132*f39f9c9bSjmmv## Kyua - Command line interface 0.7 test suite: bootstrapping tests. ##
11336b3a42afSjmmv## ------------------------------------------------------------------ ##"
11346b3a42afSjmmv{
11356b3a42afSjmmv  $as_echo "## ------------------------------------------------------------------ ##
1136*f39f9c9bSjmmv## Kyua - Command line interface 0.7 test suite: bootstrapping tests. ##
11376b3a42afSjmmv## ------------------------------------------------------------------ ##"
11386b3a42afSjmmv  echo
11396b3a42afSjmmv
11406b3a42afSjmmv  $as_echo "$as_me: command line was:"
11416b3a42afSjmmv  $as_echo "  \$ $0 $at_cli_args"
11426b3a42afSjmmv  echo
11436b3a42afSjmmv
11446b3a42afSjmmv  # If ChangeLog exists, list a few lines in case it might help determining
11456b3a42afSjmmv  # the exact version.
11466b3a42afSjmmv  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
11476b3a42afSjmmv    $as_echo "## ---------- ##
11486b3a42afSjmmv## ChangeLog. ##
11496b3a42afSjmmv## ---------- ##"
11506b3a42afSjmmv    echo
11516b3a42afSjmmv    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
11526b3a42afSjmmv    echo
11536b3a42afSjmmv  fi
11546b3a42afSjmmv
11556b3a42afSjmmv  {
11566b3a42afSjmmvcat <<_ASUNAME
11576b3a42afSjmmv## --------- ##
11586b3a42afSjmmv## Platform. ##
11596b3a42afSjmmv## --------- ##
11606b3a42afSjmmv
11616b3a42afSjmmvhostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
11626b3a42afSjmmvuname -m = `(uname -m) 2>/dev/null || echo unknown`
11636b3a42afSjmmvuname -r = `(uname -r) 2>/dev/null || echo unknown`
11646b3a42afSjmmvuname -s = `(uname -s) 2>/dev/null || echo unknown`
11656b3a42afSjmmvuname -v = `(uname -v) 2>/dev/null || echo unknown`
11666b3a42afSjmmv
11676b3a42afSjmmv/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
11686b3a42afSjmmv/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
11696b3a42afSjmmv
11706b3a42afSjmmv/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
11716b3a42afSjmmv/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
11726b3a42afSjmmv/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
11736b3a42afSjmmv/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
11746b3a42afSjmmv/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
11756b3a42afSjmmv/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
11766b3a42afSjmmv/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
11776b3a42afSjmmv
11786b3a42afSjmmv_ASUNAME
11796b3a42afSjmmv
11806b3a42afSjmmvas_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11816b3a42afSjmmvfor as_dir in $PATH
11826b3a42afSjmmvdo
11836b3a42afSjmmv  IFS=$as_save_IFS
11846b3a42afSjmmv  test -z "$as_dir" && as_dir=.
11856b3a42afSjmmv    $as_echo "PATH: $as_dir"
11866b3a42afSjmmv  done
11876b3a42afSjmmvIFS=$as_save_IFS
11886b3a42afSjmmv
11896b3a42afSjmmv}
11906b3a42afSjmmv  echo
11916b3a42afSjmmv
11926b3a42afSjmmv  # Contents of the config files.
11936b3a42afSjmmv  for at_file in atconfig atlocal
11946b3a42afSjmmv  do
11956b3a42afSjmmv    test -r $at_file || continue
11966b3a42afSjmmv    $as_echo "$as_me: $at_file:"
11976b3a42afSjmmv    sed 's/^/| /' $at_file
11986b3a42afSjmmv    echo
11996b3a42afSjmmv  done
12006b3a42afSjmmv} >&5
12016b3a42afSjmmv
12026b3a42afSjmmv
12036b3a42afSjmmv## ------------------------- ##
12046b3a42afSjmmv## Autotest shell functions. ##
12056b3a42afSjmmv## ------------------------- ##
12066b3a42afSjmmv
12076b3a42afSjmmv# at_fn_banner NUMBER
12086b3a42afSjmmv# -------------------
12096b3a42afSjmmv# Output banner NUMBER, provided the testsuite is running multiple groups and
12106b3a42afSjmmv# this particular banner has not yet been printed.
12116b3a42afSjmmvat_fn_banner ()
12126b3a42afSjmmv{
12136b3a42afSjmmv  $at_print_banners || return 0
12146b3a42afSjmmv  eval at_banner_text=\$at_banner_text_$1
12156b3a42afSjmmv  test "x$at_banner_text" = "x " && return 0
12166b3a42afSjmmv  eval "at_banner_text_$1=\" \""
12176b3a42afSjmmv  if test -z "$at_banner_text"; then
12186b3a42afSjmmv    $at_first || echo
12196b3a42afSjmmv  else
12206b3a42afSjmmv    $as_echo "$as_nl$at_banner_text$as_nl"
12216b3a42afSjmmv  fi
12226b3a42afSjmmv} # at_fn_banner
12236b3a42afSjmmv
12246b3a42afSjmmv# at_fn_check_prepare_notrace REASON LINE
12256b3a42afSjmmv# ---------------------------------------
12266b3a42afSjmmv# Perform AT_CHECK preparations for the command at LINE for an untraceable
12276b3a42afSjmmv# command; REASON is the reason for disabling tracing.
12286b3a42afSjmmvat_fn_check_prepare_notrace ()
12296b3a42afSjmmv{
12306b3a42afSjmmv  $at_trace_echo "Not enabling shell tracing (command contains $1)"
12316b3a42afSjmmv  $as_echo "$2" >"$at_check_line_file"
12326b3a42afSjmmv  at_check_trace=: at_check_filter=:
12336b3a42afSjmmv  : >"$at_stdout"; : >"$at_stderr"
12346b3a42afSjmmv}
12356b3a42afSjmmv
12366b3a42afSjmmv# at_fn_check_prepare_trace LINE
12376b3a42afSjmmv# ------------------------------
12386b3a42afSjmmv# Perform AT_CHECK preparations for the command at LINE for a traceable
12396b3a42afSjmmv# command.
12406b3a42afSjmmvat_fn_check_prepare_trace ()
12416b3a42afSjmmv{
12426b3a42afSjmmv  $as_echo "$1" >"$at_check_line_file"
12436b3a42afSjmmv  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
12446b3a42afSjmmv  : >"$at_stdout"; : >"$at_stderr"
12456b3a42afSjmmv}
12466b3a42afSjmmv
12476b3a42afSjmmv# at_fn_check_prepare_dynamic COMMAND LINE
12486b3a42afSjmmv# ----------------------------------------
12496b3a42afSjmmv# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
12506b3a42afSjmmv# preparation function.
12516b3a42afSjmmvat_fn_check_prepare_dynamic ()
12526b3a42afSjmmv{
12536b3a42afSjmmv  case $1 in
12546b3a42afSjmmv    *$as_nl*)
12556b3a42afSjmmv      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
12566b3a42afSjmmv    *)
12576b3a42afSjmmv      at_fn_check_prepare_trace "$2" ;;
12586b3a42afSjmmv  esac
12596b3a42afSjmmv}
12606b3a42afSjmmv
12616b3a42afSjmmv# at_fn_filter_trace
12626b3a42afSjmmv# ------------------
12636b3a42afSjmmv# Remove the lines in the file "$at_stderr" generated by "set -x" and print
12646b3a42afSjmmv# them to stderr.
12656b3a42afSjmmvat_fn_filter_trace ()
12666b3a42afSjmmv{
12676b3a42afSjmmv  mv "$at_stderr" "$at_stder1"
12686b3a42afSjmmv  grep '^ *+' "$at_stder1" >&2
12696b3a42afSjmmv  grep -v '^ *+' "$at_stder1" >"$at_stderr"
12706b3a42afSjmmv}
12716b3a42afSjmmv
12726b3a42afSjmmv# at_fn_log_failure FILE-LIST
12736b3a42afSjmmv# ---------------------------
12746b3a42afSjmmv# Copy the files in the list on stdout with a "> " prefix, and exit the shell
12756b3a42afSjmmv# with a failure exit code.
12766b3a42afSjmmvat_fn_log_failure ()
12776b3a42afSjmmv{
12786b3a42afSjmmv  for file
12796b3a42afSjmmv    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
12806b3a42afSjmmv  echo 1 > "$at_status_file"
12816b3a42afSjmmv  exit 1
12826b3a42afSjmmv}
12836b3a42afSjmmv
12846b3a42afSjmmv# at_fn_check_skip EXIT-CODE LINE
12856b3a42afSjmmv# -------------------------------
12866b3a42afSjmmv# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
12876b3a42afSjmmv# the test group subshell with that same exit code. Use LINE in any report
12886b3a42afSjmmv# about test failure.
12896b3a42afSjmmvat_fn_check_skip ()
12906b3a42afSjmmv{
12916b3a42afSjmmv  case $1 in
12926b3a42afSjmmv    99) echo 99 > "$at_status_file"; at_failed=:
12936b3a42afSjmmv	$as_echo "$2: hard failure"; exit 99;;
12946b3a42afSjmmv    77) echo 77 > "$at_status_file"; exit 77;;
12956b3a42afSjmmv  esac
12966b3a42afSjmmv}
12976b3a42afSjmmv
12986b3a42afSjmmv# at_fn_check_status EXPECTED EXIT-CODE LINE
12996b3a42afSjmmv# ------------------------------------------
13006b3a42afSjmmv# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
13016b3a42afSjmmv# Otherwise, if it is 77 or 99, exit the test group subshell with that same
13026b3a42afSjmmv# exit code; if it is anything else print an error message referring to LINE,
13036b3a42afSjmmv# and fail the test.
13046b3a42afSjmmvat_fn_check_status ()
13056b3a42afSjmmv{
13066b3a42afSjmmv  case $2 in
13076b3a42afSjmmv    $1 ) ;;
13086b3a42afSjmmv    77) echo 77 > "$at_status_file"; exit 77;;
13096b3a42afSjmmv    99) echo 99 > "$at_status_file"; at_failed=:
13106b3a42afSjmmv	$as_echo "$3: hard failure"; exit 99;;
13116b3a42afSjmmv    *) $as_echo "$3: exit code was $2, expected $1"
13126b3a42afSjmmv      at_failed=:;;
13136b3a42afSjmmv  esac
13146b3a42afSjmmv}
13156b3a42afSjmmv
13166b3a42afSjmmv# at_fn_diff_devnull FILE
13176b3a42afSjmmv# -----------------------
13186b3a42afSjmmv# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
13196b3a42afSjmmv# invocations.
13206b3a42afSjmmvat_fn_diff_devnull ()
13216b3a42afSjmmv{
13226b3a42afSjmmv  test -s "$1" || return 0
13236b3a42afSjmmv  $at_diff "$at_devnull" "$1"
13246b3a42afSjmmv}
13256b3a42afSjmmv
13266b3a42afSjmmv# at_fn_test NUMBER
13276b3a42afSjmmv# -----------------
13286b3a42afSjmmv# Parse out test NUMBER from the tail of this file.
13296b3a42afSjmmvat_fn_test ()
13306b3a42afSjmmv{
13316b3a42afSjmmv  eval at_sed=\$at_sed$1
13326b3a42afSjmmv  sed "$at_sed" "$at_myself" > "$at_test_source"
13336b3a42afSjmmv}
13346b3a42afSjmmv
13356b3a42afSjmmv# at_fn_create_debugging_script
13366b3a42afSjmmv# -----------------------------
13376b3a42afSjmmv# Create the debugging script $at_group_dir/run which will reproduce the
13386b3a42afSjmmv# current test group.
13396b3a42afSjmmvat_fn_create_debugging_script ()
13406b3a42afSjmmv{
13416b3a42afSjmmv  {
13426b3a42afSjmmv    echo "#! /bin/sh" &&
13436b3a42afSjmmv    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
13446b3a42afSjmmv    $as_echo "cd '$at_dir'" &&
13456b3a42afSjmmv    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
13466b3a42afSjmmv    echo 'exit 1'
13476b3a42afSjmmv  } >"$at_group_dir/run" &&
13486b3a42afSjmmv  chmod +x "$at_group_dir/run"
13496b3a42afSjmmv}
13506b3a42afSjmmv
13516b3a42afSjmmv## -------------------------------- ##
13526b3a42afSjmmv## End of autotest shell functions. ##
13536b3a42afSjmmv## -------------------------------- ##
13546b3a42afSjmmv{
13556b3a42afSjmmv  $as_echo "## ---------------- ##
13566b3a42afSjmmv## Tested programs. ##
13576b3a42afSjmmv## ---------------- ##"
13586b3a42afSjmmv  echo
13596b3a42afSjmmv} >&5
13606b3a42afSjmmv
13616b3a42afSjmmv# Report what programs are being tested.
13626b3a42afSjmmvfor at_program in : $at_tested
13636b3a42afSjmmvdo
13646b3a42afSjmmv  test "$at_program" = : && continue
13656b3a42afSjmmv  case $at_program in
13666b3a42afSjmmv    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
13676b3a42afSjmmv    * )
13686b3a42afSjmmv    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
13696b3a42afSjmmvfor as_dir in $PATH
13706b3a42afSjmmvdo
13716b3a42afSjmmv  IFS=$as_save_IFS
13726b3a42afSjmmv  test -z "$as_dir" && as_dir=.
13736b3a42afSjmmv    test -f "$as_dir/$at_program" && break
13746b3a42afSjmmv  done
13756b3a42afSjmmvIFS=$as_save_IFS
13766b3a42afSjmmv
13776b3a42afSjmmv    at_program_=$as_dir/$at_program ;;
13786b3a42afSjmmv  esac
13796b3a42afSjmmv  if test -f "$at_program_"; then
13806b3a42afSjmmv    {
13816b3a42afSjmmv      $as_echo "$at_srcdir/testsuite.at:29: $at_program_ --version"
13826b3a42afSjmmv      "$at_program_" --version </dev/null
13836b3a42afSjmmv      echo
13846b3a42afSjmmv    } >&5 2>&1
13856b3a42afSjmmv  else
13866b3a42afSjmmv    as_fn_error $? "cannot find $at_program" "$LINENO" 5
13876b3a42afSjmmv  fi
13886b3a42afSjmmvdone
13896b3a42afSjmmv
13906b3a42afSjmmv{
13916b3a42afSjmmv  $as_echo "## ------------------ ##
13926b3a42afSjmmv## Running the tests. ##
13936b3a42afSjmmv## ------------------ ##"
13946b3a42afSjmmv} >&5
13956b3a42afSjmmv
13966b3a42afSjmmvat_start_date=`date`
13976b3a42afSjmmvat_start_time=`date +%s 2>/dev/null`
13986b3a42afSjmmv$as_echo "$as_me: starting at: $at_start_date" >&5
13996b3a42afSjmmv
14006b3a42afSjmmv# Create the master directory if it doesn't already exist.
14016b3a42afSjmmvas_dir="$at_suite_dir"; as_fn_mkdir_p ||
14026b3a42afSjmmv  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
14036b3a42afSjmmv
14046b3a42afSjmmv# Can we diff with `/dev/null'?  DU 5.0 refuses.
14056b3a42afSjmmvif diff /dev/null /dev/null >/dev/null 2>&1; then
14066b3a42afSjmmv  at_devnull=/dev/null
14076b3a42afSjmmvelse
14086b3a42afSjmmv  at_devnull=$at_suite_dir/devnull
14096b3a42afSjmmv  >"$at_devnull"
14106b3a42afSjmmvfi
14116b3a42afSjmmv
14126b3a42afSjmmv# Use `diff -u' when possible.
14136b3a42afSjmmvif at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
14146b3a42afSjmmvthen
14156b3a42afSjmmv  at_diff='diff -u'
14166b3a42afSjmmvelse
14176b3a42afSjmmv  at_diff=diff
14186b3a42afSjmmvfi
14196b3a42afSjmmv
14206b3a42afSjmmv# Get the last needed group.
14216b3a42afSjmmvfor at_group in : $at_groups; do :; done
14226b3a42afSjmmv
14236b3a42afSjmmv# Extract the start and end lines of each test group at the tail
14246b3a42afSjmmv# of this file
14256b3a42afSjmmvawk '
14266b3a42afSjmmvBEGIN { FS="" }
14276b3a42afSjmmv/^#AT_START_/ {
14286b3a42afSjmmv  start = NR
14296b3a42afSjmmv}
14306b3a42afSjmmv/^#AT_STOP_/ {
14316b3a42afSjmmv  test = substr ($ 0, 10)
14326b3a42afSjmmv  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
14336b3a42afSjmmv  if (test == "'"$at_group"'") exit
14346b3a42afSjmmv}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
14356b3a42afSjmmv. "$at_suite_dir/at-source-lines" ||
14366b3a42afSjmmv  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
14376b3a42afSjmmvrm -f "$at_suite_dir/at-source-lines"
14386b3a42afSjmmv
14396b3a42afSjmmv# Set number of jobs for `-j'; avoid more jobs than test groups.
14406b3a42afSjmmvset X $at_groups; shift; at_max_jobs=$#
14416b3a42afSjmmvif test $at_max_jobs -eq 0; then
14426b3a42afSjmmv  at_jobs=1
14436b3a42afSjmmvfi
14446b3a42afSjmmvif test $at_jobs -ne 1 &&
14456b3a42afSjmmv   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
14466b3a42afSjmmv  at_jobs=$at_max_jobs
14476b3a42afSjmmvfi
14486b3a42afSjmmv
14496b3a42afSjmmv# If parallel mode, don't output banners, don't split summary lines.
14506b3a42afSjmmvif test $at_jobs -ne 1; then
14516b3a42afSjmmv  at_print_banners=false
14526b3a42afSjmmv  at_quiet=:
14536b3a42afSjmmvfi
14546b3a42afSjmmv
14556b3a42afSjmmv# Set up helper dirs.
14566b3a42afSjmmvrm -rf "$at_helper_dir" &&
14576b3a42afSjmmvmkdir "$at_helper_dir" &&
14586b3a42afSjmmvcd "$at_helper_dir" &&
14596b3a42afSjmmv{ test -z "$at_groups" || mkdir $at_groups; } ||
14606b3a42afSjmmvas_fn_error $? "testsuite directory setup failed" "$LINENO" 5
14616b3a42afSjmmv
14626b3a42afSjmmv# Functions for running a test group.  We leave the actual
14636b3a42afSjmmv# test group execution outside of a shell function in order
14646b3a42afSjmmv# to avoid hitting zsh 4.x exit status bugs.
14656b3a42afSjmmv
14666b3a42afSjmmv# at_fn_group_prepare
14676b3a42afSjmmv# -------------------
14686b3a42afSjmmv# Prepare for running a test group.
14696b3a42afSjmmvat_fn_group_prepare ()
14706b3a42afSjmmv{
14716b3a42afSjmmv  # The directory for additional per-group helper files.
14726b3a42afSjmmv  at_job_dir=$at_helper_dir/$at_group
14736b3a42afSjmmv  # The file containing the location of the last AT_CHECK.
14746b3a42afSjmmv  at_check_line_file=$at_job_dir/check-line
14756b3a42afSjmmv  # The file containing the exit status of the last command.
14766b3a42afSjmmv  at_status_file=$at_job_dir/status
14776b3a42afSjmmv  # The files containing the output of the tested commands.
14786b3a42afSjmmv  at_stdout=$at_job_dir/stdout
14796b3a42afSjmmv  at_stder1=$at_job_dir/stder1
14806b3a42afSjmmv  at_stderr=$at_job_dir/stderr
14816b3a42afSjmmv  # The file containing the code for a test group.
14826b3a42afSjmmv  at_test_source=$at_job_dir/test-source
14836b3a42afSjmmv  # The file containing dates.
14846b3a42afSjmmv  at_times_file=$at_job_dir/times
14856b3a42afSjmmv
14866b3a42afSjmmv  # Be sure to come back to the top test directory.
14876b3a42afSjmmv  cd "$at_suite_dir"
14886b3a42afSjmmv
14896b3a42afSjmmv  # Clearly separate the test groups when verbose.
14906b3a42afSjmmv  $at_first || $at_verbose echo
14916b3a42afSjmmv
14926b3a42afSjmmv  at_group_normalized=$at_group
14936b3a42afSjmmv
14946b3a42afSjmmv  eval 'while :; do
14956b3a42afSjmmv    case $at_group_normalized in #(
14966b3a42afSjmmv    '"$at_format"'*) break;;
14976b3a42afSjmmv    esac
14986b3a42afSjmmv    at_group_normalized=0$at_group_normalized
14996b3a42afSjmmv  done'
15006b3a42afSjmmv
15016b3a42afSjmmv
15026b3a42afSjmmv  # Create a fresh directory for the next test group, and enter.
15036b3a42afSjmmv  # If one already exists, the user may have invoked ./run from
15046b3a42afSjmmv  # within that directory; we remove the contents, but not the
15056b3a42afSjmmv  # directory itself, so that we aren't pulling the rug out from
15066b3a42afSjmmv  # under the shell's notion of the current directory.
15076b3a42afSjmmv  at_group_dir=$at_suite_dir/$at_group_normalized
15086b3a42afSjmmv  at_group_log=$at_group_dir/$as_me.log
15096b3a42afSjmmv  if test -d "$at_group_dir"; then
15106b3a42afSjmmv  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
15116b3a42afSjmmv  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
15126b3a42afSjmmvfi ||
15136b3a42afSjmmv    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
15146b3a42afSjmmv$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
15156b3a42afSjmmv  # Be tolerant if the above `rm' was not able to remove the directory.
15166b3a42afSjmmv  as_dir="$at_group_dir"; as_fn_mkdir_p
15176b3a42afSjmmv
15186b3a42afSjmmv  echo 0 > "$at_status_file"
15196b3a42afSjmmv
15206b3a42afSjmmv  # In verbose mode, append to the log file *and* show on
15216b3a42afSjmmv  # the standard output; in quiet mode only write to the log.
15226b3a42afSjmmv  if test -z "$at_verbose"; then
15236b3a42afSjmmv    at_tee_pipe='tee -a "$at_group_log"'
15246b3a42afSjmmv  else
15256b3a42afSjmmv    at_tee_pipe='cat >> "$at_group_log"'
15266b3a42afSjmmv  fi
15276b3a42afSjmmv}
15286b3a42afSjmmv
15296b3a42afSjmmv# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
15306b3a42afSjmmv# -------------------------------------------------
15316b3a42afSjmmv# Declare the test group ORDINAL, located at LINE with group description DESC,
15326b3a42afSjmmv# and residing under BANNER. Use PAD to align the status column.
15336b3a42afSjmmvat_fn_group_banner ()
15346b3a42afSjmmv{
15356b3a42afSjmmv  at_setup_line="$2"
15366b3a42afSjmmv  test -n "$5" && at_fn_banner $5
15376b3a42afSjmmv  at_desc="$3"
15386b3a42afSjmmv  case $1 in
15396b3a42afSjmmv    [0-9])      at_desc_line="  $1: ";;
15406b3a42afSjmmv    [0-9][0-9]) at_desc_line=" $1: " ;;
15416b3a42afSjmmv    *)          at_desc_line="$1: "  ;;
15426b3a42afSjmmv  esac
15436b3a42afSjmmv  as_fn_append at_desc_line "$3$4"
15446b3a42afSjmmv  $at_quiet $as_echo_n "$at_desc_line"
15456b3a42afSjmmv  echo "#                             -*- compilation -*-" >> "$at_group_log"
15466b3a42afSjmmv}
15476b3a42afSjmmv
15486b3a42afSjmmv# at_fn_group_postprocess
15496b3a42afSjmmv# -----------------------
15506b3a42afSjmmv# Perform cleanup after running a test group.
15516b3a42afSjmmvat_fn_group_postprocess ()
15526b3a42afSjmmv{
15536b3a42afSjmmv  # Be sure to come back to the suite directory, in particular
15546b3a42afSjmmv  # since below we might `rm' the group directory we are in currently.
15556b3a42afSjmmv  cd "$at_suite_dir"
15566b3a42afSjmmv
15576b3a42afSjmmv  if test ! -f "$at_check_line_file"; then
15586b3a42afSjmmv    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
15596b3a42afSjmmv      A failure happened in a test group before any test could be
15606b3a42afSjmmv      run. This means that test suite is improperly designed.  Please
15616b3a42afSjmmv      report this failure to <kyua-discuss@googlegroups.com>.
15626b3a42afSjmmv_ATEOF
15636b3a42afSjmmv    $as_echo "$at_setup_line" >"$at_check_line_file"
15646b3a42afSjmmv    at_status=99
15656b3a42afSjmmv  fi
15666b3a42afSjmmv  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
15676b3a42afSjmmv  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
15686b3a42afSjmmv  case $at_xfail:$at_status in
15696b3a42afSjmmv    yes:0)
15706b3a42afSjmmv	at_msg="UNEXPECTED PASS"
15716b3a42afSjmmv	at_res=xpass
15726b3a42afSjmmv	at_errexit=$at_errexit_p
15736b3a42afSjmmv	at_color=$at_red
15746b3a42afSjmmv	;;
15756b3a42afSjmmv    no:0)
15766b3a42afSjmmv	at_msg="ok"
15776b3a42afSjmmv	at_res=pass
15786b3a42afSjmmv	at_errexit=false
15796b3a42afSjmmv	at_color=$at_grn
15806b3a42afSjmmv	;;
15816b3a42afSjmmv    *:77)
15826b3a42afSjmmv	at_msg='skipped ('`cat "$at_check_line_file"`')'
15836b3a42afSjmmv	at_res=skip
15846b3a42afSjmmv	at_errexit=false
15856b3a42afSjmmv	at_color=$at_blu
15866b3a42afSjmmv	;;
15876b3a42afSjmmv    no:* | *:99)
15886b3a42afSjmmv	at_msg='FAILED ('`cat "$at_check_line_file"`')'
15896b3a42afSjmmv	at_res=fail
15906b3a42afSjmmv	at_errexit=$at_errexit_p
15916b3a42afSjmmv	at_color=$at_red
15926b3a42afSjmmv	;;
15936b3a42afSjmmv    yes:*)
15946b3a42afSjmmv	at_msg='expected failure ('`cat "$at_check_line_file"`')'
15956b3a42afSjmmv	at_res=xfail
15966b3a42afSjmmv	at_errexit=false
15976b3a42afSjmmv	at_color=$at_lgn
15986b3a42afSjmmv	;;
15996b3a42afSjmmv  esac
16006b3a42afSjmmv  echo "$at_res" > "$at_job_dir/$at_res"
16016b3a42afSjmmv  # In parallel mode, output the summary line only afterwards.
16026b3a42afSjmmv  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
16036b3a42afSjmmv    $as_echo "$at_desc_line $at_color$at_msg$at_std"
16046b3a42afSjmmv  else
16056b3a42afSjmmv    # Make sure there is a separator even with long titles.
16066b3a42afSjmmv    $as_echo " $at_color$at_msg$at_std"
16076b3a42afSjmmv  fi
16086b3a42afSjmmv  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
16096b3a42afSjmmv  case $at_status in
16106b3a42afSjmmv    0|77)
16116b3a42afSjmmv      # $at_times_file is only available if the group succeeded.
16126b3a42afSjmmv      # We're not including the group log, so the success message
16136b3a42afSjmmv      # is written in the global log separately.  But we also
16146b3a42afSjmmv      # write to the group log in case they're using -d.
16156b3a42afSjmmv      if test -f "$at_times_file"; then
16166b3a42afSjmmv	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
16176b3a42afSjmmv	rm -f "$at_times_file"
16186b3a42afSjmmv      fi
16196b3a42afSjmmv      $as_echo "$at_log_msg" >> "$at_group_log"
16206b3a42afSjmmv      $as_echo "$at_log_msg" >&5
16216b3a42afSjmmv
16226b3a42afSjmmv      # Cleanup the group directory, unless the user wants the files
16236b3a42afSjmmv      # or the success was unexpected.
16246b3a42afSjmmv      if $at_debug_p || test $at_res = xpass; then
16256b3a42afSjmmv	at_fn_create_debugging_script
16266b3a42afSjmmv	if test $at_res = xpass && $at_errexit; then
16276b3a42afSjmmv	  echo stop > "$at_stop_file"
16286b3a42afSjmmv	fi
16296b3a42afSjmmv      else
16306b3a42afSjmmv	if test -d "$at_group_dir"; then
16316b3a42afSjmmv	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
16326b3a42afSjmmv	  rm -fr "$at_group_dir"
16336b3a42afSjmmv	fi
16346b3a42afSjmmv	rm -f "$at_test_source"
16356b3a42afSjmmv      fi
16366b3a42afSjmmv      ;;
16376b3a42afSjmmv    *)
16386b3a42afSjmmv      # Upon failure, include the log into the testsuite's global
16396b3a42afSjmmv      # log.  The failure message is written in the group log.  It
16406b3a42afSjmmv      # is later included in the global log.
16416b3a42afSjmmv      $as_echo "$at_log_msg" >> "$at_group_log"
16426b3a42afSjmmv
16436b3a42afSjmmv      # Upon failure, keep the group directory for autopsy, and create
16446b3a42afSjmmv      # the debugging script.  With -e, do not start any further tests.
16456b3a42afSjmmv      at_fn_create_debugging_script
16466b3a42afSjmmv      if $at_errexit; then
16476b3a42afSjmmv	echo stop > "$at_stop_file"
16486b3a42afSjmmv      fi
16496b3a42afSjmmv      ;;
16506b3a42afSjmmv  esac
16516b3a42afSjmmv}
16526b3a42afSjmmv
16536b3a42afSjmmv
16546b3a42afSjmmv## ------------ ##
16556b3a42afSjmmv## Driver loop. ##
16566b3a42afSjmmv## ------------ ##
16576b3a42afSjmmv
16586b3a42afSjmmv
16596b3a42afSjmmvif (set -m && set +m && set +b) >/dev/null 2>&1; then
16606b3a42afSjmmv  set +b
16616b3a42afSjmmv  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
16626b3a42afSjmmvelse
16636b3a42afSjmmv  at_job_control_on=: at_job_control_off=: at_job_group=
16646b3a42afSjmmvfi
16656b3a42afSjmmv
16666b3a42afSjmmvfor at_signal in 1 2 15; do
16676b3a42afSjmmv  trap 'set +x; set +e
16686b3a42afSjmmv	$at_job_control_off
16696b3a42afSjmmv	at_signal='"$at_signal"'
16706b3a42afSjmmv	echo stop > "$at_stop_file"
16716b3a42afSjmmv	trap "" $at_signal
16726b3a42afSjmmv	at_pgids=
16736b3a42afSjmmv	for at_pgid in `jobs -p 2>/dev/null`; do
16746b3a42afSjmmv	  at_pgids="$at_pgids $at_job_group$at_pgid"
16756b3a42afSjmmv	done
16766b3a42afSjmmv	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
16776b3a42afSjmmv	wait
16786b3a42afSjmmv	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
16796b3a42afSjmmv	  echo >&2
16806b3a42afSjmmv	fi
16816b3a42afSjmmv	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
16826b3a42afSjmmv	set x $at_signame
16836b3a42afSjmmv	test 1 -gt 2 && at_signame=$at_signal
16846b3a42afSjmmv	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
16856b3a42afSjmmv$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
16866b3a42afSjmmv	as_fn_arith 128 + $at_signal && exit_status=$as_val
16876b3a42afSjmmv	as_fn_exit $exit_status' $at_signal
16886b3a42afSjmmvdone
16896b3a42afSjmmv
16906b3a42afSjmmvrm -f "$at_stop_file"
16916b3a42afSjmmvat_first=:
16926b3a42afSjmmv
16936b3a42afSjmmvif test $at_jobs -ne 1 &&
16946b3a42afSjmmv     rm -f "$at_job_fifo" &&
16956b3a42afSjmmv     test -n "$at_job_group" &&
16966b3a42afSjmmv     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
16976b3a42afSjmmvthen
16986b3a42afSjmmv  # FIFO job dispatcher.
16996b3a42afSjmmv
17006b3a42afSjmmv  trap 'at_pids=
17016b3a42afSjmmv	for at_pid in `jobs -p`; do
17026b3a42afSjmmv	  at_pids="$at_pids $at_job_group$at_pid"
17036b3a42afSjmmv	done
17046b3a42afSjmmv	if test -n "$at_pids"; then
17056b3a42afSjmmv	  at_sig=TSTP
17066b3a42afSjmmv	  test "${TMOUT+set}" = set && at_sig=STOP
17076b3a42afSjmmv	  kill -$at_sig $at_pids 2>/dev/null
17086b3a42afSjmmv	fi
17096b3a42afSjmmv	kill -STOP $$
17106b3a42afSjmmv	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
17116b3a42afSjmmv
17126b3a42afSjmmv  echo
17136b3a42afSjmmv  # Turn jobs into a list of numbers, starting from 1.
17146b3a42afSjmmv  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
17156b3a42afSjmmv
17166b3a42afSjmmv  set X $at_joblist
17176b3a42afSjmmv  shift
17186b3a42afSjmmv  for at_group in $at_groups; do
17196b3a42afSjmmv    $at_job_control_on 2>/dev/null
17206b3a42afSjmmv    (
17216b3a42afSjmmv      # Start one test group.
17226b3a42afSjmmv      $at_job_control_off
17236b3a42afSjmmv      if $at_first; then
17246b3a42afSjmmv	exec 7>"$at_job_fifo"
17256b3a42afSjmmv      else
17266b3a42afSjmmv	exec 6<&-
17276b3a42afSjmmv      fi
17286b3a42afSjmmv      trap 'set +x; set +e
17296b3a42afSjmmv	    trap "" PIPE
17306b3a42afSjmmv	    echo stop > "$at_stop_file"
17316b3a42afSjmmv	    echo >&7
17326b3a42afSjmmv	    as_fn_exit 141' PIPE
17336b3a42afSjmmv      at_fn_group_prepare
17346b3a42afSjmmv      if cd "$at_group_dir" &&
17356b3a42afSjmmv	 at_fn_test $at_group &&
17366b3a42afSjmmv	 . "$at_test_source"
17376b3a42afSjmmv      then :; else
17386b3a42afSjmmv	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
17396b3a42afSjmmv$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
17406b3a42afSjmmv	at_failed=:
17416b3a42afSjmmv      fi
17426b3a42afSjmmv      at_fn_group_postprocess
17436b3a42afSjmmv      echo >&7
17446b3a42afSjmmv    ) &
17456b3a42afSjmmv    $at_job_control_off
17466b3a42afSjmmv    if $at_first; then
17476b3a42afSjmmv      at_first=false
17486b3a42afSjmmv      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
17496b3a42afSjmmv    fi
17506b3a42afSjmmv    shift # Consume one token.
17516b3a42afSjmmv    if test $# -gt 0; then :; else
17526b3a42afSjmmv      read at_token <&6 || break
17536b3a42afSjmmv      set x $*
17546b3a42afSjmmv    fi
17556b3a42afSjmmv    test -f "$at_stop_file" && break
17566b3a42afSjmmv  done
17576b3a42afSjmmv  exec 7>&-
17586b3a42afSjmmv  # Read back the remaining ($at_jobs - 1) tokens.
17596b3a42afSjmmv  set X $at_joblist
17606b3a42afSjmmv  shift
17616b3a42afSjmmv  if test $# -gt 0; then
17626b3a42afSjmmv    shift
17636b3a42afSjmmv    for at_job
17646b3a42afSjmmv    do
17656b3a42afSjmmv      read at_token
17666b3a42afSjmmv    done <&6
17676b3a42afSjmmv  fi
17686b3a42afSjmmv  exec 6<&-
17696b3a42afSjmmv  wait
17706b3a42afSjmmvelse
17716b3a42afSjmmv  # Run serially, avoid forks and other potential surprises.
17726b3a42afSjmmv  for at_group in $at_groups; do
17736b3a42afSjmmv    at_fn_group_prepare
17746b3a42afSjmmv    if cd "$at_group_dir" &&
17756b3a42afSjmmv       at_fn_test $at_group &&
17766b3a42afSjmmv       . "$at_test_source"; then :; else
17776b3a42afSjmmv      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
17786b3a42afSjmmv$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
17796b3a42afSjmmv      at_failed=:
17806b3a42afSjmmv    fi
17816b3a42afSjmmv    at_fn_group_postprocess
17826b3a42afSjmmv    test -f "$at_stop_file" && break
17836b3a42afSjmmv    at_first=false
17846b3a42afSjmmv  done
17856b3a42afSjmmvfi
17866b3a42afSjmmv
17876b3a42afSjmmv# Wrap up the test suite with summary statistics.
17886b3a42afSjmmvcd "$at_helper_dir"
17896b3a42afSjmmv
17906b3a42afSjmmv# Use ?..???? when the list must remain sorted, the faster * otherwise.
17916b3a42afSjmmvat_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
17926b3a42afSjmmvat_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
17936b3a42afSjmmvat_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
17946b3a42afSjmmvat_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
17956b3a42afSjmmv		 echo $f; done | sed '/?/d; s,/xpass,,'`
17966b3a42afSjmmvat_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
17976b3a42afSjmmv		echo $f; done | sed '/?/d; s,/fail,,'`
17986b3a42afSjmmv
17996b3a42afSjmmvset X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
18006b3a42afSjmmvshift; at_group_count=$#
18016b3a42afSjmmvset X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
18026b3a42afSjmmvset X $at_xfail_list; shift; at_xfail_count=$#
18036b3a42afSjmmvset X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
18046b3a42afSjmmvset X $at_skip_list; shift; at_skip_count=$#
18056b3a42afSjmmv
18066b3a42afSjmmvas_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
18076b3a42afSjmmvas_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
18086b3a42afSjmmvas_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
18096b3a42afSjmmv
18106b3a42afSjmmv# Back to the top directory.
18116b3a42afSjmmvcd "$at_dir"
18126b3a42afSjmmvrm -rf "$at_helper_dir"
18136b3a42afSjmmv
18146b3a42afSjmmv# Compute the duration of the suite.
18156b3a42afSjmmvat_stop_date=`date`
18166b3a42afSjmmvat_stop_time=`date +%s 2>/dev/null`
18176b3a42afSjmmv$as_echo "$as_me: ending at: $at_stop_date" >&5
18186b3a42afSjmmvcase $at_start_time,$at_stop_time in
18196b3a42afSjmmv  [0-9]*,[0-9]*)
18206b3a42afSjmmv    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
18216b3a42afSjmmv    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
18226b3a42afSjmmv    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
18236b3a42afSjmmv    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
18246b3a42afSjmmv    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
18256b3a42afSjmmv    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
18266b3a42afSjmmv    $as_echo "$as_me: test suite duration: $at_duration" >&5
18276b3a42afSjmmv    ;;
18286b3a42afSjmmvesac
18296b3a42afSjmmv
18306b3a42afSjmmvecho
18316b3a42afSjmmv$as_echo "## ------------- ##
18326b3a42afSjmmv## Test results. ##
18336b3a42afSjmmv## ------------- ##"
18346b3a42afSjmmvecho
18356b3a42afSjmmv{
18366b3a42afSjmmv  echo
18376b3a42afSjmmv  $as_echo "## ------------- ##
18386b3a42afSjmmv## Test results. ##
18396b3a42afSjmmv## ------------- ##"
18406b3a42afSjmmv  echo
18416b3a42afSjmmv} >&5
18426b3a42afSjmmv
18436b3a42afSjmmvif test $at_run_count = 1; then
18446b3a42afSjmmv  at_result="1 test"
18456b3a42afSjmmv  at_were=was
18466b3a42afSjmmvelse
18476b3a42afSjmmv  at_result="$at_run_count tests"
18486b3a42afSjmmv  at_were=were
18496b3a42afSjmmvfi
18506b3a42afSjmmvif $at_errexit_p && test $at_unexpected_count != 0; then
18516b3a42afSjmmv  if test $at_xpass_count = 1; then
18526b3a42afSjmmv    at_result="$at_result $at_were run, one passed"
18536b3a42afSjmmv  else
18546b3a42afSjmmv    at_result="$at_result $at_were run, one failed"
18556b3a42afSjmmv  fi
18566b3a42afSjmmv  at_result="$at_result unexpectedly and inhibited subsequent tests."
18576b3a42afSjmmv  at_color=$at_red
18586b3a42afSjmmvelse
18596b3a42afSjmmv  # Don't you just love exponential explosion of the number of cases?
18606b3a42afSjmmv  at_color=$at_red
18616b3a42afSjmmv  case $at_xpass_count:$at_fail_count:$at_xfail_count in
18626b3a42afSjmmv    # So far, so good.
18636b3a42afSjmmv    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
18646b3a42afSjmmv    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
18656b3a42afSjmmv
18666b3a42afSjmmv    # Some unexpected failures
18676b3a42afSjmmv    0:*:0) at_result="$at_result $at_were run,
18686b3a42afSjmmv$at_fail_count failed unexpectedly." ;;
18696b3a42afSjmmv
18706b3a42afSjmmv    # Some failures, both expected and unexpected
18716b3a42afSjmmv    0:*:1) at_result="$at_result $at_were run,
18726b3a42afSjmmv$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
18736b3a42afSjmmv    0:*:*) at_result="$at_result $at_were run,
18746b3a42afSjmmv$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
18756b3a42afSjmmv
18766b3a42afSjmmv    # No unexpected failures, but some xpasses
18776b3a42afSjmmv    *:0:*) at_result="$at_result $at_were run,
18786b3a42afSjmmv$at_xpass_count passed unexpectedly." ;;
18796b3a42afSjmmv
18806b3a42afSjmmv    # No expected failures, but failures and xpasses
18816b3a42afSjmmv    *:1:0) at_result="$at_result $at_were run,
18826b3a42afSjmmv$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
18836b3a42afSjmmv    *:*:0) at_result="$at_result $at_were run,
18846b3a42afSjmmv$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
18856b3a42afSjmmv
18866b3a42afSjmmv    # All of them.
18876b3a42afSjmmv    *:*:1) at_result="$at_result $at_were run,
18886b3a42afSjmmv$at_xpass_count passed unexpectedly,
18896b3a42afSjmmv$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
18906b3a42afSjmmv    *:*:*) at_result="$at_result $at_were run,
18916b3a42afSjmmv$at_xpass_count passed unexpectedly,
18926b3a42afSjmmv$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
18936b3a42afSjmmv  esac
18946b3a42afSjmmv
18956b3a42afSjmmv  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
18966b3a42afSjmmv    at_result="All $at_result"
18976b3a42afSjmmv  fi
18986b3a42afSjmmvfi
18996b3a42afSjmmv
19006b3a42afSjmmv# Now put skips in the mix.
19016b3a42afSjmmvcase $at_skip_count in
19026b3a42afSjmmv  0) ;;
19036b3a42afSjmmv  1) at_result="$at_result
19046b3a42afSjmmv1 test was skipped." ;;
19056b3a42afSjmmv  *) at_result="$at_result
19066b3a42afSjmmv$at_skip_count tests were skipped." ;;
19076b3a42afSjmmvesac
19086b3a42afSjmmv
19096b3a42afSjmmvif test $at_unexpected_count = 0; then
19106b3a42afSjmmv  echo "$at_color$at_result$at_std"
19116b3a42afSjmmv  echo "$at_result" >&5
19126b3a42afSjmmvelse
19136b3a42afSjmmv  echo "${at_color}ERROR: $at_result$at_std" >&2
19146b3a42afSjmmv  echo "ERROR: $at_result" >&5
19156b3a42afSjmmv  {
19166b3a42afSjmmv    echo
19176b3a42afSjmmv    $as_echo "## ------------------------ ##
19186b3a42afSjmmv## Summary of the failures. ##
19196b3a42afSjmmv## ------------------------ ##"
19206b3a42afSjmmv
19216b3a42afSjmmv    # Summary of failed and skipped tests.
19226b3a42afSjmmv    if test $at_fail_count != 0; then
19236b3a42afSjmmv      echo "Failed tests:"
19246b3a42afSjmmv      $SHELL "$at_myself" $at_fail_list --list
19256b3a42afSjmmv      echo
19266b3a42afSjmmv    fi
19276b3a42afSjmmv    if test $at_skip_count != 0; then
19286b3a42afSjmmv      echo "Skipped tests:"
19296b3a42afSjmmv      $SHELL "$at_myself" $at_skip_list --list
19306b3a42afSjmmv      echo
19316b3a42afSjmmv    fi
19326b3a42afSjmmv    if test $at_xpass_count != 0; then
19336b3a42afSjmmv      echo "Unexpected passes:"
19346b3a42afSjmmv      $SHELL "$at_myself" $at_xpass_list --list
19356b3a42afSjmmv      echo
19366b3a42afSjmmv    fi
19376b3a42afSjmmv    if test $at_fail_count != 0; then
19386b3a42afSjmmv      $as_echo "## ---------------------- ##
19396b3a42afSjmmv## Detailed failed tests. ##
19406b3a42afSjmmv## ---------------------- ##"
19416b3a42afSjmmv      echo
19426b3a42afSjmmv      for at_group in $at_fail_list
19436b3a42afSjmmv      do
19446b3a42afSjmmv	at_group_normalized=$at_group
19456b3a42afSjmmv
19466b3a42afSjmmv  eval 'while :; do
19476b3a42afSjmmv    case $at_group_normalized in #(
19486b3a42afSjmmv    '"$at_format"'*) break;;
19496b3a42afSjmmv    esac
19506b3a42afSjmmv    at_group_normalized=0$at_group_normalized
19516b3a42afSjmmv  done'
19526b3a42afSjmmv
19536b3a42afSjmmv	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
19546b3a42afSjmmv	echo
19556b3a42afSjmmv      done
19566b3a42afSjmmv      echo
19576b3a42afSjmmv    fi
19586b3a42afSjmmv    if test -n "$at_top_srcdir"; then
19596b3a42afSjmmv      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
19606b3a42afSjmmv## ${at_top_build_prefix}config.log ##
19616b3a42afSjmmv_ASBOX
19626b3a42afSjmmv      sed 's/^/| /' ${at_top_build_prefix}config.log
19636b3a42afSjmmv      echo
19646b3a42afSjmmv    fi
19656b3a42afSjmmv  } >&5
19666b3a42afSjmmv
19676b3a42afSjmmv  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
19686b3a42afSjmmv## $as_me.log was created. ##
19696b3a42afSjmmv_ASBOX
19706b3a42afSjmmv
19716b3a42afSjmmv  echo
19726b3a42afSjmmv  if $at_debug_p; then
19736b3a42afSjmmv    at_msg='per-test log files'
19746b3a42afSjmmv  else
19756b3a42afSjmmv    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
19766b3a42afSjmmv  fi
19776b3a42afSjmmv  $as_echo "Please send $at_msg and all information you think might help:
19786b3a42afSjmmv
19796b3a42afSjmmv   To: <kyua-discuss@googlegroups.com>
1980*f39f9c9bSjmmv   Subject: [Kyua - Command line interface 0.7] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
19816b3a42afSjmmv
19826b3a42afSjmmvYou may investigate any problem if you feel able to do so, in which
19836b3a42afSjmmvcase the test suite provides a good starting point.  Its output may
19846b3a42afSjmmvbe found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
19856b3a42afSjmmv"
19866b3a42afSjmmv  exit 1
19876b3a42afSjmmvfi
19886b3a42afSjmmv
19896b3a42afSjmmvexit 0
19906b3a42afSjmmv
19916b3a42afSjmmv## ------------- ##
19926b3a42afSjmmv## Actual tests. ##
19936b3a42afSjmmv## ------------- ##
19946b3a42afSjmmv#AT_START_1
19956b3a42afSjmmvat_fn_group_banner 1 'testsuite.at:70' \
19966b3a42afSjmmv  "test program crashes in test list" "              "
19976b3a42afSjmmvat_xfail=no
19986b3a42afSjmmv(
19996b3a42afSjmmv  $as_echo "1. $at_setup_line: testing $at_desc ..."
20006b3a42afSjmmv  $at_traceon
20016b3a42afSjmmv
20026b3a42afSjmmv
20036b3a42afSjmmv
20046b3a42afSjmmv
20056b3a42afSjmmv    cat >Kyuafile <<'_ATEOF'
20066b3a42afSjmmv
20076b3a42afSjmmvsyntax(2)
20086b3a42afSjmmvtest_suite("bootstrap")
20096b3a42afSjmmvatf_test_program{name="plain_helpers"}
20106b3a42afSjmmv_ATEOF
20116b3a42afSjmmv
20126b3a42afSjmmv    ln -s $({
20136b3a42afSjmmv    old=$(pwd)
20146b3a42afSjmmv    cd "${at_suite_dir}"
20156b3a42afSjmmv    # We need to locate a build product, not a source file, because the
20166b3a42afSjmmv    # test suite may be run outside of the source tree (think distcheck).
20176b3a42afSjmmv    while test $(pwd) != '/' -a ! -e engine/test_case_test; do
20186b3a42afSjmmv        cd ..
20196b3a42afSjmmv    done
20206b3a42afSjmmv    topdir=$(pwd)
20216b3a42afSjmmv    cd ${old}
20226b3a42afSjmmv    echo ${topdir}
20236b3a42afSjmmv})/bootstrap/plain_helpers plain_helpers
20246b3a42afSjmmv
20256b3a42afSjmmv{ set +x
20266b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:74: HOME=\$(pwd) HELPER=\"abort_test_cases_list\" kyua --config=none test --store=bootstrap.db"
20276b3a42afSjmmvat_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:74"
20286b3a42afSjmmv( $at_check_trace; HOME=$(pwd) HELPER="abort_test_cases_list" kyua --config=none test --store=bootstrap.db
20296b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20306b3a42afSjmmvat_status=$? at_failed=false
20316b3a42afSjmmv$at_check_filter
20326b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
20336b3a42afSjmmvecho stdout:; tee stdout <"$at_stdout"
20346b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:74"
20356b3a42afSjmmv$at_failed && at_fn_log_failure
20366b3a42afSjmmv$at_traceon; }
20376b3a42afSjmmv
20386b3a42afSjmmvre='plain_helpers:__test_cases_list__.*broken.*Test program list did not return success'
20396b3a42afSjmmv{ set +x
20406b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:76: grep \"\${re}\" stdout"
20416b3a42afSjmmvat_fn_check_prepare_notrace 'a ${...} parameter expansion' "testsuite.at:76"
20426b3a42afSjmmv( $at_check_trace; grep "${re}" stdout
20436b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20446b3a42afSjmmvat_status=$? at_failed=false
20456b3a42afSjmmv$at_check_filter
20466b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
20476b3a42afSjmmvecho stdout:; cat "$at_stdout"
20486b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:76"
20496b3a42afSjmmv$at_failed && at_fn_log_failure
20506b3a42afSjmmv$at_traceon; }
20516b3a42afSjmmv
20526b3a42afSjmmv
20536b3a42afSjmmv  set +x
20546b3a42afSjmmv  $at_times_p && times >"$at_times_file"
20556b3a42afSjmmv) 5>&1 2>&1 7>&- | eval $at_tee_pipe
20566b3a42afSjmmvread at_status <"$at_status_file"
20576b3a42afSjmmv#AT_STOP_1
20586b3a42afSjmmv#AT_START_2
20596b3a42afSjmmvat_fn_group_banner 2 'testsuite.at:81' \
20606b3a42afSjmmv  "test program prints an empty test list" "         "
20616b3a42afSjmmvat_xfail=no
20626b3a42afSjmmv(
20636b3a42afSjmmv  $as_echo "2. $at_setup_line: testing $at_desc ..."
20646b3a42afSjmmv  $at_traceon
20656b3a42afSjmmv
20666b3a42afSjmmv
20676b3a42afSjmmv
20686b3a42afSjmmv
20696b3a42afSjmmv    cat >Kyuafile <<'_ATEOF'
20706b3a42afSjmmv
20716b3a42afSjmmvsyntax(2)
20726b3a42afSjmmvtest_suite("bootstrap")
20736b3a42afSjmmvatf_test_program{name="plain_helpers"}
20746b3a42afSjmmv_ATEOF
20756b3a42afSjmmv
20766b3a42afSjmmv    ln -s $({
20776b3a42afSjmmv    old=$(pwd)
20786b3a42afSjmmv    cd "${at_suite_dir}"
20796b3a42afSjmmv    # We need to locate a build product, not a source file, because the
20806b3a42afSjmmv    # test suite may be run outside of the source tree (think distcheck).
20816b3a42afSjmmv    while test $(pwd) != '/' -a ! -e engine/test_case_test; do
20826b3a42afSjmmv        cd ..
20836b3a42afSjmmv    done
20846b3a42afSjmmv    topdir=$(pwd)
20856b3a42afSjmmv    cd ${old}
20866b3a42afSjmmv    echo ${topdir}
20876b3a42afSjmmv})/bootstrap/plain_helpers plain_helpers
20886b3a42afSjmmv
20896b3a42afSjmmv{ set +x
20906b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:85: HOME=\$(pwd) HELPER=\"empty_test_cases_list\" kyua --config=none test --store=bootstrap.db"
20916b3a42afSjmmvat_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:85"
20926b3a42afSjmmv( $at_check_trace; HOME=$(pwd) HELPER="empty_test_cases_list" kyua --config=none test --store=bootstrap.db
20936b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
20946b3a42afSjmmvat_status=$? at_failed=false
20956b3a42afSjmmv$at_check_filter
20966b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
20976b3a42afSjmmvecho stdout:; tee stdout <"$at_stdout"
20986b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:85"
20996b3a42afSjmmv$at_failed && at_fn_log_failure
21006b3a42afSjmmv$at_traceon; }
21016b3a42afSjmmv
21026b3a42afSjmmvre='plain_helpers:__test_cases_list__.*broken.*failed to read.*unexpected EOF'
21036b3a42afSjmmv{ set +x
21046b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:87: grep \"\${re}\" stdout"
21056b3a42afSjmmvat_fn_check_prepare_notrace 'a ${...} parameter expansion' "testsuite.at:87"
21066b3a42afSjmmv( $at_check_trace; grep "${re}" stdout
21076b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21086b3a42afSjmmvat_status=$? at_failed=false
21096b3a42afSjmmv$at_check_filter
21106b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
21116b3a42afSjmmvecho stdout:; cat "$at_stdout"
21126b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:87"
21136b3a42afSjmmv$at_failed && at_fn_log_failure
21146b3a42afSjmmv$at_traceon; }
21156b3a42afSjmmv
21166b3a42afSjmmv
21176b3a42afSjmmv  set +x
21186b3a42afSjmmv  $at_times_p && times >"$at_times_file"
21196b3a42afSjmmv) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21206b3a42afSjmmvread at_status <"$at_status_file"
21216b3a42afSjmmv#AT_STOP_2
21226b3a42afSjmmv#AT_START_3
21236b3a42afSjmmvat_fn_group_banner 3 'testsuite.at:92' \
21246b3a42afSjmmv  "test program with zero test cases" "              "
21256b3a42afSjmmvat_xfail=no
21266b3a42afSjmmv(
21276b3a42afSjmmv  $as_echo "3. $at_setup_line: testing $at_desc ..."
21286b3a42afSjmmv  $at_traceon
21296b3a42afSjmmv
21306b3a42afSjmmv
21316b3a42afSjmmv
21326b3a42afSjmmv
21336b3a42afSjmmv    cat >Kyuafile <<'_ATEOF'
21346b3a42afSjmmv
21356b3a42afSjmmvsyntax(2)
21366b3a42afSjmmvtest_suite("bootstrap")
21376b3a42afSjmmvatf_test_program{name="plain_helpers"}
21386b3a42afSjmmv_ATEOF
21396b3a42afSjmmv
21406b3a42afSjmmv    ln -s $({
21416b3a42afSjmmv    old=$(pwd)
21426b3a42afSjmmv    cd "${at_suite_dir}"
21436b3a42afSjmmv    # We need to locate a build product, not a source file, because the
21446b3a42afSjmmv    # test suite may be run outside of the source tree (think distcheck).
21456b3a42afSjmmv    while test $(pwd) != '/' -a ! -e engine/test_case_test; do
21466b3a42afSjmmv        cd ..
21476b3a42afSjmmv    done
21486b3a42afSjmmv    topdir=$(pwd)
21496b3a42afSjmmv    cd ${old}
21506b3a42afSjmmv    echo ${topdir}
21516b3a42afSjmmv})/bootstrap/plain_helpers plain_helpers
21526b3a42afSjmmv
21536b3a42afSjmmv{ set +x
21546b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:96: HOME=\$(pwd) HELPER=\"zero_test_cases\" kyua --config=none test --store=bootstrap.db"
21556b3a42afSjmmvat_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:96"
21566b3a42afSjmmv( $at_check_trace; HOME=$(pwd) HELPER="zero_test_cases" kyua --config=none test --store=bootstrap.db
21576b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21586b3a42afSjmmvat_status=$? at_failed=false
21596b3a42afSjmmv$at_check_filter
21606b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
21616b3a42afSjmmvecho stdout:; tee stdout <"$at_stdout"
21626b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:96"
21636b3a42afSjmmv$at_failed && at_fn_log_failure
21646b3a42afSjmmv$at_traceon; }
21656b3a42afSjmmv
21666b3a42afSjmmvre='plain_helpers:__test_cases_list__.*broken.*Empty test cases list'
21676b3a42afSjmmv{ set +x
21686b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:98: grep \"\${re}\" stdout"
21696b3a42afSjmmvat_fn_check_prepare_notrace 'a ${...} parameter expansion' "testsuite.at:98"
21706b3a42afSjmmv( $at_check_trace; grep "${re}" stdout
21716b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
21726b3a42afSjmmvat_status=$? at_failed=false
21736b3a42afSjmmv$at_check_filter
21746b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
21756b3a42afSjmmvecho stdout:; cat "$at_stdout"
21766b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:98"
21776b3a42afSjmmv$at_failed && at_fn_log_failure
21786b3a42afSjmmv$at_traceon; }
21796b3a42afSjmmv
21806b3a42afSjmmv
21816b3a42afSjmmv  set +x
21826b3a42afSjmmv  $at_times_p && times >"$at_times_file"
21836b3a42afSjmmv) 5>&1 2>&1 7>&- | eval $at_tee_pipe
21846b3a42afSjmmvread at_status <"$at_status_file"
21856b3a42afSjmmv#AT_STOP_3
21866b3a42afSjmmv#AT_START_4
21876b3a42afSjmmvat_fn_group_banner 4 'testsuite.at:103' \
21886b3a42afSjmmv  "run test case that passes" "                      "
21896b3a42afSjmmvat_xfail=no
21906b3a42afSjmmv(
21916b3a42afSjmmv  $as_echo "4. $at_setup_line: testing $at_desc ..."
21926b3a42afSjmmv  $at_traceon
21936b3a42afSjmmv
21946b3a42afSjmmv
21956b3a42afSjmmv
21966b3a42afSjmmv
21976b3a42afSjmmv    cat >Kyuafile <<'_ATEOF'
21986b3a42afSjmmv
21996b3a42afSjmmvsyntax(2)
22006b3a42afSjmmvtest_suite("bootstrap")
22016b3a42afSjmmvatf_test_program{name="atf_helpers"}
22026b3a42afSjmmv_ATEOF
22036b3a42afSjmmv
22046b3a42afSjmmv    ln -s $({
22056b3a42afSjmmv    old=$(pwd)
22066b3a42afSjmmv    cd "${at_suite_dir}"
22076b3a42afSjmmv    # We need to locate a build product, not a source file, because the
22086b3a42afSjmmv    # test suite may be run outside of the source tree (think distcheck).
22096b3a42afSjmmv    while test $(pwd) != '/' -a ! -e engine/test_case_test; do
22106b3a42afSjmmv        cd ..
22116b3a42afSjmmv    done
22126b3a42afSjmmv    topdir=$(pwd)
22136b3a42afSjmmv    cd ${old}
22146b3a42afSjmmv    echo ${topdir}
22156b3a42afSjmmv})/bootstrap/atf_helpers atf_helpers
22166b3a42afSjmmv
22176b3a42afSjmmv{ set +x
22186b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:107: HOME=\$(pwd) TESTS=\"passes\" kyua --config=none test --store=bootstrap.db "
22196b3a42afSjmmvat_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:107"
22206b3a42afSjmmv( $at_check_trace; HOME=$(pwd) TESTS="passes" kyua --config=none test --store=bootstrap.db
22216b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22226b3a42afSjmmvat_status=$? at_failed=false
22236b3a42afSjmmv$at_check_filter
22246b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
22256b3a42afSjmmvecho stdout:; tee stdout <"$at_stdout"
22266b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:107"
22276b3a42afSjmmv$at_failed && at_fn_log_failure
22286b3a42afSjmmv$at_traceon; }
22296b3a42afSjmmv
22306b3a42afSjmmv{ set +x
22316b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:108: grep \"atf_helpers:fails\" stdout"
22326b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:108"
22336b3a42afSjmmv( $at_check_trace; grep "atf_helpers:fails" stdout
22346b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22356b3a42afSjmmvat_status=$? at_failed=false
22366b3a42afSjmmv$at_check_filter
22376b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
22386b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
22396b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:108"
22406b3a42afSjmmv$at_failed && at_fn_log_failure
22416b3a42afSjmmv$at_traceon; }
22426b3a42afSjmmv
22436b3a42afSjmmv{ set +x
22446b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:109: grep \"atf_helpers:passes.*passed\" stdout"
22456b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:109"
22466b3a42afSjmmv( $at_check_trace; grep "atf_helpers:passes.*passed" stdout
22476b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22486b3a42afSjmmvat_status=$? at_failed=false
22496b3a42afSjmmv$at_check_filter
22506b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
22516b3a42afSjmmvecho stdout:; cat "$at_stdout"
22526b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:109"
22536b3a42afSjmmv$at_failed && at_fn_log_failure
22546b3a42afSjmmv$at_traceon; }
22556b3a42afSjmmv
22566b3a42afSjmmv{ set +x
22576b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:110: grep \"atf_helpers:skips\" stdout"
22586b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:110"
22596b3a42afSjmmv( $at_check_trace; grep "atf_helpers:skips" stdout
22606b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
22616b3a42afSjmmvat_status=$? at_failed=false
22626b3a42afSjmmv$at_check_filter
22636b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
22646b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
22656b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:110"
22666b3a42afSjmmv$at_failed && at_fn_log_failure
22676b3a42afSjmmv$at_traceon; }
22686b3a42afSjmmv
22696b3a42afSjmmv
22706b3a42afSjmmv  set +x
22716b3a42afSjmmv  $at_times_p && times >"$at_times_file"
22726b3a42afSjmmv) 5>&1 2>&1 7>&- | eval $at_tee_pipe
22736b3a42afSjmmvread at_status <"$at_status_file"
22746b3a42afSjmmv#AT_STOP_4
22756b3a42afSjmmv#AT_START_5
22766b3a42afSjmmvat_fn_group_banner 5 'testsuite.at:115' \
22776b3a42afSjmmv  "run test case that fails" "                       "
22786b3a42afSjmmvat_xfail=no
22796b3a42afSjmmv(
22806b3a42afSjmmv  $as_echo "5. $at_setup_line: testing $at_desc ..."
22816b3a42afSjmmv  $at_traceon
22826b3a42afSjmmv
22836b3a42afSjmmv
22846b3a42afSjmmv
22856b3a42afSjmmv
22866b3a42afSjmmv    cat >Kyuafile <<'_ATEOF'
22876b3a42afSjmmv
22886b3a42afSjmmvsyntax(2)
22896b3a42afSjmmvtest_suite("bootstrap")
22906b3a42afSjmmvatf_test_program{name="atf_helpers"}
22916b3a42afSjmmv_ATEOF
22926b3a42afSjmmv
22936b3a42afSjmmv    ln -s $({
22946b3a42afSjmmv    old=$(pwd)
22956b3a42afSjmmv    cd "${at_suite_dir}"
22966b3a42afSjmmv    # We need to locate a build product, not a source file, because the
22976b3a42afSjmmv    # test suite may be run outside of the source tree (think distcheck).
22986b3a42afSjmmv    while test $(pwd) != '/' -a ! -e engine/test_case_test; do
22996b3a42afSjmmv        cd ..
23006b3a42afSjmmv    done
23016b3a42afSjmmv    topdir=$(pwd)
23026b3a42afSjmmv    cd ${old}
23036b3a42afSjmmv    echo ${topdir}
23046b3a42afSjmmv})/bootstrap/atf_helpers atf_helpers
23056b3a42afSjmmv
23066b3a42afSjmmv{ set +x
23076b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:119: HOME=\$(pwd) TESTS=\"fails\" kyua --config=none test --store=bootstrap.db "
23086b3a42afSjmmvat_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:119"
23096b3a42afSjmmv( $at_check_trace; HOME=$(pwd) TESTS="fails" kyua --config=none test --store=bootstrap.db
23106b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23116b3a42afSjmmvat_status=$? at_failed=false
23126b3a42afSjmmv$at_check_filter
23136b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
23146b3a42afSjmmvecho stdout:; tee stdout <"$at_stdout"
23156b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:119"
23166b3a42afSjmmv$at_failed && at_fn_log_failure
23176b3a42afSjmmv$at_traceon; }
23186b3a42afSjmmv
23196b3a42afSjmmv{ set +x
23206b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:120: grep \"atf_helpers:fails.*failed.*Failed on purpose\" stdout"
23216b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:120"
23226b3a42afSjmmv( $at_check_trace; grep "atf_helpers:fails.*failed.*Failed on purpose" stdout
23236b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23246b3a42afSjmmvat_status=$? at_failed=false
23256b3a42afSjmmv$at_check_filter
23266b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
23276b3a42afSjmmvecho stdout:; cat "$at_stdout"
23286b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:120"
23296b3a42afSjmmv$at_failed && at_fn_log_failure
23306b3a42afSjmmv$at_traceon; }
23316b3a42afSjmmv
23326b3a42afSjmmv{ set +x
23336b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:122: grep \"atf_helpers:passes\" stdout"
23346b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:122"
23356b3a42afSjmmv( $at_check_trace; grep "atf_helpers:passes" stdout
23366b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23376b3a42afSjmmvat_status=$? at_failed=false
23386b3a42afSjmmv$at_check_filter
23396b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
23406b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
23416b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:122"
23426b3a42afSjmmv$at_failed && at_fn_log_failure
23436b3a42afSjmmv$at_traceon; }
23446b3a42afSjmmv
23456b3a42afSjmmv{ set +x
23466b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:123: grep \"atf_helpers:skips\" stdout"
23476b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:123"
23486b3a42afSjmmv( $at_check_trace; grep "atf_helpers:skips" stdout
23496b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
23506b3a42afSjmmvat_status=$? at_failed=false
23516b3a42afSjmmv$at_check_filter
23526b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
23536b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
23546b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:123"
23556b3a42afSjmmv$at_failed && at_fn_log_failure
23566b3a42afSjmmv$at_traceon; }
23576b3a42afSjmmv
23586b3a42afSjmmv
23596b3a42afSjmmv  set +x
23606b3a42afSjmmv  $at_times_p && times >"$at_times_file"
23616b3a42afSjmmv) 5>&1 2>&1 7>&- | eval $at_tee_pipe
23626b3a42afSjmmvread at_status <"$at_status_file"
23636b3a42afSjmmv#AT_STOP_5
23646b3a42afSjmmv#AT_START_6
23656b3a42afSjmmvat_fn_group_banner 6 'testsuite.at:128' \
23666b3a42afSjmmv  "run test case that skips" "                       "
23676b3a42afSjmmvat_xfail=no
23686b3a42afSjmmv(
23696b3a42afSjmmv  $as_echo "6. $at_setup_line: testing $at_desc ..."
23706b3a42afSjmmv  $at_traceon
23716b3a42afSjmmv
23726b3a42afSjmmv
23736b3a42afSjmmv
23746b3a42afSjmmv
23756b3a42afSjmmv    cat >Kyuafile <<'_ATEOF'
23766b3a42afSjmmv
23776b3a42afSjmmvsyntax(2)
23786b3a42afSjmmvtest_suite("bootstrap")
23796b3a42afSjmmvatf_test_program{name="atf_helpers"}
23806b3a42afSjmmv_ATEOF
23816b3a42afSjmmv
23826b3a42afSjmmv    ln -s $({
23836b3a42afSjmmv    old=$(pwd)
23846b3a42afSjmmv    cd "${at_suite_dir}"
23856b3a42afSjmmv    # We need to locate a build product, not a source file, because the
23866b3a42afSjmmv    # test suite may be run outside of the source tree (think distcheck).
23876b3a42afSjmmv    while test $(pwd) != '/' -a ! -e engine/test_case_test; do
23886b3a42afSjmmv        cd ..
23896b3a42afSjmmv    done
23906b3a42afSjmmv    topdir=$(pwd)
23916b3a42afSjmmv    cd ${old}
23926b3a42afSjmmv    echo ${topdir}
23936b3a42afSjmmv})/bootstrap/atf_helpers atf_helpers
23946b3a42afSjmmv
23956b3a42afSjmmv{ set +x
23966b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:132: HOME=\$(pwd) TESTS=\"skips\" kyua --config=none test --store=bootstrap.db "
23976b3a42afSjmmvat_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:132"
23986b3a42afSjmmv( $at_check_trace; HOME=$(pwd) TESTS="skips" kyua --config=none test --store=bootstrap.db
23996b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24006b3a42afSjmmvat_status=$? at_failed=false
24016b3a42afSjmmv$at_check_filter
24026b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
24036b3a42afSjmmvecho stdout:; tee stdout <"$at_stdout"
24046b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:132"
24056b3a42afSjmmv$at_failed && at_fn_log_failure
24066b3a42afSjmmv$at_traceon; }
24076b3a42afSjmmv
24086b3a42afSjmmv{ set +x
24096b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:133: grep \"atf_helpers:fails\" stdout"
24106b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:133"
24116b3a42afSjmmv( $at_check_trace; grep "atf_helpers:fails" stdout
24126b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24136b3a42afSjmmvat_status=$? at_failed=false
24146b3a42afSjmmv$at_check_filter
24156b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
24166b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
24176b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:133"
24186b3a42afSjmmv$at_failed && at_fn_log_failure
24196b3a42afSjmmv$at_traceon; }
24206b3a42afSjmmv
24216b3a42afSjmmv{ set +x
24226b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:134: grep \"atf_helpers:passes\" stdout"
24236b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:134"
24246b3a42afSjmmv( $at_check_trace; grep "atf_helpers:passes" stdout
24256b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24266b3a42afSjmmvat_status=$? at_failed=false
24276b3a42afSjmmv$at_check_filter
24286b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
24296b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
24306b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:134"
24316b3a42afSjmmv$at_failed && at_fn_log_failure
24326b3a42afSjmmv$at_traceon; }
24336b3a42afSjmmv
24346b3a42afSjmmv{ set +x
24356b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:135: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout"
24366b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:135"
24376b3a42afSjmmv( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout
24386b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24396b3a42afSjmmvat_status=$? at_failed=false
24406b3a42afSjmmv$at_check_filter
24416b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
24426b3a42afSjmmvecho stdout:; cat "$at_stdout"
24436b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:135"
24446b3a42afSjmmv$at_failed && at_fn_log_failure
24456b3a42afSjmmv$at_traceon; }
24466b3a42afSjmmv
24476b3a42afSjmmv
24486b3a42afSjmmv  set +x
24496b3a42afSjmmv  $at_times_p && times >"$at_times_file"
24506b3a42afSjmmv) 5>&1 2>&1 7>&- | eval $at_tee_pipe
24516b3a42afSjmmvread at_status <"$at_status_file"
24526b3a42afSjmmv#AT_STOP_6
24536b3a42afSjmmv#AT_START_7
24546b3a42afSjmmvat_fn_group_banner 7 'testsuite.at:141' \
24556b3a42afSjmmv  "run two test cases, success" "                    "
24566b3a42afSjmmvat_xfail=no
24576b3a42afSjmmv(
24586b3a42afSjmmv  $as_echo "7. $at_setup_line: testing $at_desc ..."
24596b3a42afSjmmv  $at_traceon
24606b3a42afSjmmv
24616b3a42afSjmmv
24626b3a42afSjmmv
24636b3a42afSjmmv
24646b3a42afSjmmv    cat >Kyuafile <<'_ATEOF'
24656b3a42afSjmmv
24666b3a42afSjmmvsyntax(2)
24676b3a42afSjmmvtest_suite("bootstrap")
24686b3a42afSjmmvatf_test_program{name="atf_helpers"}
24696b3a42afSjmmv_ATEOF
24706b3a42afSjmmv
24716b3a42afSjmmv    ln -s $({
24726b3a42afSjmmv    old=$(pwd)
24736b3a42afSjmmv    cd "${at_suite_dir}"
24746b3a42afSjmmv    # We need to locate a build product, not a source file, because the
24756b3a42afSjmmv    # test suite may be run outside of the source tree (think distcheck).
24766b3a42afSjmmv    while test $(pwd) != '/' -a ! -e engine/test_case_test; do
24776b3a42afSjmmv        cd ..
24786b3a42afSjmmv    done
24796b3a42afSjmmv    topdir=$(pwd)
24806b3a42afSjmmv    cd ${old}
24816b3a42afSjmmv    echo ${topdir}
24826b3a42afSjmmv})/bootstrap/atf_helpers atf_helpers
24836b3a42afSjmmv
24846b3a42afSjmmv{ set +x
24856b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:145: HOME=\$(pwd) TESTS=\"passes skips\" kyua --config=none test --store=bootstrap.db "
24866b3a42afSjmmvat_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:145"
24876b3a42afSjmmv( $at_check_trace; HOME=$(pwd) TESTS="passes skips" kyua --config=none test --store=bootstrap.db
24886b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
24896b3a42afSjmmvat_status=$? at_failed=false
24906b3a42afSjmmv$at_check_filter
24916b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
24926b3a42afSjmmvecho stdout:; tee stdout <"$at_stdout"
24936b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:145"
24946b3a42afSjmmv$at_failed && at_fn_log_failure
24956b3a42afSjmmv$at_traceon; }
24966b3a42afSjmmv
24976b3a42afSjmmv{ set +x
24986b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:146: grep \"atf_helpers:fails\" stdout"
24996b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:146"
25006b3a42afSjmmv( $at_check_trace; grep "atf_helpers:fails" stdout
25016b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25026b3a42afSjmmvat_status=$? at_failed=false
25036b3a42afSjmmv$at_check_filter
25046b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
25056b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
25066b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:146"
25076b3a42afSjmmv$at_failed && at_fn_log_failure
25086b3a42afSjmmv$at_traceon; }
25096b3a42afSjmmv
25106b3a42afSjmmv{ set +x
25116b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:147: grep \"atf_helpers:passes.*passed\" stdout"
25126b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:147"
25136b3a42afSjmmv( $at_check_trace; grep "atf_helpers:passes.*passed" stdout
25146b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25156b3a42afSjmmvat_status=$? at_failed=false
25166b3a42afSjmmv$at_check_filter
25176b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
25186b3a42afSjmmvecho stdout:; cat "$at_stdout"
25196b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:147"
25206b3a42afSjmmv$at_failed && at_fn_log_failure
25216b3a42afSjmmv$at_traceon; }
25226b3a42afSjmmv
25236b3a42afSjmmv{ set +x
25246b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:148: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout"
25256b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:148"
25266b3a42afSjmmv( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout
25276b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25286b3a42afSjmmvat_status=$? at_failed=false
25296b3a42afSjmmv$at_check_filter
25306b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
25316b3a42afSjmmvecho stdout:; cat "$at_stdout"
25326b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:148"
25336b3a42afSjmmv$at_failed && at_fn_log_failure
25346b3a42afSjmmv$at_traceon; }
25356b3a42afSjmmv
25366b3a42afSjmmv
25376b3a42afSjmmv  set +x
25386b3a42afSjmmv  $at_times_p && times >"$at_times_file"
25396b3a42afSjmmv) 5>&1 2>&1 7>&- | eval $at_tee_pipe
25406b3a42afSjmmvread at_status <"$at_status_file"
25416b3a42afSjmmv#AT_STOP_7
25426b3a42afSjmmv#AT_START_8
25436b3a42afSjmmvat_fn_group_banner 8 'testsuite.at:154' \
25446b3a42afSjmmv  "run two test cases, failure" "                    "
25456b3a42afSjmmvat_xfail=no
25466b3a42afSjmmv(
25476b3a42afSjmmv  $as_echo "8. $at_setup_line: testing $at_desc ..."
25486b3a42afSjmmv  $at_traceon
25496b3a42afSjmmv
25506b3a42afSjmmv
25516b3a42afSjmmv
25526b3a42afSjmmv
25536b3a42afSjmmv    cat >Kyuafile <<'_ATEOF'
25546b3a42afSjmmv
25556b3a42afSjmmvsyntax(2)
25566b3a42afSjmmvtest_suite("bootstrap")
25576b3a42afSjmmvatf_test_program{name="atf_helpers"}
25586b3a42afSjmmv_ATEOF
25596b3a42afSjmmv
25606b3a42afSjmmv    ln -s $({
25616b3a42afSjmmv    old=$(pwd)
25626b3a42afSjmmv    cd "${at_suite_dir}"
25636b3a42afSjmmv    # We need to locate a build product, not a source file, because the
25646b3a42afSjmmv    # test suite may be run outside of the source tree (think distcheck).
25656b3a42afSjmmv    while test $(pwd) != '/' -a ! -e engine/test_case_test; do
25666b3a42afSjmmv        cd ..
25676b3a42afSjmmv    done
25686b3a42afSjmmv    topdir=$(pwd)
25696b3a42afSjmmv    cd ${old}
25706b3a42afSjmmv    echo ${topdir}
25716b3a42afSjmmv})/bootstrap/atf_helpers atf_helpers
25726b3a42afSjmmv
25736b3a42afSjmmv{ set +x
25746b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:158: HOME=\$(pwd) TESTS=\"fails passes\" kyua --config=none test --store=bootstrap.db "
25756b3a42afSjmmvat_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:158"
25766b3a42afSjmmv( $at_check_trace; HOME=$(pwd) TESTS="fails passes" kyua --config=none test --store=bootstrap.db
25776b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25786b3a42afSjmmvat_status=$? at_failed=false
25796b3a42afSjmmv$at_check_filter
25806b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
25816b3a42afSjmmvecho stdout:; tee stdout <"$at_stdout"
25826b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:158"
25836b3a42afSjmmv$at_failed && at_fn_log_failure
25846b3a42afSjmmv$at_traceon; }
25856b3a42afSjmmv
25866b3a42afSjmmv{ set +x
25876b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:159: grep \"atf_helpers:fails.*failure.*Failed on purpose\" stdout"
25886b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:159"
25896b3a42afSjmmv( $at_check_trace; grep "atf_helpers:fails.*failure.*Failed on purpose" stdout
25906b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
25916b3a42afSjmmvat_status=$? at_failed=false
25926b3a42afSjmmv$at_check_filter
25936b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
25946b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
25956b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:159"
25966b3a42afSjmmv$at_failed && at_fn_log_failure
25976b3a42afSjmmv$at_traceon; }
25986b3a42afSjmmv
25996b3a42afSjmmv{ set +x
26006b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:161: grep \"atf_helpers:passes.*passed\" stdout"
26016b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:161"
26026b3a42afSjmmv( $at_check_trace; grep "atf_helpers:passes.*passed" stdout
26036b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26046b3a42afSjmmvat_status=$? at_failed=false
26056b3a42afSjmmv$at_check_filter
26066b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
26076b3a42afSjmmvecho stdout:; cat "$at_stdout"
26086b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:161"
26096b3a42afSjmmv$at_failed && at_fn_log_failure
26106b3a42afSjmmv$at_traceon; }
26116b3a42afSjmmv
26126b3a42afSjmmv{ set +x
26136b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:162: grep \"atf_helpers:skips\" stdout"
26146b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:162"
26156b3a42afSjmmv( $at_check_trace; grep "atf_helpers:skips" stdout
26166b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26176b3a42afSjmmvat_status=$? at_failed=false
26186b3a42afSjmmv$at_check_filter
26196b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
26206b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
26216b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:162"
26226b3a42afSjmmv$at_failed && at_fn_log_failure
26236b3a42afSjmmv$at_traceon; }
26246b3a42afSjmmv
26256b3a42afSjmmv
26266b3a42afSjmmv  set +x
26276b3a42afSjmmv  $at_times_p && times >"$at_times_file"
26286b3a42afSjmmv) 5>&1 2>&1 7>&- | eval $at_tee_pipe
26296b3a42afSjmmvread at_status <"$at_status_file"
26306b3a42afSjmmv#AT_STOP_8
26316b3a42afSjmmv#AT_START_9
26326b3a42afSjmmvat_fn_group_banner 9 'testsuite.at:167' \
26336b3a42afSjmmv  "run mixed test cases" "                           "
26346b3a42afSjmmvat_xfail=no
26356b3a42afSjmmv(
26366b3a42afSjmmv  $as_echo "9. $at_setup_line: testing $at_desc ..."
26376b3a42afSjmmv  $at_traceon
26386b3a42afSjmmv
26396b3a42afSjmmv
26406b3a42afSjmmv
26416b3a42afSjmmv
26426b3a42afSjmmv    cat >Kyuafile <<'_ATEOF'
26436b3a42afSjmmv
26446b3a42afSjmmvsyntax(2)
26456b3a42afSjmmvtest_suite("bootstrap")
26466b3a42afSjmmvatf_test_program{name="atf_helpers"}
26476b3a42afSjmmv_ATEOF
26486b3a42afSjmmv
26496b3a42afSjmmv    ln -s $({
26506b3a42afSjmmv    old=$(pwd)
26516b3a42afSjmmv    cd "${at_suite_dir}"
26526b3a42afSjmmv    # We need to locate a build product, not a source file, because the
26536b3a42afSjmmv    # test suite may be run outside of the source tree (think distcheck).
26546b3a42afSjmmv    while test $(pwd) != '/' -a ! -e engine/test_case_test; do
26556b3a42afSjmmv        cd ..
26566b3a42afSjmmv    done
26576b3a42afSjmmv    topdir=$(pwd)
26586b3a42afSjmmv    cd ${old}
26596b3a42afSjmmv    echo ${topdir}
26606b3a42afSjmmv})/bootstrap/atf_helpers atf_helpers
26616b3a42afSjmmv
26626b3a42afSjmmv{ set +x
26636b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:171: HOME=\$(pwd) TESTS=\"fails passes skips\" kyua --config=none test --store=bootstrap.db "
26646b3a42afSjmmvat_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:171"
26656b3a42afSjmmv( $at_check_trace; HOME=$(pwd) TESTS="fails passes skips" kyua --config=none test --store=bootstrap.db
26666b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26676b3a42afSjmmvat_status=$? at_failed=false
26686b3a42afSjmmv$at_check_filter
26696b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
26706b3a42afSjmmvecho stdout:; tee stdout <"$at_stdout"
26716b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:171"
26726b3a42afSjmmv$at_failed && at_fn_log_failure
26736b3a42afSjmmv$at_traceon; }
26746b3a42afSjmmv
26756b3a42afSjmmv{ set +x
26766b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:172: grep \"atf_helpers:fails.*failure.*Failed on purpose\" stdout"
26776b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:172"
26786b3a42afSjmmv( $at_check_trace; grep "atf_helpers:fails.*failure.*Failed on purpose" stdout
26796b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26806b3a42afSjmmvat_status=$? at_failed=false
26816b3a42afSjmmv$at_check_filter
26826b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
26836b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
26846b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:172"
26856b3a42afSjmmv$at_failed && at_fn_log_failure
26866b3a42afSjmmv$at_traceon; }
26876b3a42afSjmmv
26886b3a42afSjmmv{ set +x
26896b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:174: grep \"atf_helpers:passes.*passed\" stdout"
26906b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:174"
26916b3a42afSjmmv( $at_check_trace; grep "atf_helpers:passes.*passed" stdout
26926b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
26936b3a42afSjmmvat_status=$? at_failed=false
26946b3a42afSjmmv$at_check_filter
26956b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
26966b3a42afSjmmvecho stdout:; cat "$at_stdout"
26976b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:174"
26986b3a42afSjmmv$at_failed && at_fn_log_failure
26996b3a42afSjmmv$at_traceon; }
27006b3a42afSjmmv
27016b3a42afSjmmv{ set +x
27026b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:175: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout"
27036b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:175"
27046b3a42afSjmmv( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout
27056b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27066b3a42afSjmmvat_status=$? at_failed=false
27076b3a42afSjmmv$at_check_filter
27086b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
27096b3a42afSjmmvecho stdout:; cat "$at_stdout"
27106b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:175"
27116b3a42afSjmmv$at_failed && at_fn_log_failure
27126b3a42afSjmmv$at_traceon; }
27136b3a42afSjmmv
27146b3a42afSjmmv
27156b3a42afSjmmv  set +x
27166b3a42afSjmmv  $at_times_p && times >"$at_times_file"
27176b3a42afSjmmv) 5>&1 2>&1 7>&- | eval $at_tee_pipe
27186b3a42afSjmmvread at_status <"$at_status_file"
27196b3a42afSjmmv#AT_STOP_9
27206b3a42afSjmmv#AT_START_10
27216b3a42afSjmmvat_fn_group_banner 10 'testsuite.at:181' \
27226b3a42afSjmmv  "run tests from build directories" "               "
27236b3a42afSjmmvat_xfail=no
27246b3a42afSjmmv(
27256b3a42afSjmmv  $as_echo "10. $at_setup_line: testing $at_desc ..."
27266b3a42afSjmmv  $at_traceon
27276b3a42afSjmmv
27286b3a42afSjmmv
27296b3a42afSjmmv
27306b3a42afSjmmv
27316b3a42afSjmmv    cat >Kyuafile <<'_ATEOF'
27326b3a42afSjmmv
27336b3a42afSjmmvsyntax(2)
27346b3a42afSjmmvtest_suite("bootstrap")
27356b3a42afSjmmvatf_test_program{name="atf_helpers"}
27366b3a42afSjmmv_ATEOF
27376b3a42afSjmmv
27386b3a42afSjmmv    ln -s $({
27396b3a42afSjmmv    old=$(pwd)
27406b3a42afSjmmv    cd "${at_suite_dir}"
27416b3a42afSjmmv    # We need to locate a build product, not a source file, because the
27426b3a42afSjmmv    # test suite may be run outside of the source tree (think distcheck).
27436b3a42afSjmmv    while test $(pwd) != '/' -a ! -e engine/test_case_test; do
27446b3a42afSjmmv        cd ..
27456b3a42afSjmmv    done
27466b3a42afSjmmv    topdir=$(pwd)
27476b3a42afSjmmv    cd ${old}
27486b3a42afSjmmv    echo ${topdir}
27496b3a42afSjmmv})/bootstrap/atf_helpers atf_helpers
27506b3a42afSjmmv
27516b3a42afSjmmv{ set +x
27526b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:185: mkdir src"
27536b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:185"
27546b3a42afSjmmv( $at_check_trace; mkdir src
27556b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27566b3a42afSjmmvat_status=$? at_failed=false
27576b3a42afSjmmv$at_check_filter
27586b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
27596b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
27606b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:185"
27616b3a42afSjmmv$at_failed && at_fn_log_failure
27626b3a42afSjmmv$at_traceon; }
27636b3a42afSjmmv
27646b3a42afSjmmv{ set +x
27656b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:186: mv Kyuafile src"
27666b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:186"
27676b3a42afSjmmv( $at_check_trace; mv Kyuafile src
27686b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27696b3a42afSjmmvat_status=$? at_failed=false
27706b3a42afSjmmv$at_check_filter
27716b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
27726b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
27736b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:186"
27746b3a42afSjmmv$at_failed && at_fn_log_failure
27756b3a42afSjmmv$at_traceon; }
27766b3a42afSjmmv
27776b3a42afSjmmv{ set +x
27786b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:187: mkdir obj"
27796b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:187"
27806b3a42afSjmmv( $at_check_trace; mkdir obj
27816b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27826b3a42afSjmmvat_status=$? at_failed=false
27836b3a42afSjmmv$at_check_filter
27846b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
27856b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
27866b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:187"
27876b3a42afSjmmv$at_failed && at_fn_log_failure
27886b3a42afSjmmv$at_traceon; }
27896b3a42afSjmmv
27906b3a42afSjmmv{ set +x
27916b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:188: mv atf_helpers obj"
27926b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:188"
27936b3a42afSjmmv( $at_check_trace; mv atf_helpers obj
27946b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
27956b3a42afSjmmvat_status=$? at_failed=false
27966b3a42afSjmmv$at_check_filter
27976b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
27986b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
27996b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:188"
28006b3a42afSjmmv$at_failed && at_fn_log_failure
28016b3a42afSjmmv$at_traceon; }
28026b3a42afSjmmv
28036b3a42afSjmmv{ set +x
28046b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:189: HOME=\$(pwd) TESTS=\"fails passes skips\" kyua --config=none test --store=bootstrap.db --kyuafile=src/Kyuafile --build-root=obj"
28056b3a42afSjmmvat_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:189"
28066b3a42afSjmmv( $at_check_trace; HOME=$(pwd) TESTS="fails passes skips" kyua --config=none test --store=bootstrap.db --kyuafile=src/Kyuafile --build-root=obj
28076b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28086b3a42afSjmmvat_status=$? at_failed=false
28096b3a42afSjmmv$at_check_filter
28106b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
28116b3a42afSjmmvecho stdout:; tee stdout <"$at_stdout"
28126b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:189"
28136b3a42afSjmmv$at_failed && at_fn_log_failure
28146b3a42afSjmmv$at_traceon; }
28156b3a42afSjmmv
28166b3a42afSjmmv{ set +x
28176b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:192: grep \"atf_helpers:fails.*failure.*Failed on purpose\" stdout"
28186b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:192"
28196b3a42afSjmmv( $at_check_trace; grep "atf_helpers:fails.*failure.*Failed on purpose" stdout
28206b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28216b3a42afSjmmvat_status=$? at_failed=false
28226b3a42afSjmmv$at_check_filter
28236b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
28246b3a42afSjmmvat_fn_diff_devnull "$at_stdout" || at_failed=:
28256b3a42afSjmmvat_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:192"
28266b3a42afSjmmv$at_failed && at_fn_log_failure
28276b3a42afSjmmv$at_traceon; }
28286b3a42afSjmmv
28296b3a42afSjmmv{ set +x
28306b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:194: grep \"atf_helpers:passes.*passed\" stdout"
28316b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:194"
28326b3a42afSjmmv( $at_check_trace; grep "atf_helpers:passes.*passed" stdout
28336b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28346b3a42afSjmmvat_status=$? at_failed=false
28356b3a42afSjmmv$at_check_filter
28366b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
28376b3a42afSjmmvecho stdout:; cat "$at_stdout"
28386b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:194"
28396b3a42afSjmmv$at_failed && at_fn_log_failure
28406b3a42afSjmmv$at_traceon; }
28416b3a42afSjmmv
28426b3a42afSjmmv{ set +x
28436b3a42afSjmmv$as_echo "$at_srcdir/testsuite.at:195: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout"
28446b3a42afSjmmvat_fn_check_prepare_trace "testsuite.at:195"
28456b3a42afSjmmv( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout
28466b3a42afSjmmv) >>"$at_stdout" 2>>"$at_stderr" 5>&-
28476b3a42afSjmmvat_status=$? at_failed=false
28486b3a42afSjmmv$at_check_filter
28496b3a42afSjmmvat_fn_diff_devnull "$at_stderr" || at_failed=:
28506b3a42afSjmmvecho stdout:; cat "$at_stdout"
28516b3a42afSjmmvat_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:195"
28526b3a42afSjmmv$at_failed && at_fn_log_failure
28536b3a42afSjmmv$at_traceon; }
28546b3a42afSjmmv
28556b3a42afSjmmv
28566b3a42afSjmmv  set +x
28576b3a42afSjmmv  $at_times_p && times >"$at_times_file"
28586b3a42afSjmmv) 5>&1 2>&1 7>&- | eval $at_tee_pipe
28596b3a42afSjmmvread at_status <"$at_status_file"
28606b3a42afSjmmv#AT_STOP_10
2861