X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Fgdbm.git;a=blobdiff_plain;f=tests%2Ftestsuite;h=11117ab0fa33a8d264446dffc1f0e15f103774b1;hp=96ee5f9fe046638b55afb74b4dd7fc392237fcc6;hb=affed4e4bfaaa42a03da4de101fdf277ac682de4;hpb=2a5aa8c2d96550c8463ef3714a20b46397f58b52 diff --git a/tests/testsuite b/tests/testsuite index 96ee5f9..11117ab 100755 --- a/tests/testsuite +++ b/tests/testsuite @@ -1,17 +1,17 @@ #! /bin/sh -# Generated from testsuite.at by GNU Autoconf 2.63. +# Generated from testsuite.at by GNU Autoconf 2.69. +# +# Copyright (C) 2009-2012 Free Software Foundation, Inc. # -# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -# 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. ## -## --------------------- ## +## -------------------- ## +## 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 +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 @@ -19,23 +19,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; esac - fi - - -# PATH needs CR -# 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_nl=' ' export as_nl @@ -43,7 +35,13 @@ export as_nl 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 -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then +# 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 @@ -54,7 +52,7 @@ else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; - case $arg in + case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; @@ -77,13 +75,6 @@ if test "${PATH_SEPARATOR+set}" != set; then } fi -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - # IFS # We need space, tab and new line, in precisely that order. Quoting is @@ -93,15 +84,16 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in +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 + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done IFS=$as_save_IFS ;; @@ -113,12 +105,16 @@ if test "x$as_myself" = x; then fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# 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='> ' @@ -130,330 +126,319 @@ export LC_ALL LANGUAGE=C export LANGUAGE -# Required to use basename. -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 - - -# Name of the executable. -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'` - # CDPATH. -$as_unset CDPATH - +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes + 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 - as_have_required=no + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac fi - - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} +" + 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 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi +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 : -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : + 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 - exitcode=1 - echo positional parameters were not saved. + as_have_required=no fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + 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=. - case $as_dir in + as_found=: + case $as_dir in #( /*) for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + # 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 - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -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 - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -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 ;; + 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 - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. +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 - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break 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 - done +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi +# 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 - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi +# 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" -fi -fi +} # 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 -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} +# 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 -exitcode=0 -if as_func_success; then - : +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. + as_expr=false fi -if as_func_ret_success; then - : +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename else - exitcode=1 - echo as_func_ret_success failed. + as_basename=false fi -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -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 ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname else - exitcode=1 - echo positional parameters were not saved. + as_dirname=false fi -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell bug-autoconf@gnu.org about your system, - echo including any error possibly output before this message. - echo This can help us improve future autoconf versions. - echo Configuration will now proceed without shell functions. -} - - +# 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_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) + 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/= @@ -470,10 +455,12 @@ test \$exitcode = 0") || { s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { { $as_echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -$as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } + { $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). @@ -482,29 +469,18 @@ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" exit } - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in +case `echo -n x` in #((((( -n*) - case `echo 'x\c'` in + case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then @@ -519,49 +495,29 @@ if (echo >conf$$.file) 2>/dev/null; then # ... 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 -p'. + # 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 -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + 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=: + as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +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'" @@ -591,6 +547,11 @@ 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. @@ -605,6 +566,8 @@ at_list_p=false 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 @@ -618,10 +581,10 @@ 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='' -# List of the all the test groups. -at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22' # 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. @@ -650,12 +613,14 @@ at_help_all="1;version.at:17;gdbm version;; 21;cloexec02.at:17;cloexec: dbm_open;ndbm dbm_open cloexec cloexec02; 22;cloexec03.at:17;cloexec: dbm_open -creat;ndbm dbm_open cloexec cloexec03; " +# List of the all the test groups. +at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'` -# at_func_validate_ranges [NAME...] -# --------------------------------- -# Validate and normalize the test group number contained in each -# variable NAME. Leading zeroes are treated as decimal. -at_func_validate_ranges () +# 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 @@ -666,7 +631,7 @@ at_func_validate_ranges () fi case $at_value in 0*) # We want to treat leading 0 as decimal, like expr and test, but - # at_func_arith treats it as octal if it uses $(( )). + # 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. @@ -685,8 +650,8 @@ do fi case $at_option in - *=*) at_optarg=`expr "x$at_option" : 'x[^=]*=\(.*\)'` ;; - *) at_optarg= ;; + *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;; + *) at_optarg= ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -708,6 +673,19 @@ do 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=: ;; @@ -722,29 +700,31 @@ do ;; --trace | -x ) - at_traceon='set -x'; at_traceoff='set +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_func_validate_ranges at_option - at_groups="$at_groups$at_option " + 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_func_validate_ranges at_range_start - at_range=`$as_echo " $at_groups_all " | \ - sed -e 's/^.* \('$at_range_start' \)/\1/'` - at_groups="$at_groups$at_range " + 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_func_validate_ranges at_range_end - at_range=`$as_echo " $at_groups_all " | \ - sed -e 's/\( '$at_range_end'\) .*$/\1/'` - at_groups="$at_groups$at_range " + 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] | \ @@ -760,11 +740,10 @@ do at_range_end=$at_range_start at_range_start=$at_tmp fi - at_func_validate_ranges at_range_start at_range_end - at_range=`$as_echo " $at_groups_all " | \ - sed -e 's/^.*\( '$at_range_start' \)/\1/' \ - -e 's/\( '$at_range_end'\) .*$/\1/'` - at_groups="$at_groups$at_range " + 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. @@ -774,6 +753,25 @@ do --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. @@ -800,11 +798,12 @@ do at_groups_selected=`$as_echo "$at_groups_selected" | grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"` done - # Smash the newlines. - at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//' | - tr "$as_nl" ' ' - ` - at_groups="$at_groups$at_groups_selected " + # 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=: ;; *=*) @@ -812,14 +811,12 @@ do # Reject names that are not valid shell variable names. case $at_envvar in '' | [0-9]* | *[!_$as_cr_alnum]* ) - { { $as_echo "$as_me:$LINENO: error: invalid variable name: $at_envvar" >&5 -$as_echo "$as_me: error: invalid variable name: $at_envvar" >&2;} - { (exit 1); exit 1; }; } ;; + 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 - at_debug_args="$at_debug_args $at_envvar='$at_value'" + as_fn_append at_debug_args " $at_envvar='$at_value'" ;; *) $as_echo "$as_me: invalid option: $at_option" >&2 @@ -830,19 +827,42 @@ $as_echo "$as_me: error: invalid variable name: $at_envvar" >&2;} done # Verify our last option didn't require an argument -if test -n "$at_prev"; then - { { $as_echo "$as_me:$LINENO: error: \`$at_prev' requires an argument." >&5 -$as_echo "$as_me: error: \`$at_prev' requires an argument." >&2;} - { (exit 1); exit 1; }; } +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"; then +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" | tr ' ' "$as_nl" | sort -nu` + 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. @@ -853,16 +873,17 @@ 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. -You should not change environment variables unless explicitly passed -as command line arguments. Set \`AUTOTEST_PATH' to select the executables +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 relatively to the top level of this distribution. E.g., +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 -possibly amounts into +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 + PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0 _ATEOF cat <<_ATEOF || at_write_fail=1 @@ -877,9 +898,14 @@ 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 @@ -897,54 +923,64 @@ fi # List of tests. if $at_list_p; then cat <<_ATEOF || at_write_fail=1 -gdbm 1.10 test suite test groups: +gdbm 1.11 test suite test groups: NUM: FILE-NAME:LINE TEST-GROUP-NAME KEYWORDS _ATEOF - # Passing at_groups is tricky. We cannot use it to form a literal string - # or regexp because of the limitation of AIX awk. And Solaris' awk - # doesn't grok more than 99 fields in a record, so we have to use `split'. - # at_groups needs to be space-separated for this script to work. - case $at_groups in - *"$as_nl"* ) - at_groups=`$as_echo "$at_groups" | tr "$as_nl" ' '` ;; - esac - $as_echo "$at_groups$as_nl$at_help_all" | - awk 'BEGIN { FS = ";" } - NR == 1 { - for (n = split($ 0, a, " "); n; n--) selected[a[n]] = 1 + # 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) printf " %s\n", $ 4 + 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 - $as_echo "$as_me (gdbm 1.10)" && - cat <<\_ACEOF || at_write_fail=1 + $as_echo "$as_me (gdbm 1.11)" && + cat <<\_ATEOF || at_write_fail=1 -Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -Free Software Foundation, Inc. +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. -_ACEOF +_ATEOF exit $at_write_fail fi -# Should we print banners? at_groups is space-separated for entire test, -# newline-separated if only a subset of the testsuite is run. -case $at_groups in - *' '*' '* | *"$as_nl"*"$as_nl"* ) - at_print_banners=: ;; +# 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 empty once printed. +# Text for banner N, set to a single space once printed. # Banner 1. testsuite.at:35 # Category starts at test group 2. at_banner_text_1="GDBM interface" @@ -960,13 +996,8 @@ at_banner_text_4="Cloexec" # Take any -C into account. if $at_change_dir ; then - if test x- = "x$at_dir" ; then - at_dir=./- - fi test x != "x$at_dir" && cd "$at_dir" \ - || { { $as_echo "$as_me:$LINENO: error: unable to change directory" >&5 -$as_echo "$as_me: error: unable to change directory" >&2;} - { (exit 1); exit 1; }; } + || as_fn_error $? "unable to change directory" at_dir=`pwd` fi @@ -974,13 +1005,11 @@ fi for at_file in atconfig atlocal do test -r $at_file || continue - . ./$at_file || { { $as_echo "$as_me:$LINENO: error: invalid content: $at_file" >&5 -$as_echo "$as_me: error: invalid content: $at_file" >&2;} - { (exit 1); exit 1; }; } + . ./$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} +: "${at_top_build_prefix=$at_top_builddir}" # Perform any assignments requested during argument parsing. eval "$at_debug_args" @@ -991,8 +1020,7 @@ if test -n "$at_top_srcdir"; then builddir=../.. for at_dir_var in srcdir top_srcdir top_build_prefix do - at_val=`eval 'as_val=${'at_$at_dir_var'} - $as_echo "$as_val"'` + eval at_val=\$at_$at_dir_var case $at_val in [\\/$]* | ?:[\\/]* ) at_prefix= ;; *) at_prefix=../../ ;; @@ -1001,9 +1029,9 @@ if test -n "$at_top_srcdir"; then done fi -## ------------------- ## -## Directory structure ## -## ------------------- ## +## -------------------- ## +## Directory structure. ## +## -------------------- ## # This is the set of directories and files used by this script # (non-literals are capitalized): @@ -1034,12 +1062,14 @@ fi # 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. +# 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" && @@ -1063,23 +1093,23 @@ for as_dir in $AUTOTEST_PATH $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -n "$at_path" && at_path=$at_path$PATH_SEPARATOR + test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR case $as_dir in [\\/]* | ?:[\\/]* ) - at_path=$at_path$as_dir + as_fn_append at_path "$as_dir" ;; * ) if test -z "$at_top_build_prefix"; then # Stand-alone test suite. - at_path=$at_path$as_dir + as_fn_append at_path "$as_dir" else # Embedded test suite. - at_path=$at_path$at_top_build_prefix$as_dir$PATH_SEPARATOR - at_path=$at_path$at_top_srcdir/$as_dir + 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 + done IFS=$as_save_IFS @@ -1093,7 +1123,7 @@ for as_dir in $at_path do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -d "$as_dir" || continue + test -d "$as_dir" || continue case $as_dir in [\\/]* | ?:[\\/]* ) ;; * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;; @@ -1101,15 +1131,18 @@ 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 ;; - *) at_new_path=$at_new_path$PATH_SEPARATOR$as_dir ;; + *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;; esac -done + 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 @@ -1119,43 +1152,28 @@ fi exec 5>>"$at_suite_log" # Banners and logs. -cat <<\_ASBOX -## --------------------- ## -## gdbm 1.10 test suite. ## -## --------------------- ## -_ASBOX +$as_echo "## --------------------- ## +## gdbm 1.11 test suite. ## +## --------------------- ##" { - cat <<\_ASBOX -## --------------------- ## -## gdbm 1.10 test suite. ## -## --------------------- ## -_ASBOX + $as_echo "## --------------------- ## +## gdbm 1.11 test suite. ## +## --------------------- ##" echo $as_echo "$as_me: command line was:" $as_echo " \$ $0 $at_cli_args" echo - # Try to find a few ChangeLogs in case it might help determining the - # exact version. Use the relative dir: if the top dir is a symlink, - # find will not follow it (and options to follow the links are not - # portable), which would result in no output here. Prune directories - # matching the package tarname, since they tend to be leftovers from - # `make dist' or `make distcheck' and contain redundant or stale logs. - if test -n "$at_top_srcdir"; then - cat <<\_ASBOX -## ----------- ## -## ChangeLogs. ## -## ----------- ## -_ASBOX + # 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 - for at_file in `find "$at_top_srcdir" -name "gdbm-*" -prune -o -name ChangeLog -print` - do - $as_echo "$as_me: $at_file:" - sed 's/^/| /;10q' $at_file - echo - done - fi { @@ -1188,8 +1206,8 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" -done + $as_echo "PATH: $as_dir" + done IFS=$as_save_IFS } @@ -1206,53 +1224,80 @@ IFS=$as_save_IFS } >&5 -## --------------- ## -## Shell functions ## -## --------------- ## +## ------------------------- ## +## Autotest shell functions. ## +## ------------------------- ## -# at_func_banner NUMBER -# --------------------- -# Output banner NUMBER, provided the testsuite is running multiple groups -# and this particular banner has not yet been printed. -at_func_banner () +# 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= - $as_echo "$as_nl$at_banner_text$as_nl" -} # at_func_banner + 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_func_check_newline COMMAND -# ----------------------------- -# Test if COMMAND includes a newline and, if so, print a message and return -# exit code 1 -at_func_check_newline () +# 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 () { - case "$1" in - *' -'*) echo 'Not enabling shell tracing (command contains an embedded newline)' - return 1 ;; - *) return 0 ;; - esac + $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_func_filter_trace EXIT-CODE +# at_fn_check_prepare_trace LINE # ------------------------------ -# Split the contents of file "$at_stder1" into the "set -x" trace (on stderr) -# and the other lines (on file "$at_stderr"). Return the exit code EXIT-CODE. -at_func_filter_trace () +# 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" - return $1 } -# at_func_log_failure FILE-LIST -# ----------------------------- +# 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_func_log_failure () +at_fn_log_failure () { for file do $as_echo "$file:"; sed 's/^/> /' "$file"; done @@ -1260,56 +1305,62 @@ at_func_log_failure () exit 1 } -# at_func_check_skip EXIT-CODE -# ---------------------------- -# Check whether EXIT-CODE is the special exit code 77, and if so exit the shell -# with that same exit code. -at_func_check_skip () +# 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_func_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 exit the shell with that same exit code; if it is -# anything else print an error message and fail the test. -at_func_check_status () +# 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_func_diff_devnull FILE -# ------------------------- -# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless -# diff invocations. -at_func_diff_devnull () +# 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_func_test NUMBER -# ------------------- +# at_fn_test NUMBER +# ----------------- # Parse out test NUMBER from the tail of this file. -at_func_test () +at_fn_test () { eval at_sed=\$at_sed$1 sed "$at_sed" "$at_myself" > "$at_test_source" } -# at_func_create_debugging_script -# ------------------------------- +# at_fn_create_debugging_script +# ----------------------------- # Create the debugging script $at_group_dir/run which will reproduce the # current test group. -at_func_create_debugging_script () +at_fn_create_debugging_script () { { echo "#! /bin/sh" && @@ -1321,34 +1372,13 @@ at_func_create_debugging_script () chmod +x "$at_group_dir/run" } -# at_func_arith -# ------------- -# Arithmetic evaluation, avoids expr if the shell is sane. The -# interpretation of leading zeroes is unspecified. -# -# subshell and eval are needed to keep Solaris sh from bailing out: -if ( eval 'test $(( 1 + 1 )) = 2' ) 2>/dev/null; then - # With "$@", bash does not split positional parameters: - eval 'at_func_arith () - { - at_func_arith_result=$(( $* )) - }' -else - at_func_arith () - { - at_func_arith_result=`expr "$@"` - } -fi - -## ---------------------- ## -## End of shell functions ## -## ---------------------- ## +## -------------------------------- ## +## End of autotest shell functions. ## +## -------------------------------- ## { - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Tested programs. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo } >&5 @@ -1356,34 +1386,35 @@ _ASBOX for at_program in : $at_tested do test "$at_program" = : && continue - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + 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 + test -f "$as_dir/$at_program" && break + done IFS=$as_save_IFS - if test -f "$as_dir/$at_program"; then + at_program_=$as_dir/$at_program ;; + esac + if test -f "$at_program_"; then { - $as_echo "$at_srcdir/testsuite.at:32: $as_dir/$at_program --version" - "$as_dir/$at_program" --version &5 2>&1 else - { { $as_echo "$as_me:$LINENO: error: cannot find $at_program" >&5 -$as_echo "$as_me: error: cannot find $at_program" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "cannot find $at_program" "$LINENO" 5 fi done { - cat <<\_ASBOX -## ------------------ ## + $as_echo "## ------------------ ## ## Running the tests. ## -## ------------------ ## -_ASBOX +## ------------------ ##" } >&5 at_start_date=`date` @@ -1391,11 +1422,8 @@ 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. -test -d "$at_suite_dir" || - mkdir "$at_suite_dir" || - { { $as_echo "$as_me:$LINENO: error: cannot create '$at_suite_dir'" >&5 -$as_echo "$as_me: error: cannot create '$at_suite_dir'" >&2;} - { (exit 1); exit 1; }; } +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 @@ -1429,28 +1457,40 @@ BEGIN { FS="" } if (test == "'"$at_group"'") exit }' "$at_myself" > "$at_suite_dir/at-source-lines" && . "$at_suite_dir/at-source-lines" || - { { $as_echo "$as_me:$LINENO: error: cannot create test line number cache" >&5 -$as_echo "$as_me: error: cannot create test line number cache" >&2;} - { (exit 1); exit 1; }; } + 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_echo "$as_me:$LINENO: error: testsuite directory setup failed" >&5 -$as_echo "$as_me: error: testsuite directory setup failed" >&2;} - { (exit 1); exit 1; }; } +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_func_group_prepare -# --------------------- -# Prepare running a test group -at_func_group_prepare () +# 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 @@ -1484,56 +1524,20 @@ at_func_group_prepare () # 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" || - { $as_echo "$as_me:$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;} - fi + 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" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - 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_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } + as_dir="$at_group_dir"; as_fn_mkdir_p echo 0 > "$at_status_file" @@ -1546,9 +1550,29 @@ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} fi } -# at_func_group_postprocess -# ------------------------- -at_func_group_postprocess () +# 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. @@ -1561,6 +1585,7 @@ at_func_group_postprocess () report this failure to . _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" @@ -1569,31 +1594,41 @@ _ATEOF 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 - ;; - no:*) - at_msg='FAILED ('`cat "$at_check_line_file"`')' - at_res=fail - at_errexit=$at_errexit_p + at_color=$at_lgn ;; esac echo "$at_res" > "$at_job_dir/$at_res" - # Make sure there is a separator even with long titles. - $as_echo " $at_msg" + # 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) @@ -1608,9 +1643,13 @@ _ATEOF $as_echo "$at_log_msg" >> "$at_group_log" $as_echo "$at_log_msg" >&5 - # Cleanup the group directory, unless the user wants the files. - if $at_debug_p; then - at_func_create_debugging_script + # 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 \{\} \; @@ -1627,7 +1666,7 @@ _ATEOF # Upon failure, keep the group directory for autopsy, and create # the debugging script. With -e, do not start any further tests. - at_func_create_debugging_script + at_fn_create_debugging_script if $at_errexit; then echo stop > "$at_stop_file" fi @@ -1640,22 +1679,134 @@ _ATEOF ## 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 0 -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=: -for at_group in $at_groups; do - at_func_group_prepare - if cd "$at_group_dir" && - at_func_test $at_group && - . "$at_test_source"; then :; else - { $as_echo "$as_me:$LINENO: WARNING: unable to parse test group: $at_group" >&5 +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=: + 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 - at_func_group_postprocess - test -f "$at_stop_file" && break - at_first=false -done + 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" @@ -1676,12 +1827,9 @@ 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=$# -at_func_arith $at_group_count - $at_skip_count -at_run_count=$at_func_arith_result -at_func_arith $at_xpass_count + $at_fail_count -at_unexpected_count=$at_func_arith_result -at_func_arith $at_xfail_count + $at_fail_count -at_total_fail_count=$at_func_arith_result +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" @@ -1693,35 +1841,26 @@ 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]*) - at_func_arith $at_stop_time - $at_start_time - at_duration_s=$at_func_arith_result - at_func_arith $at_duration_s / 60 - at_duration_m=$at_func_arith_result - at_func_arith $at_duration_m / 60 - at_duration_h=$at_func_arith_result - at_func_arith $at_duration_s % 60 - at_duration_s=$at_func_arith_result - at_func_arith $at_duration_m % 60 - at_duration_m=$at_func_arith_result + 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 -cat <<\_ASBOX -## ------------- ## +$as_echo "## ------------- ## ## Test results. ## -## ------------- ## -_ASBOX +## ------------- ##" echo { echo - cat <<\_ASBOX -## ------------- ## + $as_echo "## ------------- ## ## Test results. ## -## ------------- ## -_ASBOX +## ------------- ##" echo } >&5 @@ -1739,12 +1878,14 @@ if $at_errexit_p && test $at_unexpected_count != 0; then 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." ;; - 0:0:*) at_result="$at_result behaved as expected." ;; + 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, @@ -1790,18 +1931,16 @@ $at_skip_count tests were skipped." ;; esac if test $at_unexpected_count = 0; then - echo "$at_result" + echo "$at_color$at_result$at_std" echo "$at_result" >&5 else - echo "ERROR: $at_result" >&2 + echo "${at_color}ERROR: $at_result$at_std" >&2 echo "ERROR: $at_result" >&5 { echo - cat <<\_ASBOX -## ------------------------ ## + $as_echo "## ------------------------ ## ## Summary of the failures. ## -## ------------------------ ## -_ASBOX +## ------------------------ ##" # Summary of failed and skipped tests. if test $at_fail_count != 0; then @@ -1820,11 +1959,9 @@ _ASBOX echo fi if test $at_fail_count != 0; then - cat <<\_ASBOX -## ---------------------- ## + $as_echo "## ---------------------- ## ## Detailed failed tests. ## -## ---------------------- ## -_ASBOX +## ---------------------- ##" echo for at_group in $at_fail_list do @@ -1856,19 +1993,21 @@ _ASBOX _ASBOX echo - $as_echo "Please send \`${at_testdir+${at_testdir}/}$as_me.log' and all information you think might help: + 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: - Subject: [gdbm 1.10] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} + Subject: [gdbm 1.11] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} + +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'. " - if test $at_debug_p = false; then - echo - echo 'You may investigate any problem if you feel able to do so, in which' - echo 'case the test suite provides a good starting point. Its output may' - $as_echo "be found below \`${at_testdir+${at_testdir}/}$as_me.dir'." - echo - fi - exit 1 + exit 1 fi exit 0 @@ -1877,262 +2016,189 @@ exit 0 ## Actual tests. ## ## ------------- ## #AT_START_1 -# 1. version.at:17: gdbm version -at_setup_line='version.at:17' -at_desc="gdbm version" -$at_quiet $as_echo_n " 1: $at_desc " +at_fn_group_banner 1 'version.at:17' \ + "gdbm version" " " at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "1. version.at:17: testing ..." + $as_echo "1. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/version.at:19: gtver -lib -full -header -full" -echo version.at:19 >"$at_check_line_file" - -if test -n "$at_traceon"; then - ( $at_traceon; gtver -lib -full -header -full ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; gtver -lib -full -header -full ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: -echo >>"$at_stdout"; $as_echo "1.10.0 -1.10.0 +at_fn_check_prepare_trace "version.at:19" +( $at_check_trace; gtver -lib -full -header -full +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1.11.0 +1.11.0 " | \ $at_diff - "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/version.at:19" - -$at_failed && at_func_log_failure +at_fn_check_status 0 $at_status "$at_srcdir/version.at:19" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_1 #AT_START_2 -# 2. create00.at:17: create database -at_setup_line='create00.at:17' -at_func_banner 1 -at_desc="create database" -$at_quiet $as_echo_n " 2: $at_desc " +at_fn_group_banner 2 'create00.at:17' \ + "create database" " " 1 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "2. create00.at:17: testing ..." + $as_echo "2. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/create00.at:20: -test -z "`sort < /dev/null 2>&1`" || exit 77 +test -z \"\`sort < /dev/null 2>&1\`\" || exit 77 num2word 1:1000 > input gtload test.db < input gtdump test.db | sort -k1,2 -n > output -diff -u input output +cmp -s input output || diff -u input output " -echo create00.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -num2word 1:1000 > input -gtload test.db < input -gtdump test.db | sort -k1,2 -n > output -diff -u input output - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; +at_fn_check_prepare_notrace 'a `...` command substitution' "create00.at:20" +( $at_check_trace; test -z "`sort < /dev/null 2>&1`" || exit 77 num2word 1:1000 > input gtload test.db < input gtdump test.db | sort -k1,2 -n > output -diff -u input output - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/create00.at:20" - -$at_failed && at_func_log_failure +cmp -s input output || diff -u input output + +) >>"$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/create00.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_2 #AT_START_3 -# 3. fetch00.at:17: fetch a record -at_setup_line='fetch00.at:17' -at_func_banner 1 -at_desc="fetch a record" -$at_quiet $as_echo_n " 3: $at_desc " +at_fn_group_banner 3 'fetch00.at:17' \ + "fetch a record" " " 1 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "3. fetch00.at:17: testing ..." + $as_echo "3. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/fetch00.at:20: num2word 1:10000 | gtload test.db gtfetch test.db 1 2745 9999 " -echo fetch00.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; -num2word 1:10000 | gtload test.db -gtfetch test.db 1 2745 9999 - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; +at_fn_check_prepare_notrace 'an embedded newline' "fetch00.at:20" +( $at_check_trace; num2word 1:10000 | gtload test.db gtfetch test.db 1 2745 9999 - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "one two thousand seven hundred and fourty-five nine thousand nine hundred and ninety-nine " | \ $at_diff - "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/fetch00.at:20" - -$at_failed && at_func_log_failure +at_fn_check_status 0 $at_status "$at_srcdir/fetch00.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_3 #AT_START_4 -# 4. fetch01.at:17: fetch: nonexisting record -at_setup_line='fetch01.at:17' -at_func_banner 1 -at_desc="fetch: nonexisting record" -$at_quiet $as_echo_n " 4: $at_desc " +at_fn_group_banner 4 'fetch01.at:17' \ + "fetch: nonexisting record" " " 1 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "4. fetch01.at:17: testing ..." + $as_echo "4. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/fetch01.at:20: num2word 1:10000 | gtload test.db gtfetch test.db 0 " -echo fetch01.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; -num2word 1:10000 | gtload test.db -gtfetch test.db 0 - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; +at_fn_check_prepare_notrace 'an embedded newline' "fetch01.at:20" +( $at_check_trace; num2word 1:10000 | gtload test.db gtfetch test.db 0 - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter echo >>"$at_stderr"; $as_echo "gtfetch: 0: not found " | \ $at_diff - "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 2 $at_status "$at_srcdir/fetch01.at:20" - -$at_failed && at_func_log_failure +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 2 $at_status "$at_srcdir/fetch01.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_4 #AT_START_5 -# 5. delete00.at:17: delete a record -at_setup_line='delete00.at:17' -at_func_banner 1 -at_desc="delete a record" -$at_quiet $as_echo_n " 5: $at_desc " +at_fn_group_banner 5 'delete00.at:17' \ + "delete a record" " " 1 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "5. delete00.at:17: testing ..." + $as_echo "5. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/delete00.at:20: -test -z "`sort < /dev/null 2>&1`" || exit 77 +test -z \"\`sort < /dev/null 2>&1\`\" || exit 77 num2word 1:10 | gtload test.db gtdel test.db 8 gtdump test.db | sort -k1,2 -n " -echo delete00.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'a `...` command substitution' "delete00.at:20" +( $at_check_trace; test -z "`sort < /dev/null 2>&1`" || exit 77 num2word 1:10 | gtload test.db gtdel test.db 8 gtdump test.db | sort -k1,2 -n - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; - -test -z "`sort < /dev/null 2>&1`" || exit 77 -num2word 1:10 | gtload test.db -gtdel test.db 8 -gtdump test.db | sort -k1,2 -n - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "1 one 2 two 3 three @@ -2144,175 +2210,121 @@ echo >>"$at_stdout"; $as_echo "1 one 10 ten " | \ $at_diff - "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/delete00.at:20" - -$at_failed && at_func_log_failure +at_fn_check_status 0 $at_status "$at_srcdir/delete00.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_5 #AT_START_6 -# 6. delete01.at:17: delete: non existing record -at_setup_line='delete01.at:17' -at_func_banner 1 -at_desc="delete: non existing record" -$at_quiet $as_echo_n " 6: $at_desc " +at_fn_group_banner 6 'delete01.at:17' \ + "delete: non existing record" " " 1 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "6. delete01.at:17: testing ..." + $as_echo "6. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/delete01.at:20: -test -z "`sort < /dev/null 2>&1`" || exit 77 +test -z \"\`sort < /dev/null 2>&1\`\" || exit 77 num2word 1:10 | gtload test.db gtdel test.db 11 " -echo delete01.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'a `...` command substitution' "delete01.at:20" +( $at_check_trace; test -z "`sort < /dev/null 2>&1`" || exit 77 num2word 1:10 | gtload test.db gtdel test.db 11 - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; -test -z "`sort < /dev/null 2>&1`" || exit 77 - -num2word 1:10 | gtload test.db -gtdel test.db 11 - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter echo >>"$at_stderr"; $as_echo "gtdel: cannot delete 11: Item not found " | \ $at_diff - "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 2 $at_status "$at_srcdir/delete01.at:20" - -$at_failed && at_func_log_failure +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 2 $at_status "$at_srcdir/delete01.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_6 #AT_START_7 -# 7. delete02.at:17: delete: all records -at_setup_line='delete02.at:17' -at_func_banner 1 -at_desc="delete: all records" -$at_quiet $as_echo_n " 7: $at_desc " +at_fn_group_banner 7 'delete02.at:17' \ + "delete: all records" " " 1 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "7. delete02.at:17: testing ..." + $as_echo "7. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/delete02.at:20: num2word 1:10 | gtload test.db gtdel test.db 1 2 3 4 5 6 7 8 9 10 gtdump test.db " -echo delete02.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; -num2word 1:10 | gtload test.db -gtdel test.db 1 2 3 4 5 6 7 8 9 10 -gtdump test.db - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; +at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:20" +( $at_check_trace; num2word 1:10 | gtload test.db gtdel test.db 1 2 3 4 5 6 7 8 9 10 gtdump test.db - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/delete02.at:20" -$at_failed && at_func_log_failure +) >>"$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/delete02.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_7 #AT_START_8 -# 8. dbmcreate00.at:17: create database -at_setup_line='dbmcreate00.at:17' -at_func_banner 2 -at_desc="create database" -$at_quiet $as_echo_n " 8: $at_desc " +at_fn_group_banner 8 'dbmcreate00.at:17' \ + "create database" " " 2 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "8. dbmcreate00.at:17: testing ..." + $as_echo "8. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/dbmcreate00.at:20: -test $COMPAT -eq 1 || exit 77 +test \$COMPAT -eq 1 || exit 77 -test -z "`sort < /dev/null 2>&1`" || exit 77 +test -z \"\`sort < /dev/null 2>&1\`\" || exit 77 num2word 1:1000 > input dtload test < input dtdump test | sort -k1,2 -n > output -diff -u input output +cmp -s input output || diff -u input output " -echo dbmcreate00.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; - -test $COMPAT -eq 1 || exit 77 - - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -num2word 1:1000 > input -dtload test < input -dtdump test | sort -k1,2 -n > output -diff -u input output - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; +at_fn_check_prepare_notrace 'a `...` command substitution' "dbmcreate00.at:20" +( $at_check_trace; test $COMPAT -eq 1 || exit 77 @@ -2322,42 +2334,37 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 num2word 1:1000 > input dtload test < input dtdump test | sort -k1,2 -n > output -diff -u input output - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/dbmcreate00.at:20" - -$at_failed && at_func_log_failure +cmp -s input output || diff -u input output + +) >>"$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/dbmcreate00.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_8 #AT_START_9 -# 9. dbmcvt.at:17: converting a 1.8-style database -at_setup_line='dbmcvt.at:17' -at_func_banner 2 -at_desc="converting a 1.8-style database" -$at_quiet $as_echo_n " 9: $at_desc " +at_fn_group_banner 9 'dbmcvt.at:17' \ + "converting a 1.8-style database" " " 2 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "9. dbmcvt.at:17: testing ..." + $as_echo "9. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/dbmcvt.at:20: -test $COMPAT -eq 1 || exit 77 +test \$COMPAT -eq 1 || exit 77 num2word 1:10 | dtload test rm test.dir @@ -2366,11 +2373,8 @@ dtfetch test 6 cmp test.pag test.dir >/dev/null 2>&1 && exit 1 exit 0 " -echo dbmcvt.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'an embedded newline' "dbmcvt.at:20" +( $at_check_trace; test $COMPAT -eq 1 || exit 77 @@ -2380,242 +2384,172 @@ ln test.pag test.dir dtfetch test 6 cmp test.pag test.dir >/dev/null 2>&1 && exit 1 exit 0 - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; - -test $COMPAT -eq 1 || exit 77 -num2word 1:10 | dtload test -rm test.dir -ln test.pag test.dir -dtfetch test 6 -cmp test.pag test.dir >/dev/null 2>&1 && exit 1 -exit 0 - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "six " | \ $at_diff - "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/dbmcvt.at:20" - -$at_failed && at_func_log_failure +at_fn_check_status 0 $at_status "$at_srcdir/dbmcvt.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_9 #AT_START_10 -# 10. dbmfetch00.at:17: fetch a record -at_setup_line='dbmfetch00.at:17' -at_func_banner 2 -at_desc="fetch a record" -$at_quiet $as_echo_n " 10: $at_desc " +at_fn_group_banner 10 'dbmfetch00.at:17' \ + "fetch a record" " " 2 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "10. dbmfetch00.at:17: testing ..." + $as_echo "10. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/dbmfetch00.at:20: -test $COMPAT -eq 1 || exit 77 +test \$COMPAT -eq 1 || exit 77 num2word 1:10000 | dtload test dtfetch test 1 2745 9999 " -echo dbmfetch00.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'an embedded newline' "dbmfetch00.at:20" +( $at_check_trace; test $COMPAT -eq 1 || exit 77 num2word 1:10000 | dtload test dtfetch test 1 2745 9999 - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; - -test $COMPAT -eq 1 || exit 77 -num2word 1:10000 | dtload test -dtfetch test 1 2745 9999 - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "one two thousand seven hundred and fourty-five nine thousand nine hundred and ninety-nine " | \ $at_diff - "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/dbmfetch00.at:20" - -$at_failed && at_func_log_failure +at_fn_check_status 0 $at_status "$at_srcdir/dbmfetch00.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_10 #AT_START_11 -# 11. dbmfetch01.at:17: fetch: nonexisting record -at_setup_line='dbmfetch01.at:17' -at_func_banner 2 -at_desc="fetch: nonexisting record" -$at_quiet $as_echo_n " 11: $at_desc " +at_fn_group_banner 11 'dbmfetch01.at:17' \ + "fetch: nonexisting record" " " 2 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "11. dbmfetch01.at:17: testing ..." + $as_echo "11. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/dbmfetch01.at:20: -test $COMPAT -eq 1 || exit 77 +test \$COMPAT -eq 1 || exit 77 num2word 1:10000 | dtload test dtfetch test 0 " -echo dbmfetch01.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'an embedded newline' "dbmfetch01.at:20" +( $at_check_trace; test $COMPAT -eq 1 || exit 77 num2word 1:10000 | dtload test dtfetch test 0 - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; -test $COMPAT -eq 1 || exit 77 - -num2word 1:10000 | dtload test -dtfetch test 0 - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter echo >>"$at_stderr"; $as_echo "dtfetch: 0: not found " | \ $at_diff - "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 2 $at_status "$at_srcdir/dbmfetch01.at:20" - -$at_failed && at_func_log_failure +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 2 $at_status "$at_srcdir/dbmfetch01.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_11 #AT_START_12 -# 12. dbmfetch02.at:17: fetch from a read-only database -at_setup_line='dbmfetch02.at:17' -at_func_banner 2 -at_desc="fetch from a read-only database" -$at_quiet $as_echo_n " 12: $at_desc " +at_fn_group_banner 12 'dbmfetch02.at:17' \ + "fetch from a read-only database" " " 2 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "12. dbmfetch02.at:17: testing ..." + $as_echo "12. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/dbmfetch02.at:20: -test $COMPAT -eq 1 || exit 77 +test \$COMPAT -eq 1 || exit 77 num2word 1:10 | dtload test chmod -w test.dir test.pag dtfetch test 6 10 " -echo dbmfetch02.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'an embedded newline' "dbmfetch02.at:20" +( $at_check_trace; test $COMPAT -eq 1 || exit 77 num2word 1:10 | dtload test chmod -w test.dir test.pag dtfetch test 6 10 - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; - -test $COMPAT -eq 1 || exit 77 -num2word 1:10 | dtload test -chmod -w test.dir test.pag -dtfetch test 6 10 - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "six ten " | \ $at_diff - "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/dbmfetch02.at:20" - -$at_failed && at_func_log_failure +at_fn_check_status 0 $at_status "$at_srcdir/dbmfetch02.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_12 #AT_START_13 -# 13. dbmfetch03.at:17: fetch from a read-only 1.8-style database -at_setup_line='dbmfetch03.at:17' -at_func_banner 2 -at_desc="fetch from a read-only 1.8-style database" -$at_quiet $as_echo_n " 13: $at_desc " +at_fn_group_banner 13 'dbmfetch03.at:17' \ + "fetch from a read-only 1.8-style database" " " 2 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "13. dbmfetch03.at:17: testing ..." + $as_echo "13. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/dbmfetch03.at:20: -test $COMPAT -eq 1 || exit 77 +test \$COMPAT -eq 1 || exit 77 mkdir dir cd dir @@ -2625,11 +2559,8 @@ ln test.pag test.dir chmod -w test.dir test.pag . dtfetch test 6 10 " -echo dbmfetch03.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'an embedded newline' "dbmfetch03.at:20" +( $at_check_trace; test $COMPAT -eq 1 || exit 77 @@ -2640,71 +2571,49 @@ rm test.dir ln test.pag test.dir chmod -w test.dir test.pag . dtfetch test 6 10 - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; - -test $COMPAT -eq 1 || exit 77 -mkdir dir -cd dir -num2word 1:10 | dtload test -rm test.dir -ln test.pag test.dir -chmod -w test.dir test.pag . -dtfetch test 6 10 - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "six ten " | \ $at_diff - "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/dbmfetch03.at:20" - -$at_failed && at_func_log_failure +at_fn_check_status 0 $at_status "$at_srcdir/dbmfetch03.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_13 #AT_START_14 -# 14. dbmdel00.at:17: delete a record -at_setup_line='dbmdel00.at:17' -at_func_banner 2 -at_desc="delete a record" -$at_quiet $as_echo_n " 14: $at_desc " +at_fn_group_banner 14 'dbmdel00.at:17' \ + "delete a record" " " 2 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "14. dbmdel00.at:17: testing ..." + $as_echo "14. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/dbmdel00.at:20: -test $COMPAT -eq 1 || exit 77 +test \$COMPAT -eq 1 || exit 77 -test -z "`sort < /dev/null 2>&1`" || exit 77 +test -z \"\`sort < /dev/null 2>&1\`\" || exit 77 num2word 1:10 | dtload test dtdel test 8 dtdump test | sort -k1,2 -n " -echo dbmdel00.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'a `...` command substitution' "dbmdel00.at:20" +( $at_check_trace; test $COMPAT -eq 1 || exit 77 @@ -2714,24 +2623,11 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 num2word 1:10 | dtload test dtdel test 8 dtdump test | sort -k1,2 -n - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; - -test $COMPAT -eq 1 || exit 77 - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -num2word 1:10 | dtload test -dtdel test 8 -dtdump test | sort -k1,2 -n - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "1 one 2 two 3 three @@ -2743,47 +2639,39 @@ echo >>"$at_stdout"; $as_echo "1 one 10 ten " | \ $at_diff - "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/dbmdel00.at:20" - -$at_failed && at_func_log_failure +at_fn_check_status 0 $at_status "$at_srcdir/dbmdel00.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_14 #AT_START_15 -# 15. dbmdel01.at:17: delete: non existing record -at_setup_line='dbmdel01.at:17' -at_func_banner 2 -at_desc="delete: non existing record" -$at_quiet $as_echo_n " 15: $at_desc " +at_fn_group_banner 15 'dbmdel01.at:17' \ + "delete: non existing record" " " 2 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "15. dbmdel01.at:17: testing ..." + $as_echo "15. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/dbmdel01.at:20: -test $COMPAT -eq 1 || exit 77 +test \$COMPAT -eq 1 || exit 77 -test -z "`sort < /dev/null 2>&1`" || exit 77 +test -z \"\`sort < /dev/null 2>&1\`\" || exit 77 num2word 1:10 | dtload test dtdel test 11 " -echo dbmdel01.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'a `...` command substitution' "dbmdel01.at:20" +( $at_check_trace; test $COMPAT -eq 1 || exit 77 @@ -2792,135 +2680,91 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 num2word 1:10 | dtload test dtdel test 11 - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; - -test $COMPAT -eq 1 || exit 77 - - -test -z "`sort < /dev/null 2>&1`" || exit 77 -num2word 1:10 | dtload test -dtdel test 11 - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter echo >>"$at_stderr"; $as_echo "dtdel: cannot delete 11: Item not found " | \ $at_diff - "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 2 $at_status "$at_srcdir/dbmdel01.at:20" - -$at_failed && at_func_log_failure +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 2 $at_status "$at_srcdir/dbmdel01.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_15 #AT_START_16 -# 16. dbmdel02.at:17: delete: all records -at_setup_line='dbmdel02.at:17' -at_func_banner 2 -at_desc="delete: all records" -$at_quiet $as_echo_n " 16: $at_desc " +at_fn_group_banner 16 'dbmdel02.at:17' \ + "delete: all records" " " 2 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "16. dbmdel02.at:17: testing ..." + $as_echo "16. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/dbmdel02.at:20: -test $COMPAT -eq 1 || exit 77 +test \$COMPAT -eq 1 || exit 77 num2word 1:10 | dtload test dtdel test 1 2 3 4 5 6 7 8 9 10 dtdump test " -echo dbmdel02.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; - -test $COMPAT -eq 1 || exit 77 - -num2word 1:10 | dtload test -dtdel test 1 2 3 4 5 6 7 8 9 10 -dtdump test - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; +at_fn_check_prepare_notrace 'an embedded newline' "dbmdel02.at:20" +( $at_check_trace; test $COMPAT -eq 1 || exit 77 num2word 1:10 | dtload test dtdel test 1 2 3 4 5 6 7 8 9 10 dtdump test - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/dbmdel02.at:20" -$at_failed && at_func_log_failure +) >>"$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/dbmdel02.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_16 #AT_START_17 -# 17. setopt00.at:17: setopt -at_setup_line='setopt00.at:17' -at_func_banner 3 -at_desc="setopt" -$at_quiet $as_echo_n " 17: $at_desc " +at_fn_group_banner 17 'setopt00.at:17' \ + "setopt" " " 3 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "17. setopt00.at:17: testing ..." + $as_echo "17. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/setopt00.at:20: num2word 1:1000 | gtload test.db || exit 2 gtopt test.db '!MMAP' " -echo setopt00.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'an embedded newline' "setopt00.at:20" +( $at_check_trace; num2word 1:1000 | gtload test.db || exit 2 gtopt test.db '!MMAP' - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; -num2word 1:1000 | gtload test.db || exit 2 -gtopt test.db '!MMAP' - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "GDBM_GETFLAGS: PASS * CACHESIZE: initial GDBM_SETCACHESIZE: PASS @@ -2953,60 +2797,44 @@ GDBM_GETCOALESCEBLKS: PASS GDBM_GETDBNAME: PASS " | \ $at_diff - "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/setopt00.at:20" - -$at_failed && at_func_log_failure +at_fn_check_status 0 $at_status "$at_srcdir/setopt00.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_17 #AT_START_18 -# 18. setopt01.at:17: setopt: mmap options -at_setup_line='setopt01.at:17' -at_func_banner 3 -at_desc="setopt: mmap options" -$at_quiet $as_echo_n " 18: $at_desc " +at_fn_group_banner 18 'setopt01.at:17' \ + "setopt: mmap options" " " 3 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "18. setopt01.at:17: testing ..." + $as_echo "18. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/setopt01.at:20: num2word 1:1000 | gtload test.db || exit 2 gtopt test.db 'MMAP' > out grep 'MMAP: SKIP' out >/dev/null && exit 77 cat out " -echo setopt01.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; -num2word 1:1000 | gtload test.db || exit 2 -gtopt test.db 'MMAP' > out -grep 'MMAP: SKIP' out >/dev/null && exit 77 -cat out - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; +at_fn_check_prepare_notrace 'an embedded newline' "setopt01.at:20" +( $at_check_trace; num2word 1:1000 | gtload test.db || exit 2 gtopt test.db 'MMAP' > out grep 'MMAP: SKIP' out >/dev/null && exit 77 cat out - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: echo >>"$at_stdout"; $as_echo "* MMAP: initial GDBM_GETMMAP: PASS GDBM_SETMMAP false: PASS @@ -3016,219 +2844,159 @@ GDBM_SETMAXMAPSIZE: PASS GDBM_GETMAXMAPSIZE: PASS " | \ $at_diff - "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/setopt01.at:20" - -$at_failed && at_func_log_failure +at_fn_check_status 0 $at_status "$at_srcdir/setopt01.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_18 #AT_START_19 -# 19. cloexec00.at:17: cloexec: gdbm_open -at_setup_line='cloexec00.at:17' -at_func_banner 4 -at_desc="cloexec: gdbm_open" -$at_quiet $as_echo_n " 19: $at_desc " +at_fn_group_banner 19 'cloexec00.at:17' \ + "cloexec: gdbm_open" " " 4 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "19. cloexec00.at:17: testing ..." + $as_echo "19. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/cloexec00.at:20: g_open_ce \"\$abs_builddir/fdop\" " -echo cloexec00.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'an embedded newline' "cloexec00.at:20" +( $at_check_trace; g_open_ce "$abs_builddir/fdop" - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; -g_open_ce "$abs_builddir/fdop" - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/cloexec00.at:20" -$at_failed && at_func_log_failure +) >>"$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/cloexec00.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_19 #AT_START_20 -# 20. cloexec01.at:17: cloexec: gdbm_reorganize -at_setup_line='cloexec01.at:17' -at_func_banner 4 -at_desc="cloexec: gdbm_reorganize" -$at_quiet $as_echo_n " 20: $at_desc " +at_fn_group_banner 20 'cloexec01.at:17' \ + "cloexec: gdbm_reorganize" " " 4 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "20. cloexec01.at:17: testing ..." + $as_echo "20. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/cloexec01.at:20: g_reorg_ce \"\$abs_builddir/fdop\" " -echo cloexec01.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; +at_fn_check_prepare_notrace 'an embedded newline' "cloexec01.at:20" +( $at_check_trace; g_reorg_ce "$abs_builddir/fdop" - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; -g_reorg_ce "$abs_builddir/fdop" - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/cloexec01.at:20" -$at_failed && at_func_log_failure +) >>"$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/cloexec01.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_20 #AT_START_21 -# 21. cloexec02.at:17: cloexec: dbm_open -at_setup_line='cloexec02.at:17' -at_func_banner 4 -at_desc="cloexec: dbm_open" -$at_quiet $as_echo_n " 21: $at_desc " +at_fn_group_banner 21 'cloexec02.at:17' \ + "cloexec: dbm_open" " " 4 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "21. cloexec02.at:17: testing ..." + $as_echo "21. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/cloexec02.at:20: -test $COMPAT -eq 1 || exit 77 +test \$COMPAT -eq 1 || exit 77 num2word 1:10 | dtload file d_creat_ce \"\$abs_builddir/fdop\" " -echo cloexec02.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; - -test $COMPAT -eq 1 || exit 77 - -num2word 1:10 | dtload file -d_creat_ce "$abs_builddir/fdop" - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; +at_fn_check_prepare_notrace 'an embedded newline' "cloexec02.at:20" +( $at_check_trace; test $COMPAT -eq 1 || exit 77 num2word 1:10 | dtload file d_creat_ce "$abs_builddir/fdop" - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/cloexec02.at:20" -$at_failed && at_func_log_failure +) >>"$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/cloexec02.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_21 #AT_START_22 -# 22. cloexec03.at:17: cloexec: dbm_open -creat -at_setup_line='cloexec03.at:17' -at_func_banner 4 -at_desc="cloexec: dbm_open -creat" -$at_quiet $as_echo_n " 22: $at_desc " +at_fn_group_banner 22 'cloexec03.at:17' \ + "cloexec: dbm_open -creat" " " 4 at_xfail=no -echo "# -*- compilation -*-" >> "$at_group_log" ( - $as_echo "22. cloexec03.at:17: testing ..." + $as_echo "22. $at_setup_line: testing $at_desc ..." $at_traceon -{ $at_traceoff +{ set +x $as_echo "$at_srcdir/cloexec03.at:20: -test $COMPAT -eq 1 || exit 77 +test \$COMPAT -eq 1 || exit 77 d_creat_ce \"\$abs_builddir/fdop\" -creat " -echo cloexec03.at:20 >"$at_check_line_file" - -if { echo 'Not enabling shell tracing (command contains an embedded newline)' - false; }; then - ( $at_traceon; - -test $COMPAT -eq 1 || exit 77 - -d_creat_ce "$abs_builddir/fdop" -creat - ) >"$at_stdout" 2>"$at_stder1" - at_func_filter_trace $? -else - ( :; +at_fn_check_prepare_notrace 'an embedded newline' "cloexec03.at:20" +( $at_check_trace; test $COMPAT -eq 1 || exit 77 d_creat_ce "$abs_builddir/fdop" -creat - ) >"$at_stdout" 2>"$at_stderr" -fi -at_status=$? -at_failed=false -at_func_diff_devnull "$at_stderr" || at_failed=: -at_func_diff_devnull "$at_stdout" || at_failed=: -at_func_check_status 0 $at_status "$at_srcdir/cloexec03.at:20" -$at_failed && at_func_log_failure +) >>"$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/cloexec03.at:20" +$at_failed && at_fn_log_failure $at_traceon; } - $at_traceoff + set +x $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 | eval $at_tee_pipe -at_status=`cat "$at_status_file"` +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" #AT_STOP_22