2013-02-26 09:24:42 +01:00
|
|
|
|
#! /bin/sh
|
|
|
|
|
# Generated from bootstrap/testsuite.at by GNU Autoconf 2.69.
|
|
|
|
|
#
|
|
|
|
|
# Copyright (C) 2009-2012 Free Software Foundation, Inc.
|
|
|
|
|
#
|
|
|
|
|
# This test suite is free software; the Free Software Foundation gives
|
|
|
|
|
# unlimited permission to copy, distribute and modify it.
|
|
|
|
|
## -------------------- ##
|
|
|
|
|
## M4sh Initialization. ##
|
|
|
|
|
## -------------------- ##
|
|
|
|
|
|
|
|
|
|
# Be more Bourne compatible
|
|
|
|
|
DUALCASE=1; export DUALCASE # for MKS sh
|
|
|
|
|
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
|
|
|
|
|
emulate sh
|
|
|
|
|
NULLCMD=:
|
|
|
|
|
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
|
|
|
|
|
# is contrary to our usage. Disable this feature.
|
|
|
|
|
alias -g '${1+"$@"}'='"$@"'
|
|
|
|
|
setopt NO_GLOB_SUBST
|
|
|
|
|
else
|
|
|
|
|
case `(set -o) 2>/dev/null` in #(
|
|
|
|
|
*posix*) :
|
|
|
|
|
set -o posix ;; #(
|
|
|
|
|
*) :
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
as_nl='
|
|
|
|
|
'
|
|
|
|
|
export as_nl
|
|
|
|
|
# Printing a long string crashes Solaris 7 /usr/bin/printf.
|
|
|
|
|
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
|
|
|
|
|
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
|
|
|
|
|
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
|
|
|
|
|
# Prefer a ksh shell builtin over an external printf program on Solaris,
|
|
|
|
|
# but without wasting forks for bash or zsh.
|
|
|
|
|
if test -z "$BASH_VERSION$ZSH_VERSION" \
|
|
|
|
|
&& (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
|
|
|
|
|
as_echo='print -r --'
|
|
|
|
|
as_echo_n='print -rn --'
|
|
|
|
|
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
|
|
|
|
|
as_echo='printf %s\n'
|
|
|
|
|
as_echo_n='printf %s'
|
|
|
|
|
else
|
|
|
|
|
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
|
|
|
|
|
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
|
|
|
|
|
as_echo_n='/usr/ucb/echo -n'
|
|
|
|
|
else
|
|
|
|
|
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
|
|
|
|
|
as_echo_n_body='eval
|
|
|
|
|
arg=$1;
|
|
|
|
|
case $arg in #(
|
|
|
|
|
*"$as_nl"*)
|
|
|
|
|
expr "X$arg" : "X\\(.*\\)$as_nl";
|
|
|
|
|
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
|
|
|
|
|
esac;
|
|
|
|
|
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
|
|
|
|
|
'
|
|
|
|
|
export as_echo_n_body
|
|
|
|
|
as_echo_n='sh -c $as_echo_n_body as_echo'
|
|
|
|
|
fi
|
|
|
|
|
export as_echo_body
|
|
|
|
|
as_echo='sh -c $as_echo_body as_echo'
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# The user is always right.
|
|
|
|
|
if test "${PATH_SEPARATOR+set}" != set; then
|
|
|
|
|
PATH_SEPARATOR=:
|
|
|
|
|
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
|
|
|
|
|
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
|
|
|
|
|
PATH_SEPARATOR=';'
|
|
|
|
|
}
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# IFS
|
|
|
|
|
# We need space, tab and new line, in precisely that order. Quoting is
|
|
|
|
|
# there to prevent editors from complaining about space-tab.
|
|
|
|
|
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
|
|
|
|
|
# splitting by setting IFS to empty value.)
|
|
|
|
|
IFS=" "" $as_nl"
|
|
|
|
|
|
|
|
|
|
# Find who we are. Look in the path if we contain no directory separator.
|
|
|
|
|
as_myself=
|
|
|
|
|
case $0 in #((
|
|
|
|
|
*[\\/]* ) as_myself=$0 ;;
|
|
|
|
|
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
|
|
|
for as_dir in $PATH
|
|
|
|
|
do
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
test -z "$as_dir" && as_dir=.
|
|
|
|
|
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
|
|
|
|
|
done
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
# We did not find ourselves, most probably we were run as `sh COMMAND'
|
|
|
|
|
# in which case we are not to be found in the path.
|
|
|
|
|
if test "x$as_myself" = x; then
|
|
|
|
|
as_myself=$0
|
|
|
|
|
fi
|
|
|
|
|
if test ! -f "$as_myself"; then
|
|
|
|
|
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Unset variables that we do not need and which cause bugs (e.g. in
|
|
|
|
|
# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
|
|
|
|
|
# suppresses any "Segmentation fault" message there. '((' could
|
|
|
|
|
# trigger a bug in pdksh 5.2.14.
|
|
|
|
|
for as_var in BASH_ENV ENV MAIL MAILPATH
|
|
|
|
|
do eval test x\${$as_var+set} = xset \
|
|
|
|
|
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
|
|
|
|
|
done
|
|
|
|
|
PS1='$ '
|
|
|
|
|
PS2='> '
|
|
|
|
|
PS4='+ '
|
|
|
|
|
|
|
|
|
|
# NLS nuisances.
|
|
|
|
|
LC_ALL=C
|
|
|
|
|
export LC_ALL
|
|
|
|
|
LANGUAGE=C
|
|
|
|
|
export LANGUAGE
|
|
|
|
|
|
|
|
|
|
# CDPATH.
|
|
|
|
|
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
|
|
|
|
|
|
|
|
|
|
if test "x$CONFIG_SHELL" = x; then
|
|
|
|
|
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
|
|
|
|
|
emulate sh
|
|
|
|
|
NULLCMD=:
|
|
|
|
|
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
|
|
|
|
|
# is contrary to our usage. Disable this feature.
|
|
|
|
|
alias -g '\${1+\"\$@\"}'='\"\$@\"'
|
|
|
|
|
setopt NO_GLOB_SUBST
|
|
|
|
|
else
|
|
|
|
|
case \`(set -o) 2>/dev/null\` in #(
|
|
|
|
|
*posix*) :
|
|
|
|
|
set -o posix ;; #(
|
|
|
|
|
*) :
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
fi
|
|
|
|
|
"
|
|
|
|
|
as_required="as_fn_return () { (exit \$1); }
|
|
|
|
|
as_fn_success () { as_fn_return 0; }
|
|
|
|
|
as_fn_failure () { as_fn_return 1; }
|
|
|
|
|
as_fn_ret_success () { return 0; }
|
|
|
|
|
as_fn_ret_failure () { return 1; }
|
|
|
|
|
|
|
|
|
|
exitcode=0
|
|
|
|
|
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
|
|
|
|
|
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
|
|
|
|
|
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
|
|
|
|
|
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
|
|
|
|
|
if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
exitcode=1; echo positional parameters were not saved.
|
|
|
|
|
fi
|
|
|
|
|
test x\$exitcode = x0 || exit 1
|
|
|
|
|
test -x / || exit 1"
|
|
|
|
|
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
|
|
|
|
|
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
|
|
|
|
|
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
|
|
|
|
|
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
|
|
|
|
|
test \$(( 1 + 1 )) = 2 || exit 1"
|
|
|
|
|
if (eval "$as_required") 2>/dev/null; then :
|
|
|
|
|
as_have_required=yes
|
|
|
|
|
else
|
|
|
|
|
as_have_required=no
|
|
|
|
|
fi
|
|
|
|
|
if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
|
|
|
as_found=false
|
|
|
|
|
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
|
|
|
|
|
do
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
test -z "$as_dir" && as_dir=.
|
|
|
|
|
as_found=:
|
|
|
|
|
case $as_dir in #(
|
|
|
|
|
/*)
|
|
|
|
|
for as_base in sh bash ksh sh5; do
|
|
|
|
|
# Try only shells that exist, to save several forks.
|
|
|
|
|
as_shell=$as_dir/$as_base
|
|
|
|
|
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
|
|
|
|
|
{ $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
|
|
|
|
|
CONFIG_SHELL=$as_shell as_have_required=yes
|
|
|
|
|
if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
|
|
|
|
|
break 2
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
done;;
|
|
|
|
|
esac
|
|
|
|
|
as_found=false
|
|
|
|
|
done
|
|
|
|
|
$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
|
|
|
|
|
{ $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
|
|
|
|
|
CONFIG_SHELL=$SHELL as_have_required=yes
|
|
|
|
|
fi; }
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if test "x$CONFIG_SHELL" != x; then :
|
|
|
|
|
export CONFIG_SHELL
|
|
|
|
|
# We cannot yet assume a decent shell, so we have to provide a
|
|
|
|
|
# neutralization value for shells without unset; and this also
|
|
|
|
|
# works around shells that cannot unset nonexistent variables.
|
|
|
|
|
# Preserve -v and -x to the replacement shell.
|
|
|
|
|
BASH_ENV=/dev/null
|
|
|
|
|
ENV=/dev/null
|
|
|
|
|
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
|
|
|
|
|
case $- in # ((((
|
|
|
|
|
*v*x* | *x*v* ) as_opts=-vx ;;
|
|
|
|
|
*v* ) as_opts=-v ;;
|
|
|
|
|
*x* ) as_opts=-x ;;
|
|
|
|
|
* ) as_opts= ;;
|
|
|
|
|
esac
|
|
|
|
|
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
|
|
|
|
|
# Admittedly, this is quite paranoid, since all the known shells bail
|
|
|
|
|
# out after a failed `exec'.
|
|
|
|
|
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
|
|
|
|
|
exit 255
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if test x$as_have_required = xno; then :
|
|
|
|
|
$as_echo "$0: This script requires a shell more modern than all"
|
|
|
|
|
$as_echo "$0: the shells that I found on your system."
|
|
|
|
|
if test x${ZSH_VERSION+set} = xset ; then
|
|
|
|
|
$as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
|
|
|
|
|
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
|
|
|
|
|
else
|
|
|
|
|
$as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
|
|
|
|
|
$0: including any error possibly output before this
|
|
|
|
|
$0: message. Then install a modern shell, or manually run
|
|
|
|
|
$0: the script under such a shell if you do have one."
|
|
|
|
|
fi
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
SHELL=${CONFIG_SHELL-/bin/sh}
|
|
|
|
|
export SHELL
|
|
|
|
|
# Unset more variables known to interfere with behavior of common tools.
|
|
|
|
|
CLICOLOR_FORCE= GREP_OPTIONS=
|
|
|
|
|
unset CLICOLOR_FORCE GREP_OPTIONS
|
|
|
|
|
|
|
|
|
|
## --------------------- ##
|
|
|
|
|
## M4sh Shell Functions. ##
|
|
|
|
|
## --------------------- ##
|
|
|
|
|
# as_fn_unset VAR
|
|
|
|
|
# ---------------
|
|
|
|
|
# Portably unset VAR.
|
|
|
|
|
as_fn_unset ()
|
|
|
|
|
{
|
|
|
|
|
{ eval $1=; unset $1;}
|
|
|
|
|
}
|
|
|
|
|
as_unset=as_fn_unset
|
|
|
|
|
|
|
|
|
|
# as_fn_set_status STATUS
|
|
|
|
|
# -----------------------
|
|
|
|
|
# Set $? to STATUS, without forking.
|
|
|
|
|
as_fn_set_status ()
|
|
|
|
|
{
|
|
|
|
|
return $1
|
|
|
|
|
} # as_fn_set_status
|
|
|
|
|
|
|
|
|
|
# as_fn_exit STATUS
|
|
|
|
|
# -----------------
|
|
|
|
|
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
|
|
|
|
|
as_fn_exit ()
|
|
|
|
|
{
|
|
|
|
|
set +e
|
|
|
|
|
as_fn_set_status $1
|
|
|
|
|
exit $1
|
|
|
|
|
} # as_fn_exit
|
|
|
|
|
|
|
|
|
|
# as_fn_mkdir_p
|
|
|
|
|
# -------------
|
|
|
|
|
# Create "$as_dir" as a directory, including parents if necessary.
|
|
|
|
|
as_fn_mkdir_p ()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
case $as_dir in #(
|
|
|
|
|
-*) as_dir=./$as_dir;;
|
|
|
|
|
esac
|
|
|
|
|
test -d "$as_dir" || eval $as_mkdir_p || {
|
|
|
|
|
as_dirs=
|
|
|
|
|
while :; do
|
|
|
|
|
case $as_dir in #(
|
|
|
|
|
*\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
|
|
|
|
|
*) as_qdir=$as_dir;;
|
|
|
|
|
esac
|
|
|
|
|
as_dirs="'$as_qdir' $as_dirs"
|
|
|
|
|
as_dir=`$as_dirname -- "$as_dir" ||
|
|
|
|
|
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
|
|
|
|
X"$as_dir" : 'X\(//\)[^/]' \| \
|
|
|
|
|
X"$as_dir" : 'X\(//\)$' \| \
|
|
|
|
|
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
|
|
|
|
|
$as_echo X"$as_dir" |
|
|
|
|
|
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
|
|
|
|
s//\1/
|
|
|
|
|
q
|
|
|
|
|
}
|
|
|
|
|
/^X\(\/\/\)[^/].*/{
|
|
|
|
|
s//\1/
|
|
|
|
|
q
|
|
|
|
|
}
|
|
|
|
|
/^X\(\/\/\)$/{
|
|
|
|
|
s//\1/
|
|
|
|
|
q
|
|
|
|
|
}
|
|
|
|
|
/^X\(\/\).*/{
|
|
|
|
|
s//\1/
|
|
|
|
|
q
|
|
|
|
|
}
|
|
|
|
|
s/.*/./; q'`
|
|
|
|
|
test -d "$as_dir" && break
|
|
|
|
|
done
|
|
|
|
|
test -z "$as_dirs" || eval "mkdir $as_dirs"
|
|
|
|
|
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} # as_fn_mkdir_p
|
|
|
|
|
|
|
|
|
|
# as_fn_executable_p FILE
|
|
|
|
|
# -----------------------
|
|
|
|
|
# Test if FILE is an executable regular file.
|
|
|
|
|
as_fn_executable_p ()
|
|
|
|
|
{
|
|
|
|
|
test -f "$1" && test -x "$1"
|
|
|
|
|
} # as_fn_executable_p
|
|
|
|
|
# as_fn_append VAR VALUE
|
|
|
|
|
# ----------------------
|
|
|
|
|
# Append the text in VALUE to the end of the definition contained in VAR. Take
|
|
|
|
|
# advantage of any shell optimizations that allow amortized linear growth over
|
|
|
|
|
# repeated appends, instead of the typical quadratic growth present in naive
|
|
|
|
|
# implementations.
|
|
|
|
|
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
|
|
|
|
|
eval 'as_fn_append ()
|
|
|
|
|
{
|
|
|
|
|
eval $1+=\$2
|
|
|
|
|
}'
|
|
|
|
|
else
|
|
|
|
|
as_fn_append ()
|
|
|
|
|
{
|
|
|
|
|
eval $1=\$$1\$2
|
|
|
|
|
}
|
|
|
|
|
fi # as_fn_append
|
|
|
|
|
|
|
|
|
|
# as_fn_arith ARG...
|
|
|
|
|
# ------------------
|
|
|
|
|
# Perform arithmetic evaluation on the ARGs, and store the result in the
|
|
|
|
|
# global $as_val. Take advantage of shells that can avoid forks. The arguments
|
|
|
|
|
# must be portable across $(()) and expr.
|
|
|
|
|
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
|
|
|
|
|
eval 'as_fn_arith ()
|
|
|
|
|
{
|
|
|
|
|
as_val=$(( $* ))
|
|
|
|
|
}'
|
|
|
|
|
else
|
|
|
|
|
as_fn_arith ()
|
|
|
|
|
{
|
|
|
|
|
as_val=`expr "$@" || test $? -eq 1`
|
|
|
|
|
}
|
|
|
|
|
fi # as_fn_arith
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# as_fn_error STATUS ERROR [LINENO LOG_FD]
|
|
|
|
|
# ----------------------------------------
|
|
|
|
|
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
|
|
|
|
|
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
|
|
|
|
|
# script with STATUS, using 1 if that was 0.
|
|
|
|
|
as_fn_error ()
|
|
|
|
|
{
|
|
|
|
|
as_status=$1; test $as_status -eq 0 && as_status=1
|
|
|
|
|
if test "$4"; then
|
|
|
|
|
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
|
|
|
|
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
|
|
|
|
|
fi
|
|
|
|
|
$as_echo "$as_me: error: $2" >&2
|
|
|
|
|
as_fn_exit $as_status
|
|
|
|
|
} # as_fn_error
|
|
|
|
|
|
|
|
|
|
if expr a : '\(a\)' >/dev/null 2>&1 &&
|
|
|
|
|
test "X`expr 00001 : '.*\(...\)'`" = X001; then
|
|
|
|
|
as_expr=expr
|
|
|
|
|
else
|
|
|
|
|
as_expr=false
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
|
|
|
|
|
as_basename=basename
|
|
|
|
|
else
|
|
|
|
|
as_basename=false
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
as_me=`$as_basename -- "$0" ||
|
|
|
|
|
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
|
|
|
|
|
X"$0" : 'X\(//\)$' \| \
|
|
|
|
|
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
|
|
|
|
|
$as_echo X/"$0" |
|
|
|
|
|
sed '/^.*\/\([^/][^/]*\)\/*$/{
|
|
|
|
|
s//\1/
|
|
|
|
|
q
|
|
|
|
|
}
|
|
|
|
|
/^X\/\(\/\/\)$/{
|
|
|
|
|
s//\1/
|
|
|
|
|
q
|
|
|
|
|
}
|
|
|
|
|
/^X\/\(\/\).*/{
|
|
|
|
|
s//\1/
|
|
|
|
|
q
|
|
|
|
|
}
|
|
|
|
|
s/.*/./; q'`
|
|
|
|
|
|
|
|
|
|
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
|
|
|
|
|
as_dirname=dirname
|
|
|
|
|
else
|
|
|
|
|
as_dirname=false
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Avoid depending upon Character Ranges.
|
|
|
|
|
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
|
|
|
|
|
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
|
|
|
|
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
|
|
|
|
|
as_cr_digits='0123456789'
|
|
|
|
|
as_cr_alnum=$as_cr_Letters$as_cr_digits
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
as_lineno_1=$LINENO as_lineno_1a=$LINENO
|
|
|
|
|
as_lineno_2=$LINENO as_lineno_2a=$LINENO
|
|
|
|
|
eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
|
|
|
|
|
test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
|
|
|
|
|
# Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
|
|
|
|
|
sed -n '
|
|
|
|
|
p
|
|
|
|
|
/[$]LINENO/=
|
|
|
|
|
' <$as_myself |
|
|
|
|
|
sed '
|
|
|
|
|
s/[$]LINENO.*/&-/
|
|
|
|
|
t lineno
|
|
|
|
|
b
|
|
|
|
|
:lineno
|
|
|
|
|
N
|
|
|
|
|
:loop
|
|
|
|
|
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
|
|
|
|
|
t loop
|
|
|
|
|
s/-\n.*//
|
|
|
|
|
' >$as_me.lineno &&
|
|
|
|
|
chmod +x "$as_me.lineno" ||
|
|
|
|
|
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
|
|
|
|
|
|
|
|
|
|
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
|
|
|
|
|
# already done that, so ensure we don't try to do so again and fall
|
|
|
|
|
# in an infinite loop. This has already happened in practice.
|
|
|
|
|
_as_can_reexec=no; export _as_can_reexec
|
|
|
|
|
# Don't try to exec as it changes $[0], causing all sort of problems
|
|
|
|
|
# (the dirname of $[0] is not the place where we might find the
|
|
|
|
|
# original and so on. Autoconf is especially sensitive to this).
|
|
|
|
|
. "./$as_me.lineno"
|
|
|
|
|
# Exit status is that of the last command.
|
|
|
|
|
exit
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ECHO_C= ECHO_N= ECHO_T=
|
|
|
|
|
case `echo -n x` in #(((((
|
|
|
|
|
-n*)
|
|
|
|
|
case `echo 'xy\c'` in
|
|
|
|
|
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
|
|
|
|
|
xy) ECHO_C='\c';;
|
|
|
|
|
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
|
|
|
|
|
ECHO_T=' ';;
|
|
|
|
|
esac;;
|
|
|
|
|
*)
|
|
|
|
|
ECHO_N='-n';;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
rm -f conf$$ conf$$.exe conf$$.file
|
|
|
|
|
if test -d conf$$.dir; then
|
|
|
|
|
rm -f conf$$.dir/conf$$.file
|
|
|
|
|
else
|
|
|
|
|
rm -f conf$$.dir
|
|
|
|
|
mkdir conf$$.dir 2>/dev/null
|
|
|
|
|
fi
|
|
|
|
|
if (echo >conf$$.file) 2>/dev/null; then
|
|
|
|
|
if ln -s conf$$.file conf$$ 2>/dev/null; then
|
|
|
|
|
as_ln_s='ln -s'
|
|
|
|
|
# ... but there are two gotchas:
|
|
|
|
|
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
|
|
|
|
|
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
|
|
|
|
|
# In both cases, we have to default to `cp -pR'.
|
|
|
|
|
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
|
|
|
|
|
as_ln_s='cp -pR'
|
|
|
|
|
elif ln conf$$.file conf$$ 2>/dev/null; then
|
|
|
|
|
as_ln_s=ln
|
|
|
|
|
else
|
|
|
|
|
as_ln_s='cp -pR'
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
as_ln_s='cp -pR'
|
|
|
|
|
fi
|
|
|
|
|
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
|
|
|
|
|
rmdir conf$$.dir 2>/dev/null
|
|
|
|
|
|
|
|
|
|
if mkdir -p . 2>/dev/null; then
|
|
|
|
|
as_mkdir_p='mkdir -p "$as_dir"'
|
|
|
|
|
else
|
|
|
|
|
test -d ./-p && rmdir ./-p
|
|
|
|
|
as_mkdir_p=false
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
as_test_x='test -x'
|
|
|
|
|
as_executable_p=as_fn_executable_p
|
|
|
|
|
|
|
|
|
|
# Sed expression to map a string onto a valid CPP name.
|
|
|
|
|
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
|
|
|
|
|
|
|
|
|
# Sed expression to map a string onto a valid variable name.
|
|
|
|
|
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SHELL=${CONFIG_SHELL-/bin/sh}
|
|
|
|
|
|
|
|
|
|
# How were we run?
|
|
|
|
|
at_cli_args="$@"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Not all shells have the 'times' builtin; the subshell is needed to make
|
|
|
|
|
# sure we discard the 'times: not found' message from the shell.
|
|
|
|
|
at_times_p=false
|
|
|
|
|
(times) >/dev/null 2>&1 && at_times_p=:
|
|
|
|
|
|
|
|
|
|
# CLI Arguments to pass to the debugging scripts.
|
|
|
|
|
at_debug_args=
|
|
|
|
|
# -e sets to true
|
|
|
|
|
at_errexit_p=false
|
|
|
|
|
# Shall we be verbose? ':' means no, empty means yes.
|
|
|
|
|
at_verbose=:
|
|
|
|
|
at_quiet=
|
|
|
|
|
# Running several jobs in parallel, 0 means as many as test groups.
|
|
|
|
|
at_jobs=1
|
|
|
|
|
at_traceon=:
|
|
|
|
|
at_trace_echo=:
|
|
|
|
|
at_check_filter_trace=:
|
|
|
|
|
|
|
|
|
|
# Shall we keep the debug scripts? Must be `:' when the suite is
|
|
|
|
|
# run by a debug script, so that the script doesn't remove itself.
|
|
|
|
|
at_debug_p=false
|
|
|
|
|
# Display help message?
|
|
|
|
|
at_help_p=false
|
|
|
|
|
# Display the version message?
|
|
|
|
|
at_version_p=false
|
|
|
|
|
# List test groups?
|
|
|
|
|
at_list_p=false
|
|
|
|
|
# --clean
|
|
|
|
|
at_clean=false
|
|
|
|
|
# Test groups to run
|
|
|
|
|
at_groups=
|
|
|
|
|
# Whether to rerun failed tests.
|
|
|
|
|
at_recheck=
|
|
|
|
|
# Whether a write failure occurred
|
|
|
|
|
at_write_fail=0
|
|
|
|
|
|
|
|
|
|
# The directory we run the suite in. Default to . if no -C option.
|
|
|
|
|
at_dir=`pwd`
|
|
|
|
|
# An absolute reference to this testsuite script.
|
|
|
|
|
case $as_myself in
|
|
|
|
|
[\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
|
|
|
|
|
* ) at_myself=$at_dir/$as_myself ;;
|
|
|
|
|
esac
|
|
|
|
|
# Whether -C is in effect.
|
|
|
|
|
at_change_dir=false
|
|
|
|
|
|
|
|
|
|
# Whether to enable colored test results.
|
|
|
|
|
at_color=no
|
|
|
|
|
# List of the tested programs.
|
|
|
|
|
at_tested='kyua'
|
|
|
|
|
# As many question marks as there are digits in the last test group number.
|
|
|
|
|
# Used to normalize the test group numbers so that `ls' lists them in
|
|
|
|
|
# numerical order.
|
|
|
|
|
at_format='??'
|
|
|
|
|
# Description of all the test groups.
|
|
|
|
|
at_help_all="1;testsuite.at:70;test program crashes in test list;;
|
|
|
|
|
2;testsuite.at:81;test program prints an empty test list;;
|
|
|
|
|
3;testsuite.at:92;test program with zero test cases;;
|
|
|
|
|
4;testsuite.at:103;run test case that passes;;
|
|
|
|
|
5;testsuite.at:115;run test case that fails;;
|
|
|
|
|
6;testsuite.at:128;run test case that skips;;
|
|
|
|
|
7;testsuite.at:141;run two test cases, success;;
|
|
|
|
|
8;testsuite.at:154;run two test cases, failure;;
|
|
|
|
|
9;testsuite.at:167;run mixed test cases;;
|
|
|
|
|
10;testsuite.at:181;run tests from build directories;;
|
|
|
|
|
"
|
|
|
|
|
# List of the all the test groups.
|
|
|
|
|
at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
|
|
|
|
|
|
|
|
|
|
# at_fn_validate_ranges NAME...
|
|
|
|
|
# -----------------------------
|
|
|
|
|
# Validate and normalize the test group number contained in each variable
|
|
|
|
|
# NAME. Leading zeroes are treated as decimal.
|
|
|
|
|
at_fn_validate_ranges ()
|
|
|
|
|
{
|
|
|
|
|
for at_grp
|
|
|
|
|
do
|
|
|
|
|
eval at_value=\$$at_grp
|
|
|
|
|
if test $at_value -lt 1 || test $at_value -gt 10; then
|
|
|
|
|
$as_echo "invalid test group: $at_value" >&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
case $at_value in
|
|
|
|
|
0*) # We want to treat leading 0 as decimal, like expr and test, but
|
|
|
|
|
# AS_VAR_ARITH treats it as octal if it uses $(( )).
|
|
|
|
|
# With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
|
|
|
|
|
# expr fork, but it is not worth the effort to determine if the
|
|
|
|
|
# shell supports XSI when the user can just avoid leading 0.
|
|
|
|
|
eval $at_grp='`expr $at_value + 0`' ;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
at_prev=
|
|
|
|
|
for at_option
|
|
|
|
|
do
|
|
|
|
|
# If the previous option needs an argument, assign it.
|
|
|
|
|
if test -n "$at_prev"; then
|
|
|
|
|
at_option=$at_prev=$at_option
|
|
|
|
|
at_prev=
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
case $at_option in
|
|
|
|
|
*=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
|
|
|
|
|
*) at_optarg= ;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
# Accept the important Cygnus configure options, so we can diagnose typos.
|
|
|
|
|
|
|
|
|
|
case $at_option in
|
|
|
|
|
--help | -h )
|
|
|
|
|
at_help_p=:
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
--list | -l )
|
|
|
|
|
at_list_p=:
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
--version | -V )
|
|
|
|
|
at_version_p=:
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
--clean | -c )
|
|
|
|
|
at_clean=:
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
--color )
|
|
|
|
|
at_color=always
|
|
|
|
|
;;
|
|
|
|
|
--color=* )
|
|
|
|
|
case $at_optarg in
|
|
|
|
|
no | never | none) at_color=never ;;
|
|
|
|
|
auto | tty | if-tty) at_color=auto ;;
|
|
|
|
|
always | yes | force) at_color=always ;;
|
|
|
|
|
*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
|
|
|
|
|
as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
|
|
|
|
|
esac
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
--debug | -d )
|
|
|
|
|
at_debug_p=:
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
--errexit | -e )
|
|
|
|
|
at_debug_p=:
|
|
|
|
|
at_errexit_p=:
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
--verbose | -v )
|
|
|
|
|
at_verbose=; at_quiet=:
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
--trace | -x )
|
|
|
|
|
at_traceon='set -x'
|
|
|
|
|
at_trace_echo=echo
|
|
|
|
|
at_check_filter_trace=at_fn_filter_trace
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
[0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
|
|
|
|
|
at_fn_validate_ranges at_option
|
|
|
|
|
as_fn_append at_groups "$at_option$as_nl"
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
# Ranges
|
|
|
|
|
[0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
|
|
|
|
|
at_range_start=`echo $at_option |tr -d X-`
|
|
|
|
|
at_fn_validate_ranges at_range_start
|
|
|
|
|
at_range=`$as_echo "$at_groups_all" | \
|
|
|
|
|
sed -ne '/^'$at_range_start'$/,$p'`
|
|
|
|
|
as_fn_append at_groups "$at_range$as_nl"
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
-[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
|
|
|
|
|
at_range_end=`echo $at_option |tr -d X-`
|
|
|
|
|
at_fn_validate_ranges at_range_end
|
|
|
|
|
at_range=`$as_echo "$at_groups_all" | \
|
|
|
|
|
sed -ne '1,/^'$at_range_end'$/p'`
|
|
|
|
|
as_fn_append at_groups "$at_range$as_nl"
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
[0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
|
|
|
|
|
[0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
|
|
|
|
|
[0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
|
|
|
|
|
[0-9][0-9][0-9]-[0-9][0-9][0-9] | \
|
|
|
|
|
[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
|
|
|
|
|
[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
|
|
|
|
|
at_range_start=`expr $at_option : '\(.*\)-'`
|
|
|
|
|
at_range_end=`expr $at_option : '.*-\(.*\)'`
|
|
|
|
|
if test $at_range_start -gt $at_range_end; then
|
|
|
|
|
at_tmp=$at_range_end
|
|
|
|
|
at_range_end=$at_range_start
|
|
|
|
|
at_range_start=$at_tmp
|
|
|
|
|
fi
|
|
|
|
|
at_fn_validate_ranges at_range_start at_range_end
|
|
|
|
|
at_range=`$as_echo "$at_groups_all" | \
|
|
|
|
|
sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
|
|
|
|
|
as_fn_append at_groups "$at_range$as_nl"
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
# Directory selection.
|
|
|
|
|
--directory | -C )
|
|
|
|
|
at_prev=--directory
|
|
|
|
|
;;
|
|
|
|
|
--directory=* )
|
|
|
|
|
at_change_dir=:
|
|
|
|
|
at_dir=$at_optarg
|
|
|
|
|
if test x- = "x$at_dir" ; then
|
|
|
|
|
at_dir=./-
|
|
|
|
|
fi
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
# Parallel execution.
|
|
|
|
|
--jobs | -j )
|
|
|
|
|
at_jobs=0
|
|
|
|
|
;;
|
|
|
|
|
--jobs=* | -j[0-9]* )
|
|
|
|
|
if test -n "$at_optarg"; then
|
|
|
|
|
at_jobs=$at_optarg
|
|
|
|
|
else
|
|
|
|
|
at_jobs=`expr X$at_option : 'X-j\(.*\)'`
|
|
|
|
|
fi
|
|
|
|
|
case $at_jobs in *[!0-9]*)
|
|
|
|
|
at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
|
|
|
|
|
as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
|
|
|
|
|
esac
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
# Keywords.
|
|
|
|
|
--keywords | -k )
|
|
|
|
|
at_prev=--keywords
|
|
|
|
|
;;
|
|
|
|
|
--keywords=* )
|
|
|
|
|
at_groups_selected=$at_help_all
|
|
|
|
|
at_save_IFS=$IFS
|
|
|
|
|
IFS=,
|
|
|
|
|
set X $at_optarg
|
|
|
|
|
shift
|
|
|
|
|
IFS=$at_save_IFS
|
|
|
|
|
for at_keyword
|
|
|
|
|
do
|
|
|
|
|
at_invert=
|
|
|
|
|
case $at_keyword in
|
|
|
|
|
'!'*)
|
|
|
|
|
at_invert="-v"
|
|
|
|
|
at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
# It is on purpose that we match the test group titles too.
|
|
|
|
|
at_groups_selected=`$as_echo "$at_groups_selected" |
|
|
|
|
|
grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
|
|
|
|
|
done
|
|
|
|
|
# Smash the keywords.
|
|
|
|
|
at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
|
|
|
|
|
as_fn_append at_groups "$at_groups_selected$as_nl"
|
|
|
|
|
;;
|
|
|
|
|
--recheck)
|
|
|
|
|
at_recheck=:
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
*=*)
|
|
|
|
|
at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
|
|
|
|
|
# Reject names that are not valid shell variable names.
|
|
|
|
|
case $at_envvar in
|
|
|
|
|
'' | [0-9]* | *[!_$as_cr_alnum]* )
|
|
|
|
|
as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
|
|
|
|
|
esac
|
|
|
|
|
at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
|
|
|
|
|
# Export now, but save eval for later and for debug scripts.
|
|
|
|
|
export $at_envvar
|
|
|
|
|
as_fn_append at_debug_args " $at_envvar='$at_value'"
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
*) $as_echo "$as_me: invalid option: $at_option" >&2
|
|
|
|
|
$as_echo "Try \`$0 --help' for more information." >&2
|
|
|
|
|
exit 1
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Verify our last option didn't require an argument
|
|
|
|
|
if test -n "$at_prev"; then :
|
|
|
|
|
as_fn_error $? "\`$at_prev' requires an argument"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# The file containing the suite.
|
|
|
|
|
at_suite_log=$at_dir/$as_me.log
|
|
|
|
|
|
|
|
|
|
# Selected test groups.
|
|
|
|
|
if test -z "$at_groups$at_recheck"; then
|
|
|
|
|
at_groups=$at_groups_all
|
|
|
|
|
else
|
|
|
|
|
if test -n "$at_recheck" && test -r "$at_suite_log"; then
|
|
|
|
|
at_oldfails=`sed -n '
|
|
|
|
|
/^Failed tests:$/,/^Skipped tests:$/{
|
|
|
|
|
s/^[ ]*\([1-9][0-9]*\):.*/\1/p
|
|
|
|
|
}
|
|
|
|
|
/^Unexpected passes:$/,/^## Detailed failed tests/{
|
|
|
|
|
s/^[ ]*\([1-9][0-9]*\):.*/\1/p
|
|
|
|
|
}
|
|
|
|
|
/^## Detailed failed tests/q
|
|
|
|
|
' "$at_suite_log"`
|
|
|
|
|
as_fn_append at_groups "$at_oldfails$as_nl"
|
|
|
|
|
fi
|
|
|
|
|
# Sort the tests, removing duplicates.
|
|
|
|
|
at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if test x"$at_color" = xalways \
|
|
|
|
|
|| { test x"$at_color" = xauto && test -t 1; }; then
|
|
|
|
|
at_red=`printf '\033[0;31m'`
|
|
|
|
|
at_grn=`printf '\033[0;32m'`
|
|
|
|
|
at_lgn=`printf '\033[1;32m'`
|
|
|
|
|
at_blu=`printf '\033[1;34m'`
|
|
|
|
|
at_std=`printf '\033[m'`
|
|
|
|
|
else
|
|
|
|
|
at_red= at_grn= at_lgn= at_blu= at_std=
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Help message.
|
|
|
|
|
if $at_help_p; then
|
|
|
|
|
cat <<_ATEOF || at_write_fail=1
|
|
|
|
|
Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
|
|
|
|
|
|
|
|
|
|
Run all the tests, or the selected TESTS, given by numeric ranges, and
|
|
|
|
|
save a detailed log file. Upon failure, create debugging scripts.
|
|
|
|
|
|
|
|
|
|
Do not change environment variables directly. Instead, set them via
|
|
|
|
|
command line arguments. Set \`AUTOTEST_PATH' to select the executables
|
|
|
|
|
to exercise. Each relative directory is expanded as build and source
|
|
|
|
|
directories relative to the top level of this distribution.
|
|
|
|
|
E.g., from within the build directory /tmp/foo-1.0, invoking this:
|
|
|
|
|
|
|
|
|
|
$ $0 AUTOTEST_PATH=bin
|
|
|
|
|
|
|
|
|
|
is equivalent to the following, assuming the source directory is /src/foo-1.0:
|
|
|
|
|
|
|
|
|
|
PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
|
|
|
|
|
_ATEOF
|
|
|
|
|
cat <<_ATEOF || at_write_fail=1
|
|
|
|
|
|
|
|
|
|
Operation modes:
|
|
|
|
|
-h, --help print the help message, then exit
|
|
|
|
|
-V, --version print version number, then exit
|
|
|
|
|
-c, --clean remove all the files this test suite might create and exit
|
|
|
|
|
-l, --list describes all the tests, or the selected TESTS
|
|
|
|
|
_ATEOF
|
|
|
|
|
cat <<_ATEOF || at_write_fail=1
|
|
|
|
|
|
|
|
|
|
Execution tuning:
|
|
|
|
|
-C, --directory=DIR
|
|
|
|
|
change to directory DIR before starting
|
|
|
|
|
--color[=never|auto|always]
|
|
|
|
|
enable colored test results on terminal, or always
|
|
|
|
|
-j, --jobs[=N]
|
|
|
|
|
Allow N jobs at once; infinite jobs with no arg (default 1)
|
|
|
|
|
-k, --keywords=KEYWORDS
|
|
|
|
|
select the tests matching all the comma-separated KEYWORDS
|
|
|
|
|
multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
|
|
|
|
|
--recheck select all tests that failed or passed unexpectedly last time
|
|
|
|
|
-e, --errexit abort as soon as a test fails; implies --debug
|
|
|
|
|
-v, --verbose force more detailed output
|
|
|
|
|
default for debugging scripts
|
|
|
|
|
-d, --debug inhibit clean up and top-level logging
|
|
|
|
|
default for debugging scripts
|
|
|
|
|
-x, --trace enable tests shell tracing
|
|
|
|
|
_ATEOF
|
|
|
|
|
cat <<_ATEOF || at_write_fail=1
|
|
|
|
|
|
|
|
|
|
Report bugs to <kyua-discuss@googlegroups.com>.
|
|
|
|
|
_ATEOF
|
|
|
|
|
exit $at_write_fail
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# List of tests.
|
|
|
|
|
if $at_list_p; then
|
|
|
|
|
cat <<_ATEOF || at_write_fail=1
|
2013-12-06 12:04:52 +01:00
|
|
|
|
Kyua - Command line interface 0.7 test suite: bootstrapping tests test groups:
|
2013-02-26 09:24:42 +01:00
|
|
|
|
|
|
|
|
|
NUM: FILE-NAME:LINE TEST-GROUP-NAME
|
|
|
|
|
KEYWORDS
|
|
|
|
|
|
|
|
|
|
_ATEOF
|
|
|
|
|
# Pass an empty line as separator between selected groups and help.
|
|
|
|
|
$as_echo "$at_groups$as_nl$as_nl$at_help_all" |
|
|
|
|
|
awk 'NF == 1 && FS != ";" {
|
|
|
|
|
selected[$ 1] = 1
|
|
|
|
|
next
|
|
|
|
|
}
|
|
|
|
|
/^$/ { FS = ";" }
|
|
|
|
|
NF > 0 {
|
|
|
|
|
if (selected[$ 1]) {
|
|
|
|
|
printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
|
|
|
|
|
if ($ 4) {
|
|
|
|
|
lmax = 79
|
|
|
|
|
indent = " "
|
|
|
|
|
line = indent
|
|
|
|
|
len = length (line)
|
|
|
|
|
n = split ($ 4, a, " ")
|
|
|
|
|
for (i = 1; i <= n; i++) {
|
|
|
|
|
l = length (a[i]) + 1
|
|
|
|
|
if (i > 1 && len + l > lmax) {
|
|
|
|
|
print line
|
|
|
|
|
line = indent " " a[i]
|
|
|
|
|
len = length (line)
|
|
|
|
|
} else {
|
|
|
|
|
line = line " " a[i]
|
|
|
|
|
len += l
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (n)
|
|
|
|
|
print line
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}' || at_write_fail=1
|
|
|
|
|
exit $at_write_fail
|
|
|
|
|
fi
|
|
|
|
|
if $at_version_p; then
|
2013-12-06 12:04:52 +01:00
|
|
|
|
$as_echo "$as_me (Kyua - Command line interface 0.7)" &&
|
2013-02-26 09:24:42 +01:00
|
|
|
|
cat <<\_ATEOF || at_write_fail=1
|
|
|
|
|
|
|
|
|
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
|
|
|
|
This test suite is free software; the Free Software Foundation gives
|
|
|
|
|
unlimited permission to copy, distribute and modify it.
|
|
|
|
|
_ATEOF
|
|
|
|
|
exit $at_write_fail
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Should we print banners? Yes if more than one test is run.
|
|
|
|
|
case $at_groups in #(
|
|
|
|
|
*$as_nl* )
|
|
|
|
|
at_print_banners=: ;; #(
|
|
|
|
|
* ) at_print_banners=false ;;
|
|
|
|
|
esac
|
|
|
|
|
# Text for banner N, set to a single space once printed.
|
|
|
|
|
|
|
|
|
|
# Take any -C into account.
|
|
|
|
|
if $at_change_dir ; then
|
|
|
|
|
test x != "x$at_dir" && cd "$at_dir" \
|
|
|
|
|
|| as_fn_error $? "unable to change directory"
|
|
|
|
|
at_dir=`pwd`
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Load the config files for any default variable assignments.
|
|
|
|
|
for at_file in atconfig atlocal
|
|
|
|
|
do
|
|
|
|
|
test -r $at_file || continue
|
|
|
|
|
. ./$at_file || as_fn_error $? "invalid content: $at_file"
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
|
|
|
|
|
: "${at_top_build_prefix=$at_top_builddir}"
|
|
|
|
|
|
|
|
|
|
# Perform any assignments requested during argument parsing.
|
|
|
|
|
eval "$at_debug_args"
|
|
|
|
|
|
|
|
|
|
# atconfig delivers names relative to the directory the test suite is
|
|
|
|
|
# in, but the groups themselves are run in testsuite-dir/group-dir.
|
|
|
|
|
if test -n "$at_top_srcdir"; then
|
|
|
|
|
builddir=../..
|
|
|
|
|
for at_dir_var in srcdir top_srcdir top_build_prefix
|
|
|
|
|
do
|
|
|
|
|
eval at_val=\$at_$at_dir_var
|
|
|
|
|
case $at_val in
|
|
|
|
|
[\\/$]* | ?:[\\/]* ) at_prefix= ;;
|
|
|
|
|
*) at_prefix=../../ ;;
|
|
|
|
|
esac
|
|
|
|
|
eval "$at_dir_var=\$at_prefix\$at_val"
|
|
|
|
|
done
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
## -------------------- ##
|
|
|
|
|
## Directory structure. ##
|
|
|
|
|
## -------------------- ##
|
|
|
|
|
|
|
|
|
|
# This is the set of directories and files used by this script
|
|
|
|
|
# (non-literals are capitalized):
|
|
|
|
|
#
|
|
|
|
|
# TESTSUITE - the testsuite
|
|
|
|
|
# TESTSUITE.log - summarizes the complete testsuite run
|
|
|
|
|
# TESTSUITE.dir/ - created during a run, remains after -d or failed test
|
|
|
|
|
# + at-groups/ - during a run: status of all groups in run
|
|
|
|
|
# | + NNN/ - during a run: meta-data about test group NNN
|
|
|
|
|
# | | + check-line - location (source file and line) of current AT_CHECK
|
|
|
|
|
# | | + status - exit status of current AT_CHECK
|
|
|
|
|
# | | + stdout - stdout of current AT_CHECK
|
|
|
|
|
# | | + stder1 - stderr, including trace
|
|
|
|
|
# | | + stderr - stderr, with trace filtered out
|
|
|
|
|
# | | + test-source - portion of testsuite that defines group
|
|
|
|
|
# | | + times - timestamps for computing duration
|
|
|
|
|
# | | + pass - created if group passed
|
|
|
|
|
# | | + xpass - created if group xpassed
|
|
|
|
|
# | | + fail - created if group failed
|
|
|
|
|
# | | + xfail - created if group xfailed
|
|
|
|
|
# | | + skip - created if group skipped
|
|
|
|
|
# + at-stop - during a run: end the run if this file exists
|
|
|
|
|
# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
|
|
|
|
|
# + 0..NNN/ - created for each group NNN, remains after -d or failed test
|
|
|
|
|
# | + TESTSUITE.log - summarizes the group results
|
|
|
|
|
# | + ... - files created during the group
|
|
|
|
|
|
|
|
|
|
# The directory the whole suite works in.
|
|
|
|
|
# Should be absolute to let the user `cd' at will.
|
|
|
|
|
at_suite_dir=$at_dir/$as_me.dir
|
|
|
|
|
# The file containing the suite ($at_dir might have changed since earlier).
|
|
|
|
|
at_suite_log=$at_dir/$as_me.log
|
|
|
|
|
# The directory containing helper files per test group.
|
|
|
|
|
at_helper_dir=$at_suite_dir/at-groups
|
|
|
|
|
# Stop file: if it exists, do not start new jobs.
|
|
|
|
|
at_stop_file=$at_suite_dir/at-stop
|
|
|
|
|
# The fifo used for the job dispatcher.
|
|
|
|
|
at_job_fifo=$at_suite_dir/at-job-fifo
|
|
|
|
|
|
|
|
|
|
if $at_clean; then
|
|
|
|
|
test -d "$at_suite_dir" &&
|
|
|
|
|
find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
|
|
|
|
|
rm -f -r "$at_suite_dir" "$at_suite_log"
|
|
|
|
|
exit $?
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Don't take risks: use only absolute directories in PATH.
|
|
|
|
|
#
|
|
|
|
|
# For stand-alone test suites (ie. atconfig was not found),
|
|
|
|
|
# AUTOTEST_PATH is relative to `.'.
|
|
|
|
|
#
|
|
|
|
|
# For embedded test suites, AUTOTEST_PATH is relative to the top level
|
|
|
|
|
# of the package. Then expand it into build/src parts, since users
|
|
|
|
|
# may create executables in both places.
|
|
|
|
|
AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
|
|
|
|
|
at_path=
|
|
|
|
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
|
|
|
for as_dir in $AUTOTEST_PATH $PATH
|
|
|
|
|
do
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
test -z "$as_dir" && as_dir=.
|
|
|
|
|
test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
|
|
|
|
|
case $as_dir in
|
|
|
|
|
[\\/]* | ?:[\\/]* )
|
|
|
|
|
as_fn_append at_path "$as_dir"
|
|
|
|
|
;;
|
|
|
|
|
* )
|
|
|
|
|
if test -z "$at_top_build_prefix"; then
|
|
|
|
|
# Stand-alone test suite.
|
|
|
|
|
as_fn_append at_path "$as_dir"
|
|
|
|
|
else
|
|
|
|
|
# Embedded test suite.
|
|
|
|
|
as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
|
|
|
|
|
as_fn_append at_path "$at_top_srcdir/$as_dir"
|
|
|
|
|
fi
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Now build and simplify PATH.
|
|
|
|
|
#
|
|
|
|
|
# There might be directories that don't exist, but don't redirect
|
|
|
|
|
# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
|
|
|
|
|
at_new_path=
|
|
|
|
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
|
|
|
for as_dir in $at_path
|
|
|
|
|
do
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
test -z "$as_dir" && as_dir=.
|
|
|
|
|
test -d "$as_dir" || continue
|
|
|
|
|
case $as_dir in
|
|
|
|
|
[\\/]* | ?:[\\/]* ) ;;
|
|
|
|
|
* ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
|
|
|
|
|
esac
|
|
|
|
|
case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
|
|
|
|
|
*$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
|
|
|
|
|
$PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
|
|
|
|
|
*) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
|
|
|
|
|
PATH=$at_new_path
|
|
|
|
|
export PATH
|
|
|
|
|
|
|
|
|
|
# Setting up the FDs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 5 is the log file. Not to be overwritten if `-d'.
|
|
|
|
|
if $at_debug_p; then
|
|
|
|
|
at_suite_log=/dev/null
|
|
|
|
|
else
|
|
|
|
|
: >"$at_suite_log"
|
|
|
|
|
fi
|
|
|
|
|
exec 5>>"$at_suite_log"
|
|
|
|
|
|
|
|
|
|
# Banners and logs.
|
|
|
|
|
$as_echo "## ------------------------------------------------------------------ ##
|
2013-12-06 12:04:52 +01:00
|
|
|
|
## Kyua - Command line interface 0.7 test suite: bootstrapping tests. ##
|
2013-02-26 09:24:42 +01:00
|
|
|
|
## ------------------------------------------------------------------ ##"
|
|
|
|
|
{
|
|
|
|
|
$as_echo "## ------------------------------------------------------------------ ##
|
2013-12-06 12:04:52 +01:00
|
|
|
|
## Kyua - Command line interface 0.7 test suite: bootstrapping tests. ##
|
2013-02-26 09:24:42 +01:00
|
|
|
|
## ------------------------------------------------------------------ ##"
|
|
|
|
|
echo
|
|
|
|
|
|
|
|
|
|
$as_echo "$as_me: command line was:"
|
|
|
|
|
$as_echo " \$ $0 $at_cli_args"
|
|
|
|
|
echo
|
|
|
|
|
|
|
|
|
|
# If ChangeLog exists, list a few lines in case it might help determining
|
|
|
|
|
# the exact version.
|
|
|
|
|
if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
|
|
|
|
|
$as_echo "## ---------- ##
|
|
|
|
|
## ChangeLog. ##
|
|
|
|
|
## ---------- ##"
|
|
|
|
|
echo
|
|
|
|
|
sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
|
|
|
|
|
echo
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
cat <<_ASUNAME
|
|
|
|
|
## --------- ##
|
|
|
|
|
## Platform. ##
|
|
|
|
|
## --------- ##
|
|
|
|
|
|
|
|
|
|
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
|
|
|
|
|
uname -m = `(uname -m) 2>/dev/null || echo unknown`
|
|
|
|
|
uname -r = `(uname -r) 2>/dev/null || echo unknown`
|
|
|
|
|
uname -s = `(uname -s) 2>/dev/null || echo unknown`
|
|
|
|
|
uname -v = `(uname -v) 2>/dev/null || echo unknown`
|
|
|
|
|
|
|
|
|
|
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
|
|
|
|
|
/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
|
|
|
|
|
|
|
|
|
|
/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
|
|
|
|
|
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
|
|
|
|
|
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
|
|
|
|
|
/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
|
|
|
|
|
/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
|
|
|
|
|
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
|
|
|
|
|
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
|
|
|
|
|
|
|
|
|
|
_ASUNAME
|
|
|
|
|
|
|
|
|
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
|
|
|
for as_dir in $PATH
|
|
|
|
|
do
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
test -z "$as_dir" && as_dir=.
|
|
|
|
|
$as_echo "PATH: $as_dir"
|
|
|
|
|
done
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
echo
|
|
|
|
|
|
|
|
|
|
# Contents of the config files.
|
|
|
|
|
for at_file in atconfig atlocal
|
|
|
|
|
do
|
|
|
|
|
test -r $at_file || continue
|
|
|
|
|
$as_echo "$as_me: $at_file:"
|
|
|
|
|
sed 's/^/| /' $at_file
|
|
|
|
|
echo
|
|
|
|
|
done
|
|
|
|
|
} >&5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## ------------------------- ##
|
|
|
|
|
## Autotest shell functions. ##
|
|
|
|
|
## ------------------------- ##
|
|
|
|
|
|
|
|
|
|
# at_fn_banner NUMBER
|
|
|
|
|
# -------------------
|
|
|
|
|
# Output banner NUMBER, provided the testsuite is running multiple groups and
|
|
|
|
|
# this particular banner has not yet been printed.
|
|
|
|
|
at_fn_banner ()
|
|
|
|
|
{
|
|
|
|
|
$at_print_banners || return 0
|
|
|
|
|
eval at_banner_text=\$at_banner_text_$1
|
|
|
|
|
test "x$at_banner_text" = "x " && return 0
|
|
|
|
|
eval "at_banner_text_$1=\" \""
|
|
|
|
|
if test -z "$at_banner_text"; then
|
|
|
|
|
$at_first || echo
|
|
|
|
|
else
|
|
|
|
|
$as_echo "$as_nl$at_banner_text$as_nl"
|
|
|
|
|
fi
|
|
|
|
|
} # at_fn_banner
|
|
|
|
|
|
|
|
|
|
# at_fn_check_prepare_notrace REASON LINE
|
|
|
|
|
# ---------------------------------------
|
|
|
|
|
# Perform AT_CHECK preparations for the command at LINE for an untraceable
|
|
|
|
|
# command; REASON is the reason for disabling tracing.
|
|
|
|
|
at_fn_check_prepare_notrace ()
|
|
|
|
|
{
|
|
|
|
|
$at_trace_echo "Not enabling shell tracing (command contains $1)"
|
|
|
|
|
$as_echo "$2" >"$at_check_line_file"
|
|
|
|
|
at_check_trace=: at_check_filter=:
|
|
|
|
|
: >"$at_stdout"; : >"$at_stderr"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# at_fn_check_prepare_trace LINE
|
|
|
|
|
# ------------------------------
|
|
|
|
|
# Perform AT_CHECK preparations for the command at LINE for a traceable
|
|
|
|
|
# command.
|
|
|
|
|
at_fn_check_prepare_trace ()
|
|
|
|
|
{
|
|
|
|
|
$as_echo "$1" >"$at_check_line_file"
|
|
|
|
|
at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
|
|
|
|
|
: >"$at_stdout"; : >"$at_stderr"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# at_fn_check_prepare_dynamic COMMAND LINE
|
|
|
|
|
# ----------------------------------------
|
|
|
|
|
# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
|
|
|
|
|
# preparation function.
|
|
|
|
|
at_fn_check_prepare_dynamic ()
|
|
|
|
|
{
|
|
|
|
|
case $1 in
|
|
|
|
|
*$as_nl*)
|
|
|
|
|
at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
|
|
|
|
|
*)
|
|
|
|
|
at_fn_check_prepare_trace "$2" ;;
|
|
|
|
|
esac
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# at_fn_filter_trace
|
|
|
|
|
# ------------------
|
|
|
|
|
# Remove the lines in the file "$at_stderr" generated by "set -x" and print
|
|
|
|
|
# them to stderr.
|
|
|
|
|
at_fn_filter_trace ()
|
|
|
|
|
{
|
|
|
|
|
mv "$at_stderr" "$at_stder1"
|
|
|
|
|
grep '^ *+' "$at_stder1" >&2
|
|
|
|
|
grep -v '^ *+' "$at_stder1" >"$at_stderr"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# at_fn_log_failure FILE-LIST
|
|
|
|
|
# ---------------------------
|
|
|
|
|
# Copy the files in the list on stdout with a "> " prefix, and exit the shell
|
|
|
|
|
# with a failure exit code.
|
|
|
|
|
at_fn_log_failure ()
|
|
|
|
|
{
|
|
|
|
|
for file
|
|
|
|
|
do $as_echo "$file:"; sed 's/^/> /' "$file"; done
|
|
|
|
|
echo 1 > "$at_status_file"
|
|
|
|
|
exit 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# at_fn_check_skip EXIT-CODE LINE
|
|
|
|
|
# -------------------------------
|
|
|
|
|
# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
|
|
|
|
|
# the test group subshell with that same exit code. Use LINE in any report
|
|
|
|
|
# about test failure.
|
|
|
|
|
at_fn_check_skip ()
|
|
|
|
|
{
|
|
|
|
|
case $1 in
|
|
|
|
|
99) echo 99 > "$at_status_file"; at_failed=:
|
|
|
|
|
$as_echo "$2: hard failure"; exit 99;;
|
|
|
|
|
77) echo 77 > "$at_status_file"; exit 77;;
|
|
|
|
|
esac
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# at_fn_check_status EXPECTED EXIT-CODE LINE
|
|
|
|
|
# ------------------------------------------
|
|
|
|
|
# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
|
|
|
|
|
# Otherwise, if it is 77 or 99, exit the test group subshell with that same
|
|
|
|
|
# exit code; if it is anything else print an error message referring to LINE,
|
|
|
|
|
# and fail the test.
|
|
|
|
|
at_fn_check_status ()
|
|
|
|
|
{
|
|
|
|
|
case $2 in
|
|
|
|
|
$1 ) ;;
|
|
|
|
|
77) echo 77 > "$at_status_file"; exit 77;;
|
|
|
|
|
99) echo 99 > "$at_status_file"; at_failed=:
|
|
|
|
|
$as_echo "$3: hard failure"; exit 99;;
|
|
|
|
|
*) $as_echo "$3: exit code was $2, expected $1"
|
|
|
|
|
at_failed=:;;
|
|
|
|
|
esac
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# at_fn_diff_devnull FILE
|
|
|
|
|
# -----------------------
|
|
|
|
|
# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
|
|
|
|
|
# invocations.
|
|
|
|
|
at_fn_diff_devnull ()
|
|
|
|
|
{
|
|
|
|
|
test -s "$1" || return 0
|
|
|
|
|
$at_diff "$at_devnull" "$1"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# at_fn_test NUMBER
|
|
|
|
|
# -----------------
|
|
|
|
|
# Parse out test NUMBER from the tail of this file.
|
|
|
|
|
at_fn_test ()
|
|
|
|
|
{
|
|
|
|
|
eval at_sed=\$at_sed$1
|
|
|
|
|
sed "$at_sed" "$at_myself" > "$at_test_source"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# at_fn_create_debugging_script
|
|
|
|
|
# -----------------------------
|
|
|
|
|
# Create the debugging script $at_group_dir/run which will reproduce the
|
|
|
|
|
# current test group.
|
|
|
|
|
at_fn_create_debugging_script ()
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
echo "#! /bin/sh" &&
|
|
|
|
|
echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
|
|
|
|
|
$as_echo "cd '$at_dir'" &&
|
|
|
|
|
$as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
|
|
|
|
|
echo 'exit 1'
|
|
|
|
|
} >"$at_group_dir/run" &&
|
|
|
|
|
chmod +x "$at_group_dir/run"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
## -------------------------------- ##
|
|
|
|
|
## End of autotest shell functions. ##
|
|
|
|
|
## -------------------------------- ##
|
|
|
|
|
{
|
|
|
|
|
$as_echo "## ---------------- ##
|
|
|
|
|
## Tested programs. ##
|
|
|
|
|
## ---------------- ##"
|
|
|
|
|
echo
|
|
|
|
|
} >&5
|
|
|
|
|
|
|
|
|
|
# Report what programs are being tested.
|
|
|
|
|
for at_program in : $at_tested
|
|
|
|
|
do
|
|
|
|
|
test "$at_program" = : && continue
|
|
|
|
|
case $at_program in
|
|
|
|
|
[\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
|
|
|
|
|
* )
|
|
|
|
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
|
|
|
for as_dir in $PATH
|
|
|
|
|
do
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
test -z "$as_dir" && as_dir=.
|
|
|
|
|
test -f "$as_dir/$at_program" && break
|
|
|
|
|
done
|
|
|
|
|
IFS=$as_save_IFS
|
|
|
|
|
|
|
|
|
|
at_program_=$as_dir/$at_program ;;
|
|
|
|
|
esac
|
|
|
|
|
if test -f "$at_program_"; then
|
|
|
|
|
{
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:29: $at_program_ --version"
|
|
|
|
|
"$at_program_" --version </dev/null
|
|
|
|
|
echo
|
|
|
|
|
} >&5 2>&1
|
|
|
|
|
else
|
|
|
|
|
as_fn_error $? "cannot find $at_program" "$LINENO" 5
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
$as_echo "## ------------------ ##
|
|
|
|
|
## Running the tests. ##
|
|
|
|
|
## ------------------ ##"
|
|
|
|
|
} >&5
|
|
|
|
|
|
|
|
|
|
at_start_date=`date`
|
|
|
|
|
at_start_time=`date +%s 2>/dev/null`
|
|
|
|
|
$as_echo "$as_me: starting at: $at_start_date" >&5
|
|
|
|
|
|
|
|
|
|
# Create the master directory if it doesn't already exist.
|
|
|
|
|
as_dir="$at_suite_dir"; as_fn_mkdir_p ||
|
|
|
|
|
as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
|
|
|
|
|
|
|
|
|
|
# Can we diff with `/dev/null'? DU 5.0 refuses.
|
|
|
|
|
if diff /dev/null /dev/null >/dev/null 2>&1; then
|
|
|
|
|
at_devnull=/dev/null
|
|
|
|
|
else
|
|
|
|
|
at_devnull=$at_suite_dir/devnull
|
|
|
|
|
>"$at_devnull"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Use `diff -u' when possible.
|
|
|
|
|
if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
|
|
|
|
|
then
|
|
|
|
|
at_diff='diff -u'
|
|
|
|
|
else
|
|
|
|
|
at_diff=diff
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Get the last needed group.
|
|
|
|
|
for at_group in : $at_groups; do :; done
|
|
|
|
|
|
|
|
|
|
# Extract the start and end lines of each test group at the tail
|
|
|
|
|
# of this file
|
|
|
|
|
awk '
|
|
|
|
|
BEGIN { FS="" }
|
|
|
|
|
/^#AT_START_/ {
|
|
|
|
|
start = NR
|
|
|
|
|
}
|
|
|
|
|
/^#AT_STOP_/ {
|
|
|
|
|
test = substr ($ 0, 10)
|
|
|
|
|
print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
|
|
|
|
|
if (test == "'"$at_group"'") exit
|
|
|
|
|
}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
|
|
|
|
|
. "$at_suite_dir/at-source-lines" ||
|
|
|
|
|
as_fn_error $? "cannot create test line number cache" "$LINENO" 5
|
|
|
|
|
rm -f "$at_suite_dir/at-source-lines"
|
|
|
|
|
|
|
|
|
|
# Set number of jobs for `-j'; avoid more jobs than test groups.
|
|
|
|
|
set X $at_groups; shift; at_max_jobs=$#
|
|
|
|
|
if test $at_max_jobs -eq 0; then
|
|
|
|
|
at_jobs=1
|
|
|
|
|
fi
|
|
|
|
|
if test $at_jobs -ne 1 &&
|
|
|
|
|
{ test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
|
|
|
|
|
at_jobs=$at_max_jobs
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# If parallel mode, don't output banners, don't split summary lines.
|
|
|
|
|
if test $at_jobs -ne 1; then
|
|
|
|
|
at_print_banners=false
|
|
|
|
|
at_quiet=:
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Set up helper dirs.
|
|
|
|
|
rm -rf "$at_helper_dir" &&
|
|
|
|
|
mkdir "$at_helper_dir" &&
|
|
|
|
|
cd "$at_helper_dir" &&
|
|
|
|
|
{ test -z "$at_groups" || mkdir $at_groups; } ||
|
|
|
|
|
as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
|
|
|
|
|
|
|
|
|
|
# Functions for running a test group. We leave the actual
|
|
|
|
|
# test group execution outside of a shell function in order
|
|
|
|
|
# to avoid hitting zsh 4.x exit status bugs.
|
|
|
|
|
|
|
|
|
|
# at_fn_group_prepare
|
|
|
|
|
# -------------------
|
|
|
|
|
# Prepare for running a test group.
|
|
|
|
|
at_fn_group_prepare ()
|
|
|
|
|
{
|
|
|
|
|
# The directory for additional per-group helper files.
|
|
|
|
|
at_job_dir=$at_helper_dir/$at_group
|
|
|
|
|
# The file containing the location of the last AT_CHECK.
|
|
|
|
|
at_check_line_file=$at_job_dir/check-line
|
|
|
|
|
# The file containing the exit status of the last command.
|
|
|
|
|
at_status_file=$at_job_dir/status
|
|
|
|
|
# The files containing the output of the tested commands.
|
|
|
|
|
at_stdout=$at_job_dir/stdout
|
|
|
|
|
at_stder1=$at_job_dir/stder1
|
|
|
|
|
at_stderr=$at_job_dir/stderr
|
|
|
|
|
# The file containing the code for a test group.
|
|
|
|
|
at_test_source=$at_job_dir/test-source
|
|
|
|
|
# The file containing dates.
|
|
|
|
|
at_times_file=$at_job_dir/times
|
|
|
|
|
|
|
|
|
|
# Be sure to come back to the top test directory.
|
|
|
|
|
cd "$at_suite_dir"
|
|
|
|
|
|
|
|
|
|
# Clearly separate the test groups when verbose.
|
|
|
|
|
$at_first || $at_verbose echo
|
|
|
|
|
|
|
|
|
|
at_group_normalized=$at_group
|
|
|
|
|
|
|
|
|
|
eval 'while :; do
|
|
|
|
|
case $at_group_normalized in #(
|
|
|
|
|
'"$at_format"'*) break;;
|
|
|
|
|
esac
|
|
|
|
|
at_group_normalized=0$at_group_normalized
|
|
|
|
|
done'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Create a fresh directory for the next test group, and enter.
|
|
|
|
|
# If one already exists, the user may have invoked ./run from
|
|
|
|
|
# within that directory; we remove the contents, but not the
|
|
|
|
|
# directory itself, so that we aren't pulling the rug out from
|
|
|
|
|
# under the shell's notion of the current directory.
|
|
|
|
|
at_group_dir=$at_suite_dir/$at_group_normalized
|
|
|
|
|
at_group_log=$at_group_dir/$as_me.log
|
|
|
|
|
if test -d "$at_group_dir"; then
|
|
|
|
|
find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
|
|
|
|
|
rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
|
|
|
|
|
fi ||
|
|
|
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
|
|
|
|
|
$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
|
|
|
|
|
# Be tolerant if the above `rm' was not able to remove the directory.
|
|
|
|
|
as_dir="$at_group_dir"; as_fn_mkdir_p
|
|
|
|
|
|
|
|
|
|
echo 0 > "$at_status_file"
|
|
|
|
|
|
|
|
|
|
# In verbose mode, append to the log file *and* show on
|
|
|
|
|
# the standard output; in quiet mode only write to the log.
|
|
|
|
|
if test -z "$at_verbose"; then
|
|
|
|
|
at_tee_pipe='tee -a "$at_group_log"'
|
|
|
|
|
else
|
|
|
|
|
at_tee_pipe='cat >> "$at_group_log"'
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
|
|
|
|
|
# -------------------------------------------------
|
|
|
|
|
# Declare the test group ORDINAL, located at LINE with group description DESC,
|
|
|
|
|
# and residing under BANNER. Use PAD to align the status column.
|
|
|
|
|
at_fn_group_banner ()
|
|
|
|
|
{
|
|
|
|
|
at_setup_line="$2"
|
|
|
|
|
test -n "$5" && at_fn_banner $5
|
|
|
|
|
at_desc="$3"
|
|
|
|
|
case $1 in
|
|
|
|
|
[0-9]) at_desc_line=" $1: ";;
|
|
|
|
|
[0-9][0-9]) at_desc_line=" $1: " ;;
|
|
|
|
|
*) at_desc_line="$1: " ;;
|
|
|
|
|
esac
|
|
|
|
|
as_fn_append at_desc_line "$3$4"
|
|
|
|
|
$at_quiet $as_echo_n "$at_desc_line"
|
|
|
|
|
echo "# -*- compilation -*-" >> "$at_group_log"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# at_fn_group_postprocess
|
|
|
|
|
# -----------------------
|
|
|
|
|
# Perform cleanup after running a test group.
|
|
|
|
|
at_fn_group_postprocess ()
|
|
|
|
|
{
|
|
|
|
|
# Be sure to come back to the suite directory, in particular
|
|
|
|
|
# since below we might `rm' the group directory we are in currently.
|
|
|
|
|
cd "$at_suite_dir"
|
|
|
|
|
|
|
|
|
|
if test ! -f "$at_check_line_file"; then
|
|
|
|
|
sed "s/^ */$as_me: WARNING: /" <<_ATEOF
|
|
|
|
|
A failure happened in a test group before any test could be
|
|
|
|
|
run. This means that test suite is improperly designed. Please
|
|
|
|
|
report this failure to <kyua-discuss@googlegroups.com>.
|
|
|
|
|
_ATEOF
|
|
|
|
|
$as_echo "$at_setup_line" >"$at_check_line_file"
|
|
|
|
|
at_status=99
|
|
|
|
|
fi
|
|
|
|
|
$at_verbose $as_echo_n "$at_group. $at_setup_line: "
|
|
|
|
|
$as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
|
|
|
|
|
case $at_xfail:$at_status in
|
|
|
|
|
yes:0)
|
|
|
|
|
at_msg="UNEXPECTED PASS"
|
|
|
|
|
at_res=xpass
|
|
|
|
|
at_errexit=$at_errexit_p
|
|
|
|
|
at_color=$at_red
|
|
|
|
|
;;
|
|
|
|
|
no:0)
|
|
|
|
|
at_msg="ok"
|
|
|
|
|
at_res=pass
|
|
|
|
|
at_errexit=false
|
|
|
|
|
at_color=$at_grn
|
|
|
|
|
;;
|
|
|
|
|
*:77)
|
|
|
|
|
at_msg='skipped ('`cat "$at_check_line_file"`')'
|
|
|
|
|
at_res=skip
|
|
|
|
|
at_errexit=false
|
|
|
|
|
at_color=$at_blu
|
|
|
|
|
;;
|
|
|
|
|
no:* | *:99)
|
|
|
|
|
at_msg='FAILED ('`cat "$at_check_line_file"`')'
|
|
|
|
|
at_res=fail
|
|
|
|
|
at_errexit=$at_errexit_p
|
|
|
|
|
at_color=$at_red
|
|
|
|
|
;;
|
|
|
|
|
yes:*)
|
|
|
|
|
at_msg='expected failure ('`cat "$at_check_line_file"`')'
|
|
|
|
|
at_res=xfail
|
|
|
|
|
at_errexit=false
|
|
|
|
|
at_color=$at_lgn
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
echo "$at_res" > "$at_job_dir/$at_res"
|
|
|
|
|
# In parallel mode, output the summary line only afterwards.
|
|
|
|
|
if test $at_jobs -ne 1 && test -n "$at_verbose"; then
|
|
|
|
|
$as_echo "$at_desc_line $at_color$at_msg$at_std"
|
|
|
|
|
else
|
|
|
|
|
# Make sure there is a separator even with long titles.
|
|
|
|
|
$as_echo " $at_color$at_msg$at_std"
|
|
|
|
|
fi
|
|
|
|
|
at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
|
|
|
|
|
case $at_status in
|
|
|
|
|
0|77)
|
|
|
|
|
# $at_times_file is only available if the group succeeded.
|
|
|
|
|
# We're not including the group log, so the success message
|
|
|
|
|
# is written in the global log separately. But we also
|
|
|
|
|
# write to the group log in case they're using -d.
|
|
|
|
|
if test -f "$at_times_file"; then
|
|
|
|
|
at_log_msg="$at_log_msg ("`sed 1d "$at_times_file"`')'
|
|
|
|
|
rm -f "$at_times_file"
|
|
|
|
|
fi
|
|
|
|
|
$as_echo "$at_log_msg" >> "$at_group_log"
|
|
|
|
|
$as_echo "$at_log_msg" >&5
|
|
|
|
|
|
|
|
|
|
# Cleanup the group directory, unless the user wants the files
|
|
|
|
|
# or the success was unexpected.
|
|
|
|
|
if $at_debug_p || test $at_res = xpass; then
|
|
|
|
|
at_fn_create_debugging_script
|
|
|
|
|
if test $at_res = xpass && $at_errexit; then
|
|
|
|
|
echo stop > "$at_stop_file"
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
if test -d "$at_group_dir"; then
|
|
|
|
|
find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
|
|
|
|
|
rm -fr "$at_group_dir"
|
|
|
|
|
fi
|
|
|
|
|
rm -f "$at_test_source"
|
|
|
|
|
fi
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
# Upon failure, include the log into the testsuite's global
|
|
|
|
|
# log. The failure message is written in the group log. It
|
|
|
|
|
# is later included in the global log.
|
|
|
|
|
$as_echo "$at_log_msg" >> "$at_group_log"
|
|
|
|
|
|
|
|
|
|
# Upon failure, keep the group directory for autopsy, and create
|
|
|
|
|
# the debugging script. With -e, do not start any further tests.
|
|
|
|
|
at_fn_create_debugging_script
|
|
|
|
|
if $at_errexit; then
|
|
|
|
|
echo stop > "$at_stop_file"
|
|
|
|
|
fi
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## ------------ ##
|
|
|
|
|
## Driver loop. ##
|
|
|
|
|
## ------------ ##
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (set -m && set +m && set +b) >/dev/null 2>&1; then
|
|
|
|
|
set +b
|
|
|
|
|
at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
|
|
|
|
|
else
|
|
|
|
|
at_job_control_on=: at_job_control_off=: at_job_group=
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
for at_signal in 1 2 15; do
|
|
|
|
|
trap 'set +x; set +e
|
|
|
|
|
$at_job_control_off
|
|
|
|
|
at_signal='"$at_signal"'
|
|
|
|
|
echo stop > "$at_stop_file"
|
|
|
|
|
trap "" $at_signal
|
|
|
|
|
at_pgids=
|
|
|
|
|
for at_pgid in `jobs -p 2>/dev/null`; do
|
|
|
|
|
at_pgids="$at_pgids $at_job_group$at_pgid"
|
|
|
|
|
done
|
|
|
|
|
test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
|
|
|
|
|
wait
|
|
|
|
|
if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
|
|
|
|
|
echo >&2
|
|
|
|
|
fi
|
|
|
|
|
at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
|
|
|
|
|
set x $at_signame
|
|
|
|
|
test 1 -gt 2 && at_signame=$at_signal
|
|
|
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
|
|
|
|
|
$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
|
|
|
|
|
as_fn_arith 128 + $at_signal && exit_status=$as_val
|
|
|
|
|
as_fn_exit $exit_status' $at_signal
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
rm -f "$at_stop_file"
|
|
|
|
|
at_first=:
|
|
|
|
|
|
|
|
|
|
if test $at_jobs -ne 1 &&
|
|
|
|
|
rm -f "$at_job_fifo" &&
|
|
|
|
|
test -n "$at_job_group" &&
|
|
|
|
|
( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
|
|
|
|
|
then
|
|
|
|
|
# FIFO job dispatcher.
|
|
|
|
|
|
|
|
|
|
trap 'at_pids=
|
|
|
|
|
for at_pid in `jobs -p`; do
|
|
|
|
|
at_pids="$at_pids $at_job_group$at_pid"
|
|
|
|
|
done
|
|
|
|
|
if test -n "$at_pids"; then
|
|
|
|
|
at_sig=TSTP
|
|
|
|
|
test "${TMOUT+set}" = set && at_sig=STOP
|
|
|
|
|
kill -$at_sig $at_pids 2>/dev/null
|
|
|
|
|
fi
|
|
|
|
|
kill -STOP $$
|
|
|
|
|
test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
|
|
|
|
|
|
|
|
|
|
echo
|
|
|
|
|
# Turn jobs into a list of numbers, starting from 1.
|
|
|
|
|
at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
|
|
|
|
|
|
|
|
|
|
set X $at_joblist
|
|
|
|
|
shift
|
|
|
|
|
for at_group in $at_groups; do
|
|
|
|
|
$at_job_control_on 2>/dev/null
|
|
|
|
|
(
|
|
|
|
|
# Start one test group.
|
|
|
|
|
$at_job_control_off
|
|
|
|
|
if $at_first; then
|
|
|
|
|
exec 7>"$at_job_fifo"
|
|
|
|
|
else
|
|
|
|
|
exec 6<&-
|
|
|
|
|
fi
|
|
|
|
|
trap 'set +x; set +e
|
|
|
|
|
trap "" PIPE
|
|
|
|
|
echo stop > "$at_stop_file"
|
|
|
|
|
echo >&7
|
|
|
|
|
as_fn_exit 141' PIPE
|
|
|
|
|
at_fn_group_prepare
|
|
|
|
|
if cd "$at_group_dir" &&
|
|
|
|
|
at_fn_test $at_group &&
|
|
|
|
|
. "$at_test_source"
|
|
|
|
|
then :; else
|
|
|
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
|
|
|
|
|
$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
|
|
|
|
|
at_failed=:
|
|
|
|
|
fi
|
|
|
|
|
at_fn_group_postprocess
|
|
|
|
|
echo >&7
|
|
|
|
|
) &
|
|
|
|
|
$at_job_control_off
|
|
|
|
|
if $at_first; then
|
|
|
|
|
at_first=false
|
|
|
|
|
exec 6<"$at_job_fifo" 7>"$at_job_fifo"
|
|
|
|
|
fi
|
|
|
|
|
shift # Consume one token.
|
|
|
|
|
if test $# -gt 0; then :; else
|
|
|
|
|
read at_token <&6 || break
|
|
|
|
|
set x $*
|
|
|
|
|
fi
|
|
|
|
|
test -f "$at_stop_file" && break
|
|
|
|
|
done
|
|
|
|
|
exec 7>&-
|
|
|
|
|
# Read back the remaining ($at_jobs - 1) tokens.
|
|
|
|
|
set X $at_joblist
|
|
|
|
|
shift
|
|
|
|
|
if test $# -gt 0; then
|
|
|
|
|
shift
|
|
|
|
|
for at_job
|
|
|
|
|
do
|
|
|
|
|
read at_token
|
|
|
|
|
done <&6
|
|
|
|
|
fi
|
|
|
|
|
exec 6<&-
|
|
|
|
|
wait
|
|
|
|
|
else
|
|
|
|
|
# Run serially, avoid forks and other potential surprises.
|
|
|
|
|
for at_group in $at_groups; do
|
|
|
|
|
at_fn_group_prepare
|
|
|
|
|
if cd "$at_group_dir" &&
|
|
|
|
|
at_fn_test $at_group &&
|
|
|
|
|
. "$at_test_source"; then :; else
|
|
|
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
|
|
|
|
|
$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
|
|
|
|
|
at_failed=:
|
|
|
|
|
fi
|
|
|
|
|
at_fn_group_postprocess
|
|
|
|
|
test -f "$at_stop_file" && break
|
|
|
|
|
at_first=false
|
|
|
|
|
done
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Wrap up the test suite with summary statistics.
|
|
|
|
|
cd "$at_helper_dir"
|
|
|
|
|
|
|
|
|
|
# Use ?..???? when the list must remain sorted, the faster * otherwise.
|
|
|
|
|
at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
|
|
|
|
|
at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
|
|
|
|
|
at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
|
|
|
|
|
at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
|
|
|
|
|
echo $f; done | sed '/?/d; s,/xpass,,'`
|
|
|
|
|
at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
|
|
|
|
|
echo $f; done | sed '/?/d; s,/fail,,'`
|
|
|
|
|
|
|
|
|
|
set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
|
|
|
|
|
shift; at_group_count=$#
|
|
|
|
|
set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
|
|
|
|
|
set X $at_xfail_list; shift; at_xfail_count=$#
|
|
|
|
|
set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
|
|
|
|
|
set X $at_skip_list; shift; at_skip_count=$#
|
|
|
|
|
|
|
|
|
|
as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
|
|
|
|
|
as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
|
|
|
|
|
as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
|
|
|
|
|
|
|
|
|
|
# Back to the top directory.
|
|
|
|
|
cd "$at_dir"
|
|
|
|
|
rm -rf "$at_helper_dir"
|
|
|
|
|
|
|
|
|
|
# Compute the duration of the suite.
|
|
|
|
|
at_stop_date=`date`
|
|
|
|
|
at_stop_time=`date +%s 2>/dev/null`
|
|
|
|
|
$as_echo "$as_me: ending at: $at_stop_date" >&5
|
|
|
|
|
case $at_start_time,$at_stop_time in
|
|
|
|
|
[0-9]*,[0-9]*)
|
|
|
|
|
as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
|
|
|
|
|
as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
|
|
|
|
|
as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
|
|
|
|
|
as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
|
|
|
|
|
as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
|
|
|
|
|
at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
|
|
|
|
|
$as_echo "$as_me: test suite duration: $at_duration" >&5
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
echo
|
|
|
|
|
$as_echo "## ------------- ##
|
|
|
|
|
## Test results. ##
|
|
|
|
|
## ------------- ##"
|
|
|
|
|
echo
|
|
|
|
|
{
|
|
|
|
|
echo
|
|
|
|
|
$as_echo "## ------------- ##
|
|
|
|
|
## Test results. ##
|
|
|
|
|
## ------------- ##"
|
|
|
|
|
echo
|
|
|
|
|
} >&5
|
|
|
|
|
|
|
|
|
|
if test $at_run_count = 1; then
|
|
|
|
|
at_result="1 test"
|
|
|
|
|
at_were=was
|
|
|
|
|
else
|
|
|
|
|
at_result="$at_run_count tests"
|
|
|
|
|
at_were=were
|
|
|
|
|
fi
|
|
|
|
|
if $at_errexit_p && test $at_unexpected_count != 0; then
|
|
|
|
|
if test $at_xpass_count = 1; then
|
|
|
|
|
at_result="$at_result $at_were run, one passed"
|
|
|
|
|
else
|
|
|
|
|
at_result="$at_result $at_were run, one failed"
|
|
|
|
|
fi
|
|
|
|
|
at_result="$at_result unexpectedly and inhibited subsequent tests."
|
|
|
|
|
at_color=$at_red
|
|
|
|
|
else
|
|
|
|
|
# Don't you just love exponential explosion of the number of cases?
|
|
|
|
|
at_color=$at_red
|
|
|
|
|
case $at_xpass_count:$at_fail_count:$at_xfail_count in
|
|
|
|
|
# So far, so good.
|
|
|
|
|
0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
|
|
|
|
|
0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
|
|
|
|
|
|
|
|
|
|
# Some unexpected failures
|
|
|
|
|
0:*:0) at_result="$at_result $at_were run,
|
|
|
|
|
$at_fail_count failed unexpectedly." ;;
|
|
|
|
|
|
|
|
|
|
# Some failures, both expected and unexpected
|
|
|
|
|
0:*:1) at_result="$at_result $at_were run,
|
|
|
|
|
$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
|
|
|
|
|
0:*:*) at_result="$at_result $at_were run,
|
|
|
|
|
$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
|
|
|
|
|
|
|
|
|
|
# No unexpected failures, but some xpasses
|
|
|
|
|
*:0:*) at_result="$at_result $at_were run,
|
|
|
|
|
$at_xpass_count passed unexpectedly." ;;
|
|
|
|
|
|
|
|
|
|
# No expected failures, but failures and xpasses
|
|
|
|
|
*:1:0) at_result="$at_result $at_were run,
|
|
|
|
|
$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
|
|
|
|
|
*:*:0) at_result="$at_result $at_were run,
|
|
|
|
|
$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
|
|
|
|
|
|
|
|
|
|
# All of them.
|
|
|
|
|
*:*:1) at_result="$at_result $at_were run,
|
|
|
|
|
$at_xpass_count passed unexpectedly,
|
|
|
|
|
$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
|
|
|
|
|
*:*:*) at_result="$at_result $at_were run,
|
|
|
|
|
$at_xpass_count passed unexpectedly,
|
|
|
|
|
$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
if test $at_skip_count = 0 && test $at_run_count -gt 1; then
|
|
|
|
|
at_result="All $at_result"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Now put skips in the mix.
|
|
|
|
|
case $at_skip_count in
|
|
|
|
|
0) ;;
|
|
|
|
|
1) at_result="$at_result
|
|
|
|
|
1 test was skipped." ;;
|
|
|
|
|
*) at_result="$at_result
|
|
|
|
|
$at_skip_count tests were skipped." ;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
if test $at_unexpected_count = 0; then
|
|
|
|
|
echo "$at_color$at_result$at_std"
|
|
|
|
|
echo "$at_result" >&5
|
|
|
|
|
else
|
|
|
|
|
echo "${at_color}ERROR: $at_result$at_std" >&2
|
|
|
|
|
echo "ERROR: $at_result" >&5
|
|
|
|
|
{
|
|
|
|
|
echo
|
|
|
|
|
$as_echo "## ------------------------ ##
|
|
|
|
|
## Summary of the failures. ##
|
|
|
|
|
## ------------------------ ##"
|
|
|
|
|
|
|
|
|
|
# Summary of failed and skipped tests.
|
|
|
|
|
if test $at_fail_count != 0; then
|
|
|
|
|
echo "Failed tests:"
|
|
|
|
|
$SHELL "$at_myself" $at_fail_list --list
|
|
|
|
|
echo
|
|
|
|
|
fi
|
|
|
|
|
if test $at_skip_count != 0; then
|
|
|
|
|
echo "Skipped tests:"
|
|
|
|
|
$SHELL "$at_myself" $at_skip_list --list
|
|
|
|
|
echo
|
|
|
|
|
fi
|
|
|
|
|
if test $at_xpass_count != 0; then
|
|
|
|
|
echo "Unexpected passes:"
|
|
|
|
|
$SHELL "$at_myself" $at_xpass_list --list
|
|
|
|
|
echo
|
|
|
|
|
fi
|
|
|
|
|
if test $at_fail_count != 0; then
|
|
|
|
|
$as_echo "## ---------------------- ##
|
|
|
|
|
## Detailed failed tests. ##
|
|
|
|
|
## ---------------------- ##"
|
|
|
|
|
echo
|
|
|
|
|
for at_group in $at_fail_list
|
|
|
|
|
do
|
|
|
|
|
at_group_normalized=$at_group
|
|
|
|
|
|
|
|
|
|
eval 'while :; do
|
|
|
|
|
case $at_group_normalized in #(
|
|
|
|
|
'"$at_format"'*) break;;
|
|
|
|
|
esac
|
|
|
|
|
at_group_normalized=0$at_group_normalized
|
|
|
|
|
done'
|
|
|
|
|
|
|
|
|
|
cat "$at_suite_dir/$at_group_normalized/$as_me.log"
|
|
|
|
|
echo
|
|
|
|
|
done
|
|
|
|
|
echo
|
|
|
|
|
fi
|
|
|
|
|
if test -n "$at_top_srcdir"; then
|
|
|
|
|
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
|
|
|
|
|
## ${at_top_build_prefix}config.log ##
|
|
|
|
|
_ASBOX
|
|
|
|
|
sed 's/^/| /' ${at_top_build_prefix}config.log
|
|
|
|
|
echo
|
|
|
|
|
fi
|
|
|
|
|
} >&5
|
|
|
|
|
|
|
|
|
|
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
|
|
|
|
|
## $as_me.log was created. ##
|
|
|
|
|
_ASBOX
|
|
|
|
|
|
|
|
|
|
echo
|
|
|
|
|
if $at_debug_p; then
|
|
|
|
|
at_msg='per-test log files'
|
|
|
|
|
else
|
|
|
|
|
at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
|
|
|
|
|
fi
|
|
|
|
|
$as_echo "Please send $at_msg and all information you think might help:
|
|
|
|
|
|
|
|
|
|
To: <kyua-discuss@googlegroups.com>
|
2013-12-06 12:04:52 +01:00
|
|
|
|
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}
|
2013-02-26 09:24:42 +01:00
|
|
|
|
|
|
|
|
|
You may investigate any problem if you feel able to do so, in which
|
|
|
|
|
case the test suite provides a good starting point. Its output may
|
|
|
|
|
be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
|
|
|
|
|
"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
exit 0
|
|
|
|
|
|
|
|
|
|
## ------------- ##
|
|
|
|
|
## Actual tests. ##
|
|
|
|
|
## ------------- ##
|
|
|
|
|
#AT_START_1
|
|
|
|
|
at_fn_group_banner 1 'testsuite.at:70' \
|
|
|
|
|
"test program crashes in test list" " "
|
|
|
|
|
at_xfail=no
|
|
|
|
|
(
|
|
|
|
|
$as_echo "1. $at_setup_line: testing $at_desc ..."
|
|
|
|
|
$at_traceon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cat >Kyuafile <<'_ATEOF'
|
|
|
|
|
|
|
|
|
|
syntax(2)
|
|
|
|
|
test_suite("bootstrap")
|
|
|
|
|
atf_test_program{name="plain_helpers"}
|
|
|
|
|
_ATEOF
|
|
|
|
|
|
|
|
|
|
ln -s $({
|
|
|
|
|
old=$(pwd)
|
|
|
|
|
cd "${at_suite_dir}"
|
|
|
|
|
# We need to locate a build product, not a source file, because the
|
|
|
|
|
# test suite may be run outside of the source tree (think distcheck).
|
|
|
|
|
while test $(pwd) != '/' -a ! -e engine/test_case_test; do
|
|
|
|
|
cd ..
|
|
|
|
|
done
|
|
|
|
|
topdir=$(pwd)
|
|
|
|
|
cd ${old}
|
|
|
|
|
echo ${topdir}
|
|
|
|
|
})/bootstrap/plain_helpers plain_helpers
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:74: HOME=\$(pwd) HELPER=\"abort_test_cases_list\" kyua --config=none test --store=bootstrap.db"
|
|
|
|
|
at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:74"
|
|
|
|
|
( $at_check_trace; HOME=$(pwd) HELPER="abort_test_cases_list" kyua --config=none test --store=bootstrap.db
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; tee stdout <"$at_stdout"
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:74"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
re='plain_helpers:__test_cases_list__.*broken.*Test program list did not return success'
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:76: grep \"\${re}\" stdout"
|
|
|
|
|
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "testsuite.at:76"
|
|
|
|
|
( $at_check_trace; grep "${re}" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:76"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set +x
|
|
|
|
|
$at_times_p && times >"$at_times_file"
|
|
|
|
|
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
|
|
|
|
|
read at_status <"$at_status_file"
|
|
|
|
|
#AT_STOP_1
|
|
|
|
|
#AT_START_2
|
|
|
|
|
at_fn_group_banner 2 'testsuite.at:81' \
|
|
|
|
|
"test program prints an empty test list" " "
|
|
|
|
|
at_xfail=no
|
|
|
|
|
(
|
|
|
|
|
$as_echo "2. $at_setup_line: testing $at_desc ..."
|
|
|
|
|
$at_traceon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cat >Kyuafile <<'_ATEOF'
|
|
|
|
|
|
|
|
|
|
syntax(2)
|
|
|
|
|
test_suite("bootstrap")
|
|
|
|
|
atf_test_program{name="plain_helpers"}
|
|
|
|
|
_ATEOF
|
|
|
|
|
|
|
|
|
|
ln -s $({
|
|
|
|
|
old=$(pwd)
|
|
|
|
|
cd "${at_suite_dir}"
|
|
|
|
|
# We need to locate a build product, not a source file, because the
|
|
|
|
|
# test suite may be run outside of the source tree (think distcheck).
|
|
|
|
|
while test $(pwd) != '/' -a ! -e engine/test_case_test; do
|
|
|
|
|
cd ..
|
|
|
|
|
done
|
|
|
|
|
topdir=$(pwd)
|
|
|
|
|
cd ${old}
|
|
|
|
|
echo ${topdir}
|
|
|
|
|
})/bootstrap/plain_helpers plain_helpers
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:85: HOME=\$(pwd) HELPER=\"empty_test_cases_list\" kyua --config=none test --store=bootstrap.db"
|
|
|
|
|
at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:85"
|
|
|
|
|
( $at_check_trace; HOME=$(pwd) HELPER="empty_test_cases_list" kyua --config=none test --store=bootstrap.db
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; tee stdout <"$at_stdout"
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:85"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
re='plain_helpers:__test_cases_list__.*broken.*failed to read.*unexpected EOF'
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:87: grep \"\${re}\" stdout"
|
|
|
|
|
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "testsuite.at:87"
|
|
|
|
|
( $at_check_trace; grep "${re}" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:87"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set +x
|
|
|
|
|
$at_times_p && times >"$at_times_file"
|
|
|
|
|
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
|
|
|
|
|
read at_status <"$at_status_file"
|
|
|
|
|
#AT_STOP_2
|
|
|
|
|
#AT_START_3
|
|
|
|
|
at_fn_group_banner 3 'testsuite.at:92' \
|
|
|
|
|
"test program with zero test cases" " "
|
|
|
|
|
at_xfail=no
|
|
|
|
|
(
|
|
|
|
|
$as_echo "3. $at_setup_line: testing $at_desc ..."
|
|
|
|
|
$at_traceon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cat >Kyuafile <<'_ATEOF'
|
|
|
|
|
|
|
|
|
|
syntax(2)
|
|
|
|
|
test_suite("bootstrap")
|
|
|
|
|
atf_test_program{name="plain_helpers"}
|
|
|
|
|
_ATEOF
|
|
|
|
|
|
|
|
|
|
ln -s $({
|
|
|
|
|
old=$(pwd)
|
|
|
|
|
cd "${at_suite_dir}"
|
|
|
|
|
# We need to locate a build product, not a source file, because the
|
|
|
|
|
# test suite may be run outside of the source tree (think distcheck).
|
|
|
|
|
while test $(pwd) != '/' -a ! -e engine/test_case_test; do
|
|
|
|
|
cd ..
|
|
|
|
|
done
|
|
|
|
|
topdir=$(pwd)
|
|
|
|
|
cd ${old}
|
|
|
|
|
echo ${topdir}
|
|
|
|
|
})/bootstrap/plain_helpers plain_helpers
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:96: HOME=\$(pwd) HELPER=\"zero_test_cases\" kyua --config=none test --store=bootstrap.db"
|
|
|
|
|
at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:96"
|
|
|
|
|
( $at_check_trace; HOME=$(pwd) HELPER="zero_test_cases" kyua --config=none test --store=bootstrap.db
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; tee stdout <"$at_stdout"
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:96"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
re='plain_helpers:__test_cases_list__.*broken.*Empty test cases list'
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:98: grep \"\${re}\" stdout"
|
|
|
|
|
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "testsuite.at:98"
|
|
|
|
|
( $at_check_trace; grep "${re}" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:98"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set +x
|
|
|
|
|
$at_times_p && times >"$at_times_file"
|
|
|
|
|
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
|
|
|
|
|
read at_status <"$at_status_file"
|
|
|
|
|
#AT_STOP_3
|
|
|
|
|
#AT_START_4
|
|
|
|
|
at_fn_group_banner 4 'testsuite.at:103' \
|
|
|
|
|
"run test case that passes" " "
|
|
|
|
|
at_xfail=no
|
|
|
|
|
(
|
|
|
|
|
$as_echo "4. $at_setup_line: testing $at_desc ..."
|
|
|
|
|
$at_traceon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cat >Kyuafile <<'_ATEOF'
|
|
|
|
|
|
|
|
|
|
syntax(2)
|
|
|
|
|
test_suite("bootstrap")
|
|
|
|
|
atf_test_program{name="atf_helpers"}
|
|
|
|
|
_ATEOF
|
|
|
|
|
|
|
|
|
|
ln -s $({
|
|
|
|
|
old=$(pwd)
|
|
|
|
|
cd "${at_suite_dir}"
|
|
|
|
|
# We need to locate a build product, not a source file, because the
|
|
|
|
|
# test suite may be run outside of the source tree (think distcheck).
|
|
|
|
|
while test $(pwd) != '/' -a ! -e engine/test_case_test; do
|
|
|
|
|
cd ..
|
|
|
|
|
done
|
|
|
|
|
topdir=$(pwd)
|
|
|
|
|
cd ${old}
|
|
|
|
|
echo ${topdir}
|
|
|
|
|
})/bootstrap/atf_helpers atf_helpers
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:107: HOME=\$(pwd) TESTS=\"passes\" kyua --config=none test --store=bootstrap.db "
|
|
|
|
|
at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:107"
|
|
|
|
|
( $at_check_trace; HOME=$(pwd) TESTS="passes" kyua --config=none test --store=bootstrap.db
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; tee stdout <"$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:107"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:108: grep \"atf_helpers:fails\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:108"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:fails" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:108"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:109: grep \"atf_helpers:passes.*passed\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:109"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:passes.*passed" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:109"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:110: grep \"atf_helpers:skips\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:110"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:skips" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:110"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set +x
|
|
|
|
|
$at_times_p && times >"$at_times_file"
|
|
|
|
|
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
|
|
|
|
|
read at_status <"$at_status_file"
|
|
|
|
|
#AT_STOP_4
|
|
|
|
|
#AT_START_5
|
|
|
|
|
at_fn_group_banner 5 'testsuite.at:115' \
|
|
|
|
|
"run test case that fails" " "
|
|
|
|
|
at_xfail=no
|
|
|
|
|
(
|
|
|
|
|
$as_echo "5. $at_setup_line: testing $at_desc ..."
|
|
|
|
|
$at_traceon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cat >Kyuafile <<'_ATEOF'
|
|
|
|
|
|
|
|
|
|
syntax(2)
|
|
|
|
|
test_suite("bootstrap")
|
|
|
|
|
atf_test_program{name="atf_helpers"}
|
|
|
|
|
_ATEOF
|
|
|
|
|
|
|
|
|
|
ln -s $({
|
|
|
|
|
old=$(pwd)
|
|
|
|
|
cd "${at_suite_dir}"
|
|
|
|
|
# We need to locate a build product, not a source file, because the
|
|
|
|
|
# test suite may be run outside of the source tree (think distcheck).
|
|
|
|
|
while test $(pwd) != '/' -a ! -e engine/test_case_test; do
|
|
|
|
|
cd ..
|
|
|
|
|
done
|
|
|
|
|
topdir=$(pwd)
|
|
|
|
|
cd ${old}
|
|
|
|
|
echo ${topdir}
|
|
|
|
|
})/bootstrap/atf_helpers atf_helpers
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:119: HOME=\$(pwd) TESTS=\"fails\" kyua --config=none test --store=bootstrap.db "
|
|
|
|
|
at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:119"
|
|
|
|
|
( $at_check_trace; HOME=$(pwd) TESTS="fails" kyua --config=none test --store=bootstrap.db
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; tee stdout <"$at_stdout"
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:119"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:120: grep \"atf_helpers:fails.*failed.*Failed on purpose\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:120"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:fails.*failed.*Failed on purpose" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:120"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:122: grep \"atf_helpers:passes\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:122"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:passes" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:122"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:123: grep \"atf_helpers:skips\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:123"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:skips" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:123"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set +x
|
|
|
|
|
$at_times_p && times >"$at_times_file"
|
|
|
|
|
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
|
|
|
|
|
read at_status <"$at_status_file"
|
|
|
|
|
#AT_STOP_5
|
|
|
|
|
#AT_START_6
|
|
|
|
|
at_fn_group_banner 6 'testsuite.at:128' \
|
|
|
|
|
"run test case that skips" " "
|
|
|
|
|
at_xfail=no
|
|
|
|
|
(
|
|
|
|
|
$as_echo "6. $at_setup_line: testing $at_desc ..."
|
|
|
|
|
$at_traceon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cat >Kyuafile <<'_ATEOF'
|
|
|
|
|
|
|
|
|
|
syntax(2)
|
|
|
|
|
test_suite("bootstrap")
|
|
|
|
|
atf_test_program{name="atf_helpers"}
|
|
|
|
|
_ATEOF
|
|
|
|
|
|
|
|
|
|
ln -s $({
|
|
|
|
|
old=$(pwd)
|
|
|
|
|
cd "${at_suite_dir}"
|
|
|
|
|
# We need to locate a build product, not a source file, because the
|
|
|
|
|
# test suite may be run outside of the source tree (think distcheck).
|
|
|
|
|
while test $(pwd) != '/' -a ! -e engine/test_case_test; do
|
|
|
|
|
cd ..
|
|
|
|
|
done
|
|
|
|
|
topdir=$(pwd)
|
|
|
|
|
cd ${old}
|
|
|
|
|
echo ${topdir}
|
|
|
|
|
})/bootstrap/atf_helpers atf_helpers
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:132: HOME=\$(pwd) TESTS=\"skips\" kyua --config=none test --store=bootstrap.db "
|
|
|
|
|
at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:132"
|
|
|
|
|
( $at_check_trace; HOME=$(pwd) TESTS="skips" kyua --config=none test --store=bootstrap.db
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; tee stdout <"$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:132"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:133: grep \"atf_helpers:fails\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:133"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:fails" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:133"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:134: grep \"atf_helpers:passes\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:134"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:passes" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:134"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:135: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:135"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:135"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set +x
|
|
|
|
|
$at_times_p && times >"$at_times_file"
|
|
|
|
|
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
|
|
|
|
|
read at_status <"$at_status_file"
|
|
|
|
|
#AT_STOP_6
|
|
|
|
|
#AT_START_7
|
|
|
|
|
at_fn_group_banner 7 'testsuite.at:141' \
|
|
|
|
|
"run two test cases, success" " "
|
|
|
|
|
at_xfail=no
|
|
|
|
|
(
|
|
|
|
|
$as_echo "7. $at_setup_line: testing $at_desc ..."
|
|
|
|
|
$at_traceon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cat >Kyuafile <<'_ATEOF'
|
|
|
|
|
|
|
|
|
|
syntax(2)
|
|
|
|
|
test_suite("bootstrap")
|
|
|
|
|
atf_test_program{name="atf_helpers"}
|
|
|
|
|
_ATEOF
|
|
|
|
|
|
|
|
|
|
ln -s $({
|
|
|
|
|
old=$(pwd)
|
|
|
|
|
cd "${at_suite_dir}"
|
|
|
|
|
# We need to locate a build product, not a source file, because the
|
|
|
|
|
# test suite may be run outside of the source tree (think distcheck).
|
|
|
|
|
while test $(pwd) != '/' -a ! -e engine/test_case_test; do
|
|
|
|
|
cd ..
|
|
|
|
|
done
|
|
|
|
|
topdir=$(pwd)
|
|
|
|
|
cd ${old}
|
|
|
|
|
echo ${topdir}
|
|
|
|
|
})/bootstrap/atf_helpers atf_helpers
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:145: HOME=\$(pwd) TESTS=\"passes skips\" kyua --config=none test --store=bootstrap.db "
|
|
|
|
|
at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:145"
|
|
|
|
|
( $at_check_trace; HOME=$(pwd) TESTS="passes skips" kyua --config=none test --store=bootstrap.db
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; tee stdout <"$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:145"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:146: grep \"atf_helpers:fails\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:146"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:fails" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:146"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:147: grep \"atf_helpers:passes.*passed\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:147"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:passes.*passed" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:147"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:148: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:148"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:148"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set +x
|
|
|
|
|
$at_times_p && times >"$at_times_file"
|
|
|
|
|
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
|
|
|
|
|
read at_status <"$at_status_file"
|
|
|
|
|
#AT_STOP_7
|
|
|
|
|
#AT_START_8
|
|
|
|
|
at_fn_group_banner 8 'testsuite.at:154' \
|
|
|
|
|
"run two test cases, failure" " "
|
|
|
|
|
at_xfail=no
|
|
|
|
|
(
|
|
|
|
|
$as_echo "8. $at_setup_line: testing $at_desc ..."
|
|
|
|
|
$at_traceon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cat >Kyuafile <<'_ATEOF'
|
|
|
|
|
|
|
|
|
|
syntax(2)
|
|
|
|
|
test_suite("bootstrap")
|
|
|
|
|
atf_test_program{name="atf_helpers"}
|
|
|
|
|
_ATEOF
|
|
|
|
|
|
|
|
|
|
ln -s $({
|
|
|
|
|
old=$(pwd)
|
|
|
|
|
cd "${at_suite_dir}"
|
|
|
|
|
# We need to locate a build product, not a source file, because the
|
|
|
|
|
# test suite may be run outside of the source tree (think distcheck).
|
|
|
|
|
while test $(pwd) != '/' -a ! -e engine/test_case_test; do
|
|
|
|
|
cd ..
|
|
|
|
|
done
|
|
|
|
|
topdir=$(pwd)
|
|
|
|
|
cd ${old}
|
|
|
|
|
echo ${topdir}
|
|
|
|
|
})/bootstrap/atf_helpers atf_helpers
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:158: HOME=\$(pwd) TESTS=\"fails passes\" kyua --config=none test --store=bootstrap.db "
|
|
|
|
|
at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:158"
|
|
|
|
|
( $at_check_trace; HOME=$(pwd) TESTS="fails passes" kyua --config=none test --store=bootstrap.db
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; tee stdout <"$at_stdout"
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:158"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:159: grep \"atf_helpers:fails.*failure.*Failed on purpose\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:159"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:fails.*failure.*Failed on purpose" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:159"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:161: grep \"atf_helpers:passes.*passed\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:161"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:passes.*passed" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:161"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:162: grep \"atf_helpers:skips\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:162"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:skips" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:162"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set +x
|
|
|
|
|
$at_times_p && times >"$at_times_file"
|
|
|
|
|
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
|
|
|
|
|
read at_status <"$at_status_file"
|
|
|
|
|
#AT_STOP_8
|
|
|
|
|
#AT_START_9
|
|
|
|
|
at_fn_group_banner 9 'testsuite.at:167' \
|
|
|
|
|
"run mixed test cases" " "
|
|
|
|
|
at_xfail=no
|
|
|
|
|
(
|
|
|
|
|
$as_echo "9. $at_setup_line: testing $at_desc ..."
|
|
|
|
|
$at_traceon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cat >Kyuafile <<'_ATEOF'
|
|
|
|
|
|
|
|
|
|
syntax(2)
|
|
|
|
|
test_suite("bootstrap")
|
|
|
|
|
atf_test_program{name="atf_helpers"}
|
|
|
|
|
_ATEOF
|
|
|
|
|
|
|
|
|
|
ln -s $({
|
|
|
|
|
old=$(pwd)
|
|
|
|
|
cd "${at_suite_dir}"
|
|
|
|
|
# We need to locate a build product, not a source file, because the
|
|
|
|
|
# test suite may be run outside of the source tree (think distcheck).
|
|
|
|
|
while test $(pwd) != '/' -a ! -e engine/test_case_test; do
|
|
|
|
|
cd ..
|
|
|
|
|
done
|
|
|
|
|
topdir=$(pwd)
|
|
|
|
|
cd ${old}
|
|
|
|
|
echo ${topdir}
|
|
|
|
|
})/bootstrap/atf_helpers atf_helpers
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:171: HOME=\$(pwd) TESTS=\"fails passes skips\" kyua --config=none test --store=bootstrap.db "
|
|
|
|
|
at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:171"
|
|
|
|
|
( $at_check_trace; HOME=$(pwd) TESTS="fails passes skips" kyua --config=none test --store=bootstrap.db
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; tee stdout <"$at_stdout"
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:171"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:172: grep \"atf_helpers:fails.*failure.*Failed on purpose\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:172"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:fails.*failure.*Failed on purpose" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:172"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:174: grep \"atf_helpers:passes.*passed\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:174"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:passes.*passed" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:174"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:175: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:175"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:175"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set +x
|
|
|
|
|
$at_times_p && times >"$at_times_file"
|
|
|
|
|
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
|
|
|
|
|
read at_status <"$at_status_file"
|
|
|
|
|
#AT_STOP_9
|
|
|
|
|
#AT_START_10
|
|
|
|
|
at_fn_group_banner 10 'testsuite.at:181' \
|
|
|
|
|
"run tests from build directories" " "
|
|
|
|
|
at_xfail=no
|
|
|
|
|
(
|
|
|
|
|
$as_echo "10. $at_setup_line: testing $at_desc ..."
|
|
|
|
|
$at_traceon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cat >Kyuafile <<'_ATEOF'
|
|
|
|
|
|
|
|
|
|
syntax(2)
|
|
|
|
|
test_suite("bootstrap")
|
|
|
|
|
atf_test_program{name="atf_helpers"}
|
|
|
|
|
_ATEOF
|
|
|
|
|
|
|
|
|
|
ln -s $({
|
|
|
|
|
old=$(pwd)
|
|
|
|
|
cd "${at_suite_dir}"
|
|
|
|
|
# We need to locate a build product, not a source file, because the
|
|
|
|
|
# test suite may be run outside of the source tree (think distcheck).
|
|
|
|
|
while test $(pwd) != '/' -a ! -e engine/test_case_test; do
|
|
|
|
|
cd ..
|
|
|
|
|
done
|
|
|
|
|
topdir=$(pwd)
|
|
|
|
|
cd ${old}
|
|
|
|
|
echo ${topdir}
|
|
|
|
|
})/bootstrap/atf_helpers atf_helpers
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:185: mkdir src"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:185"
|
|
|
|
|
( $at_check_trace; mkdir src
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:185"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:186: mv Kyuafile src"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:186"
|
|
|
|
|
( $at_check_trace; mv Kyuafile src
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:186"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:187: mkdir obj"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:187"
|
|
|
|
|
( $at_check_trace; mkdir obj
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:187"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:188: mv atf_helpers obj"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:188"
|
|
|
|
|
( $at_check_trace; mv atf_helpers obj
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:188"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$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"
|
|
|
|
|
at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:189"
|
|
|
|
|
( $at_check_trace; HOME=$(pwd) TESTS="fails passes skips" kyua --config=none test --store=bootstrap.db --kyuafile=src/Kyuafile --build-root=obj
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; tee stdout <"$at_stdout"
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:189"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:192: grep \"atf_helpers:fails.*failure.*Failed on purpose\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:192"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:fails.*failure.*Failed on purpose" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
at_fn_diff_devnull "$at_stdout" || at_failed=:
|
|
|
|
|
at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:192"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:194: grep \"atf_helpers:passes.*passed\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:194"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:passes.*passed" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:194"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
{ set +x
|
|
|
|
|
$as_echo "$at_srcdir/testsuite.at:195: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout"
|
|
|
|
|
at_fn_check_prepare_trace "testsuite.at:195"
|
|
|
|
|
( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout
|
|
|
|
|
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
|
|
|
|
|
at_status=$? at_failed=false
|
|
|
|
|
$at_check_filter
|
|
|
|
|
at_fn_diff_devnull "$at_stderr" || at_failed=:
|
|
|
|
|
echo stdout:; cat "$at_stdout"
|
|
|
|
|
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:195"
|
|
|
|
|
$at_failed && at_fn_log_failure
|
|
|
|
|
$at_traceon; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set +x
|
|
|
|
|
$at_times_p && times >"$at_times_file"
|
|
|
|
|
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
|
|
|
|
|
read at_status <"$at_status_file"
|
|
|
|
|
#AT_STOP_10
|