Index: libcob/screenio.c
===================================================================
--- libcob/screenio.c	(revision 344)
+++ libcob/screenio.c	(working copy)
@@ -1405,13 +1405,15 @@
 
 void
 cob_field_display (cob_field *f, cob_field *line, cob_field *column,
-		   cob_field *fgc, cob_field *bgc, const int attr)
+		   cob_field *fgc, cob_field *bgc, cob_field *scroll,
+		   const int attr)
 {
 }
 
 void
 cob_field_accept (cob_field *f, cob_field *line, cob_field *column,
-		  cob_field *fgc, cob_field *bgc, const int attr)
+		  cob_field *fgc, cob_field *bgc, cob_field *scroll,
+		  const int attr)
 {
 }
 
Index: tests/data-rep
===================================================================
--- tests/data-rep	(revision 344)
+++ tests/data-rep	(working copy)
@@ -1,75 +1,453 @@
 #! /bin/sh
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+# Generated from data-rep.at by GNU Autoconf 2.69.
+#
+#
+# Copyright (C) 2003,2004,2005,2006,2007 Keisuke Nishida
+# Copyright (C) 2007-2009 Roger While
+#
+# This file is part of GNU Cobol.
+#
+# The GNU Cobol compiler is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# GNU Cobol is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Cobol; see the file COPYING. If not, write to the
+# Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+#
+# Copyright (C) 2009-2012 Free Software Foundation, Inc.
+#
+# This test suite is free software; the Free Software Foundation gives
+# unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
 fi
-DUALCASE=1; export DUALCASE # for MKS sh
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
 else
-  as_unset=false
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
 fi
 
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
 PS1='$ '
 PS2='> '
 PS4='+ '
 
 # NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
   else
-    $as_unset $as_var
+    $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
-done
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
 
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+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_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# PATH needs CR, and LINENO needs CR and PATH.
 # Avoid depending upon Character Ranges.
 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
@@ -77,146 +455,91 @@
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
 
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  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
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # 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 before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, 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
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
     sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
       N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
       t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
+      s/-\n.*//
     ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
   # Exit status is that of the last command.
   exit
 }
 
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
 esac
 
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
 else
-  as_expr=false
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
 fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
   else
-    as_ln_s='ln -s'
+    as_ln_s='cp -pR'
   fi
-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
-rm -f conf$$ conf$$.exe conf$$.file
+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
 
-as_executable_p="test -f"
+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'"
@@ -225,14 +548,7 @@
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
 
-# CDPATH.
-$as_unset CDPATH
 
 
 SHELL=${CONFIG_SHELL-/bin/sh}
@@ -240,25 +556,7 @@
 # How were we run?
 at_cli_args="$@"
 
-# Load the config file.
-for at_file in atconfig atlocal
-do
-  test -r $at_file || continue
-  . ./$at_file || { echo "$as_me: error: invalid content: $at_file" >&2
-   { (exit 1); exit 1; }; }
-done
 
-# atconfig delivers paths relative to the directory the test suite is
-# in, but the groups themselves are run in testsuite-dir/group-dir.
-if test -n "$at_top_srcdir"; then
-  builddir=../..
-  for at_dir in srcdir top_srcdir top_builddir
-  do
-    at_val=`eval echo '${'at_$at_dir'}'`
-    eval "$at_dir=\$at_val/../.."
-  done
-fi
-
 # Not all shells have the 'times' builtin; the subshell is needed to make
 # sure we discard the 'times: not found' message from the shell.
 at_times_p=false
@@ -268,9 +566,14 @@
 at_debug_args=
 # -e sets to true
 at_errexit_p=false
-# Shall we be verbose?
+# Shall we be verbose?  ':' means no, empty means yes.
 at_verbose=:
-at_quiet=echo
+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.
@@ -277,39 +580,39 @@
 at_debug_p=false
 # Display help message?
 at_help_p=false
+# Display the version message?
+at_version_p=false
 # List test groups?
 at_list_p=false
+# --clean
+at_clean=false
 # Test groups to run
 at_groups=
+# Whether to rerun failed tests.
+at_recheck=
+# Whether a write failure occurred
+at_write_fail=0
 
-# The directory we are in.
+# The directory we run the suite in.  Default to . if no -C option.
 at_dir=`pwd`
-# The directory the whole suite works in.
-# Should be absolutely to let the user `cd' at will.
-at_suite_dir=$at_dir/$as_me.dir
-# The file containing the suite.
-at_suite_log=$at_dir/$as_me.log
-# The file containing the location of the last AT_CHECK.
-at_check_line_file=$at_suite_dir/at-check-line
-# The file containing the exit status of the last command.
-at_status_file=$at_suite_dir/at-status
-# The files containing the output of the tested commands.
-at_stdout=$at_suite_dir/at-stdout
-at_stder1=$at_suite_dir/at-stder1
-at_stderr=$at_suite_dir/at-stderr
-# The file containing dates.
-at_times_file=$at_suite_dir/at-times
+# An absolute reference to this testsuite script.
+case $as_myself in
+  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
+  * ) at_myself=$at_dir/$as_myself ;;
+esac
+# Whether -C is in effect.
+at_change_dir=false
 
+# Whether to enable colored test results.
+at_color=auto
 # List of the tested programs.
 at_tested='cobc'
-# 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'
-# As many dots as there are digits in the last test group number.
+# As many question marks as there are digits in the last test group number.
 # Used to normalize the test group numbers so that `ls' lists them in
 # numerical order.
-at_format='..'
+at_format='??'
 # Description of all the test groups.
-at_help_all='1;binary.at:25;BINARY: 2-4-8 big-endian;binary;
+at_help_all="1;binary.at:25;BINARY: 2-4-8 big-endian;binary;
 2;binary.at:210;BINARY: 2-4-8 native;binary;
 3;binary.at:400;BINARY: 1-2-4-8 big-endian;binary;
 4;binary.at:585;BINARY: 1-2-4-8 native;binary;
@@ -326,9 +629,34 @@
 15;packed.at:297;PACKED-DECIMAL arithmetic (2);packed;
 16;packed.at:331;PACKED-DECIMAL numeric test;packed;
 17;pointer.at:24;POINTER: display;pointer;
-'
+"
+# List of the all the test groups.
+at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
 
-at_keywords=
+# at_fn_validate_ranges NAME...
+# -----------------------------
+# Validate and normalize the test group number contained in each variable
+# NAME. Leading zeroes are treated as decimal.
+at_fn_validate_ranges ()
+{
+  for at_grp
+  do
+    eval at_value=\$$at_grp
+    if test $at_value -lt 1 || test $at_value -gt 17; then
+      $as_echo "invalid test group: $at_value" >&2
+      exit 1
+    fi
+    case $at_value in
+      0*) # We want to treat leading 0 as decimal, like expr and test, but
+	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
+	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
+	  # expr fork, but it is not worth the effort to determine if the
+	  # shell supports XSI when the user can just avoid leading 0.
+	  eval $at_grp='`expr $at_value + 0`' ;;
+    esac
+  done
+}
+
 at_prev=
 for at_option
 do
@@ -338,7 +666,10 @@
     at_prev=
   fi
 
-  at_optarg=`expr "x$at_option" : 'x[^=]*=\(.*\)'`
+  case $at_option in
+  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
+  *)    at_optarg= ;;
+  esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
@@ -352,15 +683,26 @@
 	;;
 
     --version | -V )
-	echo "$as_me (GNU Cobol 1.1)"
-	exit 0
+	at_version_p=:
 	;;
 
     --clean | -c )
-	rm -rf $at_suite_dir $at_suite_log
-	exit 0
+	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=:
 	;;
@@ -371,30 +713,35 @@
 	;;
 
     --verbose | -v )
-	at_verbose=echo; at_quiet=:
+	at_verbose=; at_quiet=:
 	;;
 
     --trace | -x )
-	at_traceon='set -vx'; at_traceoff='set +vx'
+	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_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 '-'`
-	at_range=`echo " $at_groups_all " | \
-	  sed -e 's,^.* '$at_range_start' ,'$at_range_start' ,'`
-	at_groups="$at_groups$at_range "
+	at_range_start=`echo $at_option |tr -d X-`
+	at_fn_validate_ranges at_range_start
+	at_range=`$as_echo "$at_groups_all" | \
+	  sed -ne '/^'$at_range_start'$/,$p'`
+	as_fn_append at_groups "$at_range$as_nl"
 	;;
 
     -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
-	at_range_end=`echo $at_option |tr -d '-'`
-	at_range=`echo " $at_groups_all " | \
-	  sed -e 's, '$at_range_end' .*$, '$at_range_end','`
-	at_groups="$at_groups$at_range "
+	at_range_end=`echo $at_option |tr -d X-`
+	at_fn_validate_ranges at_range_end
+	at_range=`$as_echo "$at_groups_all" | \
+	  sed -ne '1,/^'$at_range_end'$/p'`
+	as_fn_append at_groups "$at_range$as_nl"
 	;;
 
     [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
@@ -403,81 +750,159 @@
     [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
     [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
     [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
-	at_range_start=`echo $at_option |sed 's,-.*,,'`
-	at_range_end=`echo $at_option |sed 's,.*-,,'`
-	# FIXME: Maybe test to make sure start <= end?
-	at_range=`echo " $at_groups_all " | \
-	  sed -e 's,^.* '$at_range_start' ,'$at_range_start' ,' \
-	      -e 's, '$at_range_end' .*$, '$at_range_end','`
-	at_groups="$at_groups$at_range "
+	at_range_start=`expr $at_option : '\(.*\)-'`
+	at_range_end=`expr $at_option : '.*-\(.*\)'`
+	if test $at_range_start -gt $at_range_end; then
+	  at_tmp=$at_range_end
+	  at_range_end=$at_range_start
+	  at_range_start=$at_tmp
+	fi
+	at_fn_validate_ranges at_range_start at_range_end
+	at_range=`$as_echo "$at_groups_all" | \
+	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
+	as_fn_append at_groups "$at_range$as_nl"
 	;;
 
+    # Directory selection.
+    --directory | -C )
+	at_prev=--directory
+	;;
+    --directory=* )
+	at_change_dir=:
+	at_dir=$at_optarg
+	if test x- = "x$at_dir" ; then
+	  at_dir=./-
+	fi
+	;;
+
+    # Parallel execution.
+    --jobs | -j )
+	at_jobs=0
+	;;
+    --jobs=* | -j[0-9]* )
+	if test -n "$at_optarg"; then
+	  at_jobs=$at_optarg
+	else
+	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
+	fi
+	case $at_jobs in *[!0-9]*)
+	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
+	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
+	esac
+	;;
+
     # Keywords.
     --keywords | -k )
 	at_prev=--keywords
 	;;
     --keywords=* )
-	at_keywords="$at_keywords,$at_optarg"
+	at_groups_selected=$at_help_all
+	at_save_IFS=$IFS
+	IFS=,
+	set X $at_optarg
+	shift
+	IFS=$at_save_IFS
+	for at_keyword
+	do
+	  at_invert=
+	  case $at_keyword in
+	  '!'*)
+	    at_invert="-v"
+	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
+	    ;;
+	  esac
+	  # It is on purpose that we match the test group titles too.
+	  at_groups_selected=`$as_echo "$at_groups_selected" |
+	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
+	done
+	# Smash the keywords.
+	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
+	as_fn_append at_groups "$at_groups_selected$as_nl"
 	;;
+    --recheck)
+	at_recheck=:
+	;;
 
     *=*)
-  	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
-  	# Reject names that are not valid shell variable names.
-  	expr "x$at_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-  	  { echo "$as_me: error: invalid variable name: $at_envvar" >&2
-   { (exit 1); exit 1; }; }
-  	at_value=`echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
-  	eval "$at_envvar='$at_value'"
-  	export $at_envvar
-	# Propagate to debug scripts.
-  	at_debug_args="$at_debug_args $at_option"
-  	;;
+	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
+	# Reject names that are not valid shell variable names.
+	case $at_envvar in
+	  '' | [0-9]* | *[!_$as_cr_alnum]* )
+	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
+	esac
+	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
+	# Export now, but save eval for later and for debug scripts.
+	export $at_envvar
+	as_fn_append at_debug_args " $at_envvar='$at_value'"
+	;;
 
-     *) echo "$as_me: invalid option: $at_option" >&2
-	echo "Try \`$0 --help' for more information." >&2
+     *) $as_echo "$as_me: invalid option: $at_option" >&2
+	$as_echo "Try \`$0 --help' for more information." >&2
 	exit 1
 	;;
   esac
 done
 
-# Process the --keywords
-if test -n "$at_keywords"; then
-  at_groups_selected=$at_help_all
-  for at_keyword in `IFS=,; set X $at_keywords; shift; echo ${1+$@}`
-  do
-    # It is on purpose that we match the test group titles too.
-    at_groups_selected=`echo "$at_groups_selected" |
-			grep -i "^[^;]*;[^;]*.*[; ]$at_keyword[ ;]"`
-  done
-  at_groups_selected=`echo "$at_groups_selected" | sed 's/;.*//'`
-  # Smash the end of lines.
-  at_groups_selected=`echo $at_groups_selected`
-  at_groups="$at_groups$at_groups_selected "
+# Verify our last option didn't require an argument
+if test -n "$at_prev"; then :
+  as_fn_error $? "\`$at_prev' requires an argument"
 fi
 
+# The file containing the suite.
+at_suite_log=$at_dir/$as_me.log
+
 # Selected test groups.
-test -z "$at_groups" && at_groups=$at_groups_all
+if test -z "$at_groups$at_recheck"; then
+  at_groups=$at_groups_all
+else
+  if test -n "$at_recheck" && test -r "$at_suite_log"; then
+    at_oldfails=`sed -n '
+      /^Failed tests:$/,/^Skipped tests:$/{
+	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+      }
+      /^Unexpected passes:$/,/^## Detailed failed tests/{
+	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+      }
+      /^## Detailed failed tests/q
+      ' "$at_suite_log"`
+    as_fn_append at_groups "$at_oldfails$as_nl"
+  fi
+  # Sort the tests, removing duplicates.
+  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
+fi
 
+if test x"$at_color" = xalways \
+   || { test x"$at_color" = xauto && test -t 1; }; then
+  at_red=`printf '\033[0;31m'`
+  at_grn=`printf '\033[0;32m'`
+  at_lgn=`printf '\033[1;32m'`
+  at_blu=`printf '\033[1;34m'`
+  at_std=`printf '\033[m'`
+else
+  at_red= at_grn= at_lgn= at_blu= at_std=
+fi
+
 # Help message.
 if $at_help_p; then
-  cat <<_ATEOF
+  cat <<_ATEOF || at_write_fail=1
 Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
 
-Run all the tests, or the selected TESTS, and save a detailed log file.
-Upon failure, create debugging scripts.
+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
+cat <<_ATEOF || at_write_fail=1
 
 Operation modes:
   -h, --help     print the help message, then exit
@@ -485,56 +910,211 @@
   -c, --clean    remove all the files this test suite might create and exit
   -l, --list     describes all the tests, or the selected TESTS
 _ATEOF
-cat <<_ATEOF
+cat <<_ATEOF || at_write_fail=1
 
 Execution tuning:
+  -C, --directory=DIR
+                 change to directory DIR before starting
+      --color[=never|auto|always]
+                 disable colored test results, or enable even without terminal
+  -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
-	         accumulates
+                 select the tests matching all the comma-separated KEYWORDS
+                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
+      --recheck  select all tests that failed or passed unexpectedly last time
   -e, --errexit  abort as soon as a test fails; implies --debug
   -v, --verbose  force more detailed output
-	         default for debugging scripts
-  -d, --debug    inhibit clean up and debug script creation
-	         default for debugging scripts
+                 default for debugging scripts
+  -d, --debug    inhibit clean up and top-level logging
+                 default for debugging scripts
   -x, --trace    enable tests shell tracing
 _ATEOF
-cat <<_ATEOF
+cat <<_ATEOF || at_write_fail=1
 
 Report bugs to <open-cobol-list@lists.sourceforge.net>.
+General help using GNU software: <http://www.gnu.org/gethelp/>.
 _ATEOF
-  exit 0
+  exit $at_write_fail
 fi
 
 # List of tests.
 if $at_list_p; then
-  cat <<_ATEOF
+  cat <<_ATEOF || at_write_fail=1
 GNU Cobol 1.1 test suite: Data Representation test groups:
 
- NUM: FILENAME:LINE      TEST-GROUP-NAME
+ NUM: FILE-NAME:LINE     TEST-GROUP-NAME
       KEYWORDS
 
 _ATEOF
-  # "  1 42  45 " => "^(1|42|45);".
-  at_groups_pattern=`echo "$at_groups" | sed 's/^  *//;s/  *$//;s/  */|/g'`
-  echo "$at_help_all" |
-    awk 'BEGIN { FS = ";" }
-	 { if ($1 !~ /^('"$at_groups_pattern"')$/) next }
-	 { if ($1) printf " %3d: %-18s %s\n", $1, $2, $3
-	   if ($4) printf "      %s\n", $4 } '
-  exit 0
+  # Pass an empty line as separator between selected groups and help.
+  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
+    awk 'NF == 1 && FS != ";" {
+	   selected[$ 1] = 1
+	   next
+	 }
+	 /^$/ { FS = ";" }
+	 NF > 0 {
+	   if (selected[$ 1]) {
+	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
+	     if ($ 4) {
+	       lmax = 79
+	       indent = "     "
+	       line = indent
+	       len = length (line)
+	       n = split ($ 4, a, " ")
+	       for (i = 1; i <= n; i++) {
+		 l = length (a[i]) + 1
+		 if (i > 1 && len + l > lmax) {
+		   print line
+		   line = indent " " a[i]
+		   len = length (line)
+		 } else {
+		   line = line " " a[i]
+		   len += l
+		 }
+	       }
+	       if (n)
+		 print line
+	     }
+	   }
+	 }' || at_write_fail=1
+  exit $at_write_fail
 fi
+if $at_version_p; then
+  $as_echo "$as_me (GNU Cobol 1.1)" &&
+  cat <<\_ATEOF || at_write_fail=1
 
+
+Copyright (C) 2003,2004,2005,2006,2007 Keisuke Nishida
+Copyright (C) 2007-2009 Roger While
+
+This file is part of GNU Cobol.
+
+The GNU Cobol compiler is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+GNU Cobol is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Cobol; see the file COPYING. If not, write to the
+Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+MA 02110-1301 USA
+
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This test suite is free software; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+_ATEOF
+  exit $at_write_fail
+fi
+
+# Should we print banners?  Yes if more than one test is run.
+case $at_groups in #(
+  *$as_nl* )
+      at_print_banners=: ;; #(
+  * ) at_print_banners=false ;;
+esac
+# Text for banner N, set to a single space once printed.
+
+# Take any -C into account.
+if $at_change_dir ; then
+  test x != "x$at_dir" && cd "$at_dir" \
+    || as_fn_error $? "unable to change directory"
+  at_dir=`pwd`
+fi
+
+# Load the config files for any default variable assignments.
+for at_file in atconfig atlocal
+do
+  test -r $at_file || continue
+  . ./$at_file || as_fn_error $? "invalid content: $at_file"
+done
+
+# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
+: "${at_top_build_prefix=$at_top_builddir}"
+
+# Perform any assignments requested during argument parsing.
+eval "$at_debug_args"
+
+# atconfig delivers names relative to the directory the test suite is
+# in, but the groups themselves are run in testsuite-dir/group-dir.
+if test -n "$at_top_srcdir"; then
+  builddir=../..
+  for at_dir_var in srcdir top_srcdir top_build_prefix
+  do
+    eval at_val=\$at_$at_dir_var
+    case $at_val in
+      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
+      *) at_prefix=../../ ;;
+    esac
+    eval "$at_dir_var=\$at_prefix\$at_val"
+  done
+fi
+
+## -------------------- ##
+## Directory structure. ##
+## -------------------- ##
+
+# This is the set of directories and files used by this script
+# (non-literals are capitalized):
+#
+# TESTSUITE         - the testsuite
+# TESTSUITE.log     - summarizes the complete testsuite run
+# TESTSUITE.dir/    - created during a run, remains after -d or failed test
+# + at-groups/      - during a run: status of all groups in run
+# | + NNN/          - during a run: meta-data about test group NNN
+# | | + check-line  - location (source file and line) of current AT_CHECK
+# | | + status      - exit status of current AT_CHECK
+# | | + stdout      - stdout of current AT_CHECK
+# | | + stder1      - stderr, including trace
+# | | + stderr      - stderr, with trace filtered out
+# | | + test-source - portion of testsuite that defines group
+# | | + times       - timestamps for computing duration
+# | | + pass        - created if group passed
+# | | + xpass       - created if group xpassed
+# | | + fail        - created if group failed
+# | | + xfail       - created if group xfailed
+# | | + skip        - created if group skipped
+# + at-stop         - during a run: end the run if this file exists
+# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
+# + 0..NNN/         - created for each group NNN, remains after -d or failed test
+# | + TESTSUITE.log - summarizes the group results
+# | + ...           - files created during the group
+
+# The directory the whole suite works in.
+# Should be absolute to let the user `cd' at will.
+at_suite_dir=$at_dir/$as_me.dir
+# The file containing the suite ($at_dir might have changed since earlier).
+at_suite_log=$at_dir/$as_me.log
+# The directory containing helper files per test group.
+at_helper_dir=$at_suite_dir/at-groups
+# Stop file: if it exists, do not start new jobs.
+at_stop_file=$at_suite_dir/at-stop
+# The fifo used for the job dispatcher.
+at_job_fifo=$at_suite_dir/at-job-fifo
+
+if $at_clean; then
+  test -d "$at_suite_dir" &&
+    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
+  rm -f -r "$at_suite_dir" "$at_suite_log"
+  exit $?
+fi
+
 # Don't take risks: use only absolute directories in PATH.
 #
-# For stand-alone test suites, AUTOTEST_PATH is relative to `.'.
+# For stand-alone test suites (ie. atconfig was not found),
+# AUTOTEST_PATH is relative to `.'.
 #
 # For embedded test suites, AUTOTEST_PATH is relative to the top level
 # of the package.  Then expand it into build/src parts, since users
 # may create executables in both places.
-#
-# There might be directories that don't exist, but don't redirect
-# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
-AUTOTEST_PATH=`echo $AUTOTEST_PATH | tr ':' $PATH_SEPARATOR`
+AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
 at_path=
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $AUTOTEST_PATH $PATH
@@ -541,89 +1121,90 @@
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  case $as_dir in
+    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
+case $as_dir in
   [\\/]* | ?:[\\/]* )
-    at_path=$at_path$PATH_SEPARATOR$as_dir
+    as_fn_append at_path "$as_dir"
     ;;
   * )
-    if test -z "$at_top_builddir"; then
+    if test -z "$at_top_build_prefix"; then
       # Stand-alone test suite.
-      at_path=$at_path$PATH_SEPARATOR$as_dir
+      as_fn_append at_path "$as_dir"
     else
       # Embedded test suite.
-      at_path=$at_path$PATH_SEPARATOR$at_top_builddir/$as_dir
-      at_path=$at_path$PATH_SEPARATOR$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
 
 
 # Now build and simplify PATH.
-PATH=
+#
+# There might be directories that don't exist, but don't redirect
+# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
+at_new_path=
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $at_path
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  as_dir=`(cd "$as_dir" && pwd) 2>/dev/null`
-test -d "$as_dir" || continue
-case $PATH in
-	          $as_dir                 | \
-	          $as_dir$PATH_SEPARATOR* | \
-  *$PATH_SEPARATOR$as_dir                 | \
-  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR* ) ;;
-
-  '') PATH=$as_dir ;;
-   *) PATH=$PATH$PATH_SEPARATOR$as_dir ;;
+    test -d "$as_dir" || continue
+case $as_dir in
+  [\\/]* | ?:[\\/]* ) ;;
+  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
 esac
-done
+case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
+  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
+  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
+  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
+esac
+  done
+IFS=$as_save_IFS
 
+PATH=$at_new_path
 export PATH
 
 # Setting up the FDs.
+
+
+
 # 5 is the log file.  Not to be overwritten if `-d'.
+if $at_debug_p; then
+  at_suite_log=/dev/null
+else
+  : >"$at_suite_log"
+fi
+exec 5>>"$at_suite_log"
 
-$at_debug_p && at_suite_log=/dev/null
-exec 5>$at_suite_log
-
 # Banners and logs.
-cat <<\_ASBOX
-## ---------------------------------------------- ##
+$as_echo "## ---------------------------------------------- ##
 ## GNU Cobol 1.1 test suite: Data Representation. ##
-## ---------------------------------------------- ##
-_ASBOX
+## ---------------------------------------------- ##"
 {
-  cat <<\_ASBOX
-## ---------------------------------------------- ##
+  $as_echo "## ---------------------------------------------- ##
 ## GNU Cobol 1.1 test suite: Data Representation. ##
-## ---------------------------------------------- ##
-_ASBOX
+## ---------------------------------------------- ##"
   echo
 
-  echo "$as_me: command line was:"
-  echo "  $ $0 $at_cli_args"
+  $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.
-  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
-    for at_file in `find "$at_top_srcdir" -name ChangeLog -print`
-    do
-      echo "$as_me: $at_file:"
-      sed 's/^/| /;10q' $at_file
-      echo
-    done
+    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
+    echo
+  fi
 
-    {
+  {
 cat <<_ASUNAME
 ## --------- ##
 ## Platform. ##
@@ -641,7 +1222,7 @@
 /bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
 /bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
 /bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
@@ -653,27 +1234,179 @@
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
 
 }
-    echo
-  fi
+  echo
 
   # Contents of the config files.
   for at_file in atconfig atlocal
   do
     test -r $at_file || continue
-    echo "$as_me: $at_file:"
+    $as_echo "$as_me: $at_file:"
     sed 's/^/| /' $at_file
     echo
   done
+} >&5
 
-  cat <<\_ASBOX
-## ---------------- ##
+
+## ------------------------- ##
+## Autotest shell functions. ##
+## ------------------------- ##
+
+# at_fn_banner NUMBER
+# -------------------
+# Output banner NUMBER, provided the testsuite is running multiple groups and
+# this particular banner has not yet been printed.
+at_fn_banner ()
+{
+  $at_print_banners || return 0
+  eval at_banner_text=\$at_banner_text_$1
+  test "x$at_banner_text" = "x " && return 0
+  eval "at_banner_text_$1=\" \""
+  if test -z "$at_banner_text"; then
+    $at_first || echo
+  else
+    $as_echo "$as_nl$at_banner_text$as_nl"
+  fi
+} # at_fn_banner
+
+# at_fn_check_prepare_notrace REASON LINE
+# ---------------------------------------
+# Perform AT_CHECK preparations for the command at LINE for an untraceable
+# command; REASON is the reason for disabling tracing.
+at_fn_check_prepare_notrace ()
+{
+  $at_trace_echo "Not enabling shell tracing (command contains $1)"
+  $as_echo "$2" >"$at_check_line_file"
+  at_check_trace=: at_check_filter=:
+  : >"$at_stdout"; : >"$at_stderr"
+}
+
+# at_fn_check_prepare_trace LINE
+# ------------------------------
+# Perform AT_CHECK preparations for the command at LINE for a traceable
+# command.
+at_fn_check_prepare_trace ()
+{
+  $as_echo "$1" >"$at_check_line_file"
+  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
+  : >"$at_stdout"; : >"$at_stderr"
+}
+
+# at_fn_check_prepare_dynamic COMMAND LINE
+# ----------------------------------------
+# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
+# preparation function.
+at_fn_check_prepare_dynamic ()
+{
+  case $1 in
+    *$as_nl*)
+      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
+    *)
+      at_fn_check_prepare_trace "$2" ;;
+  esac
+}
+
+# at_fn_filter_trace
+# ------------------
+# Remove the lines in the file "$at_stderr" generated by "set -x" and print
+# them to stderr.
+at_fn_filter_trace ()
+{
+  mv "$at_stderr" "$at_stder1"
+  grep '^ *+' "$at_stder1" >&2
+  grep -v '^ *+' "$at_stder1" >"$at_stderr"
+}
+
+# at_fn_log_failure FILE-LIST
+# ---------------------------
+# Copy the files in the list on stdout with a "> " prefix, and exit the shell
+# with a failure exit code.
+at_fn_log_failure ()
+{
+  for file
+    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
+  echo 1 > "$at_status_file"
+  exit 1
+}
+
+# at_fn_check_skip EXIT-CODE LINE
+# -------------------------------
+# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
+# the test group subshell with that same exit code. Use LINE in any report
+# about test failure.
+at_fn_check_skip ()
+{
+  case $1 in
+    99) echo 99 > "$at_status_file"; at_failed=:
+	$as_echo "$2: hard failure"; exit 99;;
+    77) echo 77 > "$at_status_file"; exit 77;;
+  esac
+}
+
+# at_fn_check_status EXPECTED EXIT-CODE LINE
+# ------------------------------------------
+# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
+# Otherwise, if it is 77 or 99, exit the test group subshell with that same
+# exit code; if it is anything else print an error message referring to LINE,
+# and fail the test.
+at_fn_check_status ()
+{
+  case $2 in
+    $1 ) ;;
+    77) echo 77 > "$at_status_file"; exit 77;;
+    99) echo 99 > "$at_status_file"; at_failed=:
+	$as_echo "$3: hard failure"; exit 99;;
+    *) $as_echo "$3: exit code was $2, expected $1"
+      at_failed=:;;
+  esac
+}
+
+# at_fn_diff_devnull FILE
+# -----------------------
+# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
+# invocations.
+at_fn_diff_devnull ()
+{
+  test -s "$1" || return 0
+  $at_diff "$at_devnull" "$1"
+}
+
+# at_fn_test NUMBER
+# -----------------
+# Parse out test NUMBER from the tail of this file.
+at_fn_test ()
+{
+  eval at_sed=\$at_sed$1
+  sed "$at_sed" "$at_myself" > "$at_test_source"
+}
+
+# at_fn_create_debugging_script
+# -----------------------------
+# Create the debugging script $at_group_dir/run which will reproduce the
+# current test group.
+at_fn_create_debugging_script ()
+{
+  {
+    echo "#! /bin/sh" &&
+    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
+    $as_echo "cd '$at_dir'" &&
+    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
+    echo 'exit 1'
+  } >"$at_group_dir/run" &&
+  chmod +x "$at_group_dir/run"
+}
+
+## -------------------------------- ##
+## End of autotest shell functions. ##
+## -------------------------------- ##
+{
+  $as_echo "## ---------------- ##
 ## Tested programs. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
   echo
 } >&5
 
@@ -681,51 +1414,44 @@
 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
     {
-      echo "data-rep.at:25: $as_dir/$at_program --version"
-      $as_dir/$at_program --version
+      $as_echo "$at_srcdir/data-rep.at:25: $at_program_ --version"
+      "$at_program_" --version </dev/null
       echo
     } >&5 2>&1
   else
-    { { echo "$as_me:$LINENO: error: cannot find $at_program" >&5
-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`
-at_start_time=`(date +%s) 2>/dev/null`
-echo "$as_me: starting at: $at_start_date" >&5
-at_xpass_list=
-at_xfail_list=
-at_pass_list=
-at_fail_list=
-at_skip_list=
-at_group_count=0
+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 ||
-  { { echo "$as_me:$LINENO: error: cannot create $at_suite_dir" >&5
-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
@@ -732,74 +1458,601 @@
   at_devnull=/dev/null
 else
   at_devnull=$at_suite_dir/devnull
-  cp /dev/null $at_devnull
+  >"$at_devnull"
 fi
 
 # Use `diff -u' when possible.
-if diff -u $at_devnull $at_devnull >/dev/null 2>&1; then
+if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
+then
   at_diff='diff -u'
 else
   at_diff=diff
 fi
 
+# Get the last needed group.
+for at_group in : $at_groups; do :; done
 
-for at_group in $at_groups
-do
-  # Be sure to come back to the top test directory.
-  cd $at_suite_dir
+# Extract the start and end lines of each test group at the tail
+# of this file
+awk '
+BEGIN { FS="" }
+/^#AT_START_/ {
+  start = NR
+}
+/^#AT_STOP_/ {
+  test = substr ($ 0, 10)
+  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
+  if (test == "'"$at_group"'") exit
+}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
+. "$at_suite_dir/at-source-lines" ||
+  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
+rm -f "$at_suite_dir/at-source-lines"
 
-  case $at_group in
-    banner-*)
-      at_group_log=$at_suite_log
-      ;;
+# 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
 
-    *)
-      # Skip tests we already run (using --keywords makes it easy to get
-      # duplication).
-      case " $at_pass_test $at_skip_test $at_fail_test " in
-	*" $at_group "* ) continue;;
-      esac
+# 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
 
-      # Normalize the test group number.
-      at_group_normalized=`expr "00000$at_group" : ".*\($at_format\)"`
+# Set up helper dirs.
+rm -rf "$at_helper_dir" &&
+mkdir "$at_helper_dir" &&
+cd "$at_helper_dir" &&
+{ test -z "$at_groups" || mkdir $at_groups; } ||
+as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
 
-      # Create a fresh directory for the next test group, and enter.
-      at_group_dir=$at_suite_dir/$at_group_normalized
-      at_group_log=$at_group_dir/$as_me.log
-      rm -rf $at_group_dir
-      mkdir $at_group_dir ||
-	{ { echo "$as_me:$LINENO: error: cannot create $at_group_dir" >&5
-echo "$as_me: error: cannot create $at_group_dir" >&2;}
-   { (exit 1); exit 1; }; }
-      cd $at_group_dir
-      ;;
-  esac
+# 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.
 
-  echo 0 > $at_status_file
+# at_fn_group_prepare
+# -------------------
+# Prepare for running a test group.
+at_fn_group_prepare ()
+{
+  # The directory for additional per-group helper files.
+  at_job_dir=$at_helper_dir/$at_group
+  # The file containing the location of the last AT_CHECK.
+  at_check_line_file=$at_job_dir/check-line
+  # The file containing the exit status of the last command.
+  at_status_file=$at_job_dir/status
+  # The files containing the output of the tested commands.
+  at_stdout=$at_job_dir/stdout
+  at_stder1=$at_job_dir/stder1
+  at_stderr=$at_job_dir/stderr
+  # The file containing the code for a test group.
+  at_test_source=$at_job_dir/test-source
+  # The file containing dates.
+  at_times_file=$at_job_dir/times
 
+  # Be sure to come back to the top test directory.
+  cd "$at_suite_dir"
+
   # Clearly separate the test groups when verbose.
-  test $at_group_count != 0 && $at_verbose
+  $at_first || $at_verbose echo
 
+  at_group_normalized=$at_group
+
+  eval 'while :; do
+    case $at_group_normalized in #(
+    '"$at_format"'*) break;;
+    esac
+    at_group_normalized=0$at_group_normalized
+  done'
+
+
+  # Create a fresh directory for the next test group, and enter.
+  # If one already exists, the user may have invoked ./run from
+  # within that directory; we remove the contents, but not the
+  # directory itself, so that we aren't pulling the rug out from
+  # under the shell's notion of the current directory.
+  at_group_dir=$at_suite_dir/$at_group_normalized
+  at_group_log=$at_group_dir/$as_me.log
+  if test -d "$at_group_dir"; then
+  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
+  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
+fi ||
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
+$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
+  # Be tolerant if the above `rm' was not able to remove the directory.
+  as_dir="$at_group_dir"; as_fn_mkdir_p
+
+  echo 0 > "$at_status_file"
+
   # In verbose mode, append to the log file *and* show on
-  # the standard output; in quiet mode only write to the log
-  if test $at_verbose = echo; then
-    at_tee_pipe="tee -a $at_group_log"
+  # the standard output; in quiet mode only write to the log.
+  if test -z "$at_verbose"; then
+    at_tee_pipe='tee -a "$at_group_log"'
   else
-    at_tee_pipe="cat >> $at_group_log"
+    at_tee_pipe='cat >> "$at_group_log"'
   fi
+}
 
-  case $at_group in
-  1 ) # 1. binary.at:25: BINARY: 2-4-8 big-endian
-    at_setup_line='binary.at:25'
-    at_desc='BINARY: 2-4-8 big-endian'
-    $at_quiet $ECHO_N "  1: BINARY: 2-4-8 big-endian                     $ECHO_C"
-    at_xfail=no
+# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
+# -------------------------------------------------
+# Declare the test group ORDINAL, located at LINE with group description DESC,
+# and residing under BANNER. Use PAD to align the status column.
+at_fn_group_banner ()
+{
+  at_setup_line="$2"
+  test -n "$5" && at_fn_banner $5
+  at_desc="$3"
+  case $1 in
+    [0-9])      at_desc_line="  $1: ";;
+    [0-9][0-9]) at_desc_line=" $1: " ;;
+    *)          at_desc_line="$1: "  ;;
+  esac
+  as_fn_append at_desc_line "$3$4"
+  $at_quiet $as_echo_n "$at_desc_line"
+  echo "#                             -*- compilation -*-" >> "$at_group_log"
+}
+
+# at_fn_group_postprocess
+# -----------------------
+# Perform cleanup after running a test group.
+at_fn_group_postprocess ()
+{
+  # Be sure to come back to the suite directory, in particular
+  # since below we might `rm' the group directory we are in currently.
+  cd "$at_suite_dir"
+
+  if test ! -f "$at_check_line_file"; then
+    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
+      A failure happened in a test group before any test could be
+      run. This means that test suite is improperly designed.  Please
+      report this failure to <open-cobol-list@lists.sourceforge.net>.
+_ATEOF
+    $as_echo "$at_setup_line" >"$at_check_line_file"
+    at_status=99
+  fi
+  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
+  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
+  case $at_xfail:$at_status in
+    yes:0)
+	at_msg="UNEXPECTED PASS"
+	at_res=xpass
+	at_errexit=$at_errexit_p
+	at_color=$at_red
+	;;
+    no:0)
+	at_msg="ok"
+	at_res=pass
+	at_errexit=false
+	at_color=$at_grn
+	;;
+    *:77)
+	at_msg='skipped ('`cat "$at_check_line_file"`')'
+	at_res=skip
+	at_errexit=false
+	at_color=$at_blu
+	;;
+    no:* | *:99)
+	at_msg='FAILED ('`cat "$at_check_line_file"`')'
+	at_res=fail
+	at_errexit=$at_errexit_p
+	at_color=$at_red
+	;;
+    yes:*)
+	at_msg='expected failure ('`cat "$at_check_line_file"`')'
+	at_res=xfail
+	at_errexit=false
+	at_color=$at_lgn
+	;;
+  esac
+  echo "$at_res" > "$at_job_dir/$at_res"
+  # In parallel mode, output the summary line only afterwards.
+  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
+    $as_echo "$at_desc_line $at_color$at_msg$at_std"
+  else
+    # Make sure there is a separator even with long titles.
+    $as_echo " $at_color$at_msg$at_std"
+  fi
+  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
+  case $at_status in
+    0|77)
+      # $at_times_file is only available if the group succeeded.
+      # We're not including the group log, so the success message
+      # is written in the global log separately.  But we also
+      # write to the group log in case they're using -d.
+      if test -f "$at_times_file"; then
+	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
+	rm -f "$at_times_file"
+      fi
+      $as_echo "$at_log_msg" >> "$at_group_log"
+      $as_echo "$at_log_msg" >&5
+
+      # Cleanup the group directory, unless the user wants the files
+      # or the success was unexpected.
+      if $at_debug_p || test $at_res = xpass; then
+	at_fn_create_debugging_script
+	if test $at_res = xpass && $at_errexit; then
+	  echo stop > "$at_stop_file"
+	fi
+      else
+	if test -d "$at_group_dir"; then
+	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
+	  rm -fr "$at_group_dir"
+	fi
+	rm -f "$at_test_source"
+      fi
+      ;;
+    *)
+      # Upon failure, include the log into the testsuite's global
+      # log.  The failure message is written in the group log.  It
+      # is later included in the global log.
+      $as_echo "$at_log_msg" >> "$at_group_log"
+
+      # Upon failure, keep the group directory for autopsy, and create
+      # the debugging script.  With -e, do not start any further tests.
+      at_fn_create_debugging_script
+      if $at_errexit; then
+	echo stop > "$at_stop_file"
+      fi
+      ;;
+  esac
+}
+
+
+## ------------ ##
+## Driver loop. ##
+## ------------ ##
+
+
+if (set -m && set +m && set +b) >/dev/null 2>&1; then
+  set +b
+  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
+else
+  at_job_control_on=: at_job_control_off=: at_job_group=
+fi
+
+for at_signal in 1 2 15; do
+  trap 'set +x; set +e
+	$at_job_control_off
+	at_signal='"$at_signal"'
+	echo stop > "$at_stop_file"
+	trap "" $at_signal
+	at_pgids=
+	for at_pgid in `jobs -p 2>/dev/null`; do
+	  at_pgids="$at_pgids $at_job_group$at_pgid"
+	done
+	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
+	wait
+	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
+	  echo >&2
+	fi
+	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
+	set x $at_signame
+	test 1 -gt 2 && at_signame=$at_signal
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
+$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
+	as_fn_arith 128 + $at_signal && exit_status=$as_val
+	as_fn_exit $exit_status' $at_signal
+done
+
+rm -f "$at_stop_file"
+at_first=:
+
+if test $at_jobs -ne 1 &&
+     rm -f "$at_job_fifo" &&
+     test -n "$at_job_group" &&
+     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
+then
+  # FIFO job dispatcher.
+
+  trap 'at_pids=
+	for at_pid in `jobs -p`; do
+	  at_pids="$at_pids $at_job_group$at_pid"
+	done
+	if test -n "$at_pids"; then
+	  at_sig=TSTP
+	  test "${TMOUT+set}" = set && at_sig=STOP
+	  kill -$at_sig $at_pids 2>/dev/null
+	fi
+	kill -STOP $$
+	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
+
+  echo
+  # Turn jobs into a list of numbers, starting from 1.
+  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
+
+  set X $at_joblist
+  shift
+  for at_group in $at_groups; do
+    $at_job_control_on 2>/dev/null
     (
-      echo "1. binary.at:25: testing ..."
-      $at_traceon
+      # Start one test group.
+      $at_job_control_off
+      if $at_first; then
+	exec 7>"$at_job_fifo"
+      else
+	exec 6<&-
+      fi
+      trap 'set +x; set +e
+	    trap "" PIPE
+	    echo stop > "$at_stop_file"
+	    echo >&7
+	    as_fn_exit 141' PIPE
+      at_fn_group_prepare
+      if cd "$at_group_dir" &&
+	 at_fn_test $at_group &&
+	 . "$at_test_source"
+      then :; else
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
+$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
+	at_failed=:
+      fi
+      at_fn_group_postprocess
+      echo >&7
+    ) &
+    $at_job_control_off
+    if $at_first; then
+      at_first=false
+      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
+    fi
+    shift # Consume one token.
+    if test $# -gt 0; then :; else
+      read at_token <&6 || break
+      set x $*
+    fi
+    test -f "$at_stop_file" && break
+  done
+  exec 7>&-
+  # Read back the remaining ($at_jobs - 1) tokens.
+  set X $at_joblist
+  shift
+  if test $# -gt 0; then
+    shift
+    for at_job
+    do
+      read at_token
+    done <&6
+  fi
+  exec 6<&-
+  wait
+else
+  # Run serially, avoid forks and other potential surprises.
+  for at_group in $at_groups; do
+    at_fn_group_prepare
+    if cd "$at_group_dir" &&
+       at_fn_test $at_group &&
+       . "$at_test_source"; then :; else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
+$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
+      at_failed=:
+    fi
+    at_fn_group_postprocess
+    test -f "$at_stop_file" && break
+    at_first=false
+  done
+fi
 
+# Wrap up the test suite with summary statistics.
+cd "$at_helper_dir"
 
+# Use ?..???? when the list must remain sorted, the faster * otherwise.
+at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
+at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
+at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
+at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
+		 echo $f; done | sed '/?/d; s,/xpass,,'`
+at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
+		echo $f; done | sed '/?/d; s,/fail,,'`
 
+set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
+shift; at_group_count=$#
+set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
+set X $at_xfail_list; shift; at_xfail_count=$#
+set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
+set X $at_skip_list; shift; at_skip_count=$#
+
+as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
+as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
+as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
+
+# Back to the top directory.
+cd "$at_dir"
+rm -rf "$at_helper_dir"
+
+# Compute the duration of the suite.
+at_stop_date=`date`
+at_stop_time=`date +%s 2>/dev/null`
+$as_echo "$as_me: ending at: $at_stop_date" >&5
+case $at_start_time,$at_stop_time in
+  [0-9]*,[0-9]*)
+    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
+    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
+    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
+    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
+    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
+    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
+    $as_echo "$as_me: test suite duration: $at_duration" >&5
+    ;;
+esac
+
+echo
+$as_echo "## ------------- ##
+## Test results. ##
+## ------------- ##"
+echo
+{
+  echo
+  $as_echo "## ------------- ##
+## Test results. ##
+## ------------- ##"
+  echo
+} >&5
+
+if test $at_run_count = 1; then
+  at_result="1 test"
+  at_were=was
+else
+  at_result="$at_run_count tests"
+  at_were=were
+fi
+if $at_errexit_p && test $at_unexpected_count != 0; then
+  if test $at_xpass_count = 1; then
+    at_result="$at_result $at_were run, one passed"
+  else
+    at_result="$at_result $at_were run, one failed"
+  fi
+  at_result="$at_result unexpectedly and inhibited subsequent tests."
+  at_color=$at_red
+else
+  # Don't you just love exponential explosion of the number of cases?
+  at_color=$at_red
+  case $at_xpass_count:$at_fail_count:$at_xfail_count in
+    # So far, so good.
+    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
+    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
+
+    # Some unexpected failures
+    0:*:0) at_result="$at_result $at_were run,
+$at_fail_count failed unexpectedly." ;;
+
+    # Some failures, both expected and unexpected
+    0:*:1) at_result="$at_result $at_were run,
+$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
+    0:*:*) at_result="$at_result $at_were run,
+$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
+
+    # No unexpected failures, but some xpasses
+    *:0:*) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly." ;;
+
+    # No expected failures, but failures and xpasses
+    *:1:0) at_result="$at_result $at_were run,
+$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
+    *:*:0) at_result="$at_result $at_were run,
+$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
+
+    # All of them.
+    *:*:1) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly,
+$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
+    *:*:*) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly,
+$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
+  esac
+
+  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
+    at_result="All $at_result"
+  fi
+fi
+
+# Now put skips in the mix.
+case $at_skip_count in
+  0) ;;
+  1) at_result="$at_result
+1 test was skipped." ;;
+  *) at_result="$at_result
+$at_skip_count tests were skipped." ;;
+esac
+
+if test $at_unexpected_count = 0; then
+  echo "$at_color$at_result$at_std"
+  echo "$at_result" >&5
+else
+  echo "${at_color}ERROR: $at_result$at_std" >&2
+  echo "ERROR: $at_result" >&5
+  {
+    echo
+    $as_echo "## ------------------------ ##
+## Summary of the failures. ##
+## ------------------------ ##"
+
+    # Summary of failed and skipped tests.
+    if test $at_fail_count != 0; then
+      echo "Failed tests:"
+      $SHELL "$at_myself" $at_fail_list --list
+      echo
+    fi
+    if test $at_skip_count != 0; then
+      echo "Skipped tests:"
+      $SHELL "$at_myself" $at_skip_list --list
+      echo
+    fi
+    if test $at_xpass_count != 0; then
+      echo "Unexpected passes:"
+      $SHELL "$at_myself" $at_xpass_list --list
+      echo
+    fi
+    if test $at_fail_count != 0; then
+      $as_echo "## ---------------------- ##
+## Detailed failed tests. ##
+## ---------------------- ##"
+      echo
+      for at_group in $at_fail_list
+      do
+	at_group_normalized=$at_group
+
+  eval 'while :; do
+    case $at_group_normalized in #(
+    '"$at_format"'*) break;;
+    esac
+    at_group_normalized=0$at_group_normalized
+  done'
+
+	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
+	echo
+      done
+      echo
+    fi
+    if test -n "$at_top_srcdir"; then
+      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## ${at_top_build_prefix}config.log ##
+_ASBOX
+      sed 's/^/| /' ${at_top_build_prefix}config.log
+      echo
+    fi
+  } >&5
+
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## $as_me.log was created. ##
+_ASBOX
+
+  echo
+  if $at_debug_p; then
+    at_msg='per-test log files'
+  else
+    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
+  fi
+  $as_echo "Please send $at_msg and all information you think might help:
+
+   To: <open-cobol-list@lists.sourceforge.net>
+   Subject: [GNU Cobol 1.1] $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'.
+"
+  exit 1
+fi
+
+exit 0
+
+## ------------- ##
+## Actual tests. ##
+## ------------- ##
+#AT_START_1
+at_fn_group_banner 1 'binary.at:25' \
+  "BINARY: 2-4-8 big-endian" "                       "
+at_xfail=no
+(
+  $as_echo "1. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
 cat >test.conf <<'_ATEOF'
 
 include "cobol2002.conf"
@@ -823,69 +2076,44 @@
 _ATEOF
 
 
-$at_traceoff
-echo "binary.at:47: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
-echo binary.at:47 >$at_check_line_file
-( $at_traceon; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:47: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:47: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:47"
+( $at_check_trace; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c
+) >>"$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/binary.at:47"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-dump.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:51: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:51 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:51: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:51: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:51"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:51"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:161: ./prog"
-echo binary.at:161 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0001202020202020
+{ set +x
+$as_echo "$at_srcdir/binary.at:52: ./prog"
+at_fn_check_prepare_trace "binary.at:52"
+( $at_check_trace; ./prog
+) >>"$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 "0001202020202020
 000c202020202020
 007b202020202020
 04d2202020202020
@@ -993,60 +2221,37 @@
 0000000000000000
 0000000000000000
 0000000000000000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:161: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:52"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-display.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:165: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:165 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:165: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:165: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:165"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:165"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:203: ./prog"
-echo binary.at:203 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "1
+{ set +x
+$as_echo "$at_srcdir/binary.at:166: ./prog"
+at_fn_check_prepare_trace "binary.at:166"
+( $at_check_trace; ./prog
+) >>"$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
 12
 123
 1234
@@ -1082,66 +2287,42 @@
 -1234567890123456
 -12345678901234567
 -123456789012345678
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:203: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:166"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_1
+#AT_START_2
+at_fn_group_banner 2 'binary.at:210' \
+  "BINARY: 2-4-8 native" "                           "
+at_xfail=no
+(
+  $as_echo "2. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  2 ) # 2. binary.at:210: BINARY: 2-4-8 native
-    at_setup_line='binary.at:210'
-    at_desc='BINARY: 2-4-8 native'
-    $at_quiet $ECHO_N "  2: BINARY: 2-4-8 native                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "2. binary.at:210: testing ..."
-      $at_traceon
-
-
-
 if test "x$COB_BIGENDIAN" = "xyes"; then
-$at_traceoff
-echo "binary.at:214: true"
-echo binary.at:214 >$at_check_line_file
-( $at_traceon; true ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:214: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:214: true"
+at_fn_check_prepare_trace "binary.at:214"
+( $at_check_trace; true
+) >>"$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/binary.at:214"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
 else
 
 cat >test.conf <<'_ATEOF'
@@ -1167,69 +2348,44 @@
 _ATEOF
 
 
-$at_traceoff
-echo "binary.at:236: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
-echo binary.at:236 >$at_check_line_file
-( $at_traceon; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:236: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:236: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:236"
+( $at_check_trace; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c
+) >>"$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/binary.at:236"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-dump.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:240: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:240 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:240: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:240: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:240"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:240"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:350: ./prog"
-echo binary.at:350 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0100202020202020
+{ set +x
+$as_echo "$at_srcdir/binary.at:241: ./prog"
+at_fn_check_prepare_trace "binary.at:241"
+( $at_check_trace; ./prog
+) >>"$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 "0100202020202020
 0c00202020202020
 7b00202020202020
 d204202020202020
@@ -1337,60 +2493,37 @@
 0000000000000000
 0000000000000000
 0000000000000000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:350: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:241"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-display.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:354: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:354 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:354: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:354: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:354"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:354"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:392: ./prog"
-echo binary.at:392 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "1
+{ set +x
+$as_echo "$at_srcdir/binary.at:355: ./prog"
+at_fn_check_prepare_trace "binary.at:355"
+( $at_check_trace; ./prog
+) >>"$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
 12
 123
 1234
@@ -1426,41 +2559,29 @@
 -1234567890123456
 -12345678901234567
 -123456789012345678
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:392: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:355"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
 fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_2
+#AT_START_3
+at_fn_group_banner 3 'binary.at:400' \
+  "BINARY: 1-2-4-8 big-endian" "                     "
+at_xfail=no
+(
+  $as_echo "3. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-fi
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  3 ) # 3. binary.at:400: BINARY: 1-2-4-8 big-endian
-    at_setup_line='binary.at:400'
-    at_desc='BINARY: 1-2-4-8 big-endian'
-    $at_quiet $ECHO_N "  3: BINARY: 1-2-4-8 big-endian                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "3. binary.at:400: testing ..."
-      $at_traceon
-
-
-
 cat >test.conf <<'_ATEOF'
 
 include "cobol2002.conf"
@@ -1484,69 +2605,44 @@
 _ATEOF
 
 
-$at_traceoff
-echo "binary.at:422: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
-echo binary.at:422 >$at_check_line_file
-( $at_traceon; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:422: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:422: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:422"
+( $at_check_trace; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c
+) >>"$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/binary.at:422"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-dump.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:426: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:426 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:426: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:426: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:426"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:426"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:536: ./prog"
-echo binary.at:536 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0120202020202020
+{ set +x
+$as_echo "$at_srcdir/binary.at:427: ./prog"
+at_fn_check_prepare_trace "binary.at:427"
+( $at_check_trace; ./prog
+) >>"$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 "0120202020202020
 0c20202020202020
 007b202020202020
 04d2202020202020
@@ -1654,60 +2750,37 @@
 0000000000000000
 0000000000000000
 0000000000000000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:536: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:427"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-display.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:540: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:540 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:540: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:540: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:540"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:540"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:578: ./prog"
-echo binary.at:578 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "1
+{ set +x
+$as_echo "$at_srcdir/binary.at:541: ./prog"
+at_fn_check_prepare_trace "binary.at:541"
+( $at_check_trace; ./prog
+) >>"$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
 12
 123
 1234
@@ -1743,66 +2816,42 @@
 -1234567890123456
 -12345678901234567
 -123456789012345678
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:578: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:541"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_3
+#AT_START_4
+at_fn_group_banner 4 'binary.at:585' \
+  "BINARY: 1-2-4-8 native" "                         "
+at_xfail=no
+(
+  $as_echo "4. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  4 ) # 4. binary.at:585: BINARY: 1-2-4-8 native
-    at_setup_line='binary.at:585'
-    at_desc='BINARY: 1-2-4-8 native'
-    $at_quiet $ECHO_N "  4: BINARY: 1-2-4-8 native                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "4. binary.at:585: testing ..."
-      $at_traceon
-
-
-
 if test "x$COB_BIGENDIAN" = "xyes"; then
-$at_traceoff
-echo "binary.at:589: true"
-echo binary.at:589 >$at_check_line_file
-( $at_traceon; true ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:589: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:589: true"
+at_fn_check_prepare_trace "binary.at:589"
+( $at_check_trace; true
+) >>"$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/binary.at:589"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
 else
 
 cat >test.conf <<'_ATEOF'
@@ -1828,69 +2877,44 @@
 _ATEOF
 
 
-$at_traceoff
-echo "binary.at:611: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
-echo binary.at:611 >$at_check_line_file
-( $at_traceon; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:611: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:611: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:611"
+( $at_check_trace; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c
+) >>"$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/binary.at:611"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-dump.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:615: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:615 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:615: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:615: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:615"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:615"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:725: ./prog"
-echo binary.at:725 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0120202020202020
+{ set +x
+$as_echo "$at_srcdir/binary.at:616: ./prog"
+at_fn_check_prepare_trace "binary.at:616"
+( $at_check_trace; ./prog
+) >>"$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 "0120202020202020
 0c20202020202020
 7b00202020202020
 d204202020202020
@@ -1998,60 +3022,37 @@
 0000000000000000
 0000000000000000
 0000000000000000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:725: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:616"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-display.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:729: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:729 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:729: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:729: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:729"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:729"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:767: ./prog"
-echo binary.at:767 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "1
+{ set +x
+$as_echo "$at_srcdir/binary.at:730: ./prog"
+at_fn_check_prepare_trace "binary.at:730"
+( $at_check_trace; ./prog
+) >>"$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
 12
 123
 1234
@@ -2087,42 +3088,30 @@
 -1234567890123456
 -12345678901234567
 -123456789012345678
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:767: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:730"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 fi
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_4
+#AT_START_5
+at_fn_group_banner 5 'binary.at:776' \
+  "BINARY: 1--8 big-endian" "                        "
+at_xfail=no
+(
+  $as_echo "5. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  5 ) # 5. binary.at:776: BINARY: 1--8 big-endian
-    at_setup_line='binary.at:776'
-    at_desc='BINARY: 1--8 big-endian'
-    $at_quiet $ECHO_N "  5: BINARY: 1--8 big-endian                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "5. binary.at:776: testing ..."
-      $at_traceon
 
 
-
 cat >test.conf <<'_ATEOF'
 
 include "cobol2002.conf"
@@ -2146,69 +3135,44 @@
 _ATEOF
 
 
-$at_traceoff
-echo "binary.at:798: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
-echo binary.at:798 >$at_check_line_file
-( $at_traceon; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:798: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:798: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:798"
+( $at_check_trace; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c
+) >>"$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/binary.at:798"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-dump.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:802: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:802 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:802: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:802: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:802"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:802"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:912: ./prog"
-echo binary.at:912 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0120202020202020
+{ set +x
+$as_echo "$at_srcdir/binary.at:803: ./prog"
+at_fn_check_prepare_trace "binary.at:803"
+( $at_check_trace; ./prog
+) >>"$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 "0120202020202020
 0c20202020202020
 007b202020202020
 04d2202020202020
@@ -2316,60 +3280,37 @@
 0000000000000020
 0000000000000000
 0000000000000000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:912: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:803"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-display.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:916: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:916 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:916: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:916: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:916"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:916"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:954: ./prog"
-echo binary.at:954 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "1
+{ set +x
+$as_echo "$at_srcdir/binary.at:917: ./prog"
+at_fn_check_prepare_trace "binary.at:917"
+( $at_check_trace; ./prog
+) >>"$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
 12
 123
 1234
@@ -2405,66 +3346,42 @@
 -1234567890123456
 -12345678901234567
 -123456789012345678
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:954: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:917"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_5
+#AT_START_6
+at_fn_group_banner 6 'binary.at:961' \
+  "BINARY: 1--8 native" "                            "
+at_xfail=no
+(
+  $as_echo "6. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  6 ) # 6. binary.at:961: BINARY: 1--8 native
-    at_setup_line='binary.at:961'
-    at_desc='BINARY: 1--8 native'
-    $at_quiet $ECHO_N "  6: BINARY: 1--8 native                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "6. binary.at:961: testing ..."
-      $at_traceon
-
-
-
 if test "x$COB_BIGENDIAN" = "xyes"; then
-$at_traceoff
-echo "binary.at:965: true"
-echo binary.at:965 >$at_check_line_file
-( $at_traceon; true ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:965: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:965: true"
+at_fn_check_prepare_trace "binary.at:965"
+( $at_check_trace; true
+) >>"$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/binary.at:965"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
 else
 
 cat >test.conf <<'_ATEOF'
@@ -2490,69 +3407,44 @@
 _ATEOF
 
 
-$at_traceoff
-echo "binary.at:987: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
-echo binary.at:987 >$at_check_line_file
-( $at_traceon; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:987: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:987: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:987"
+( $at_check_trace; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c
+) >>"$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/binary.at:987"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-dump.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:991: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:991 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:991: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:991: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:991"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:991"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:1101: ./prog"
-echo binary.at:1101 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0120202020202020
+{ set +x
+$as_echo "$at_srcdir/binary.at:992: ./prog"
+at_fn_check_prepare_trace "binary.at:992"
+( $at_check_trace; ./prog
+) >>"$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 "0120202020202020
 0c20202020202020
 7b00202020202020
 d204202020202020
@@ -2660,60 +3552,37 @@
 0000000000000020
 0000000000000000
 0000000000000000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:1101: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:992"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-display.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:1105: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:1105 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:1105: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:1105: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:1105"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:1105"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:1143: ./prog"
-echo binary.at:1143 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "1
+{ set +x
+$as_echo "$at_srcdir/binary.at:1106: ./prog"
+at_fn_check_prepare_trace "binary.at:1106"
+( $at_check_trace; ./prog
+) >>"$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
 12
 123
 1234
@@ -2749,42 +3618,30 @@
 -1234567890123456
 -12345678901234567
 -123456789012345678
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:1143: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:1106"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 fi
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_6
+#AT_START_7
+at_fn_group_banner 7 'binary.at:1152' \
+  "BINARY: full-print" "                             "
+at_xfail=no
+(
+  $as_echo "7. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  7 ) # 7. binary.at:1152: BINARY: full-print
-    at_setup_line='binary.at:1152'
-    at_desc='BINARY: full-print'
-    $at_quiet $ECHO_N "  7: BINARY: full-print                           $ECHO_C"
-    at_xfail=no
-    (
-      echo "7. binary.at:1152: testing ..."
-      $at_traceon
 
 
-
 cat >test.conf <<'_ATEOF'
 
 include "cobol2002.conf"
@@ -2795,41 +3652,28 @@
 
 sed -e 's/@USAGE@/BINARY/' ${TEMPLATE}/numeric-display.cob > prog.cob
 
-$at_traceoff
-echo "binary.at:1163: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo binary.at:1163 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:1163: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/binary.at:1163: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "binary.at:1163"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/binary.at:1163"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "binary.at:1201: ./prog"
-echo binary.at:1201 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "001
+{ set +x
+$as_echo "$at_srcdir/binary.at:1164: ./prog"
+at_fn_check_prepare_trace "binary.at:1164"
+( $at_check_trace; ./prog
+) >>"$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 "001
 012
 00123
 01234
@@ -2865,40 +3709,28 @@
 -01234567890123456
 -00012345678901234567
 -00123456789012345678
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "binary.at:1201: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/binary.at:1164"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_7
+#AT_START_8
+at_fn_group_banner 8 'display.at:24' \
+  "DISPLAY: Sign ASCII" "                            "
+at_xfail=no
+(
+  $as_echo "8. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  8 ) # 8. display.at:24: DISPLAY: Sign ASCII
-    at_setup_line='display.at:24'
-    at_desc='DISPLAY: Sign ASCII'
-    $at_quiet $ECHO_N "  8: DISPLAY: Sign ASCII                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "8. display.at:24: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2940,41 +3772,28 @@
 _ATEOF
 
 
-$at_traceoff
-echo "display.at:66: \${COMPILE} -fsign-ascii -o prog prog.cob"
-echo display.at:66 >$at_check_line_file
-( $at_traceon; ${COMPILE} -fsign-ascii -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "display.at:66: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/display.at:66: \${COMPILE} -fsign-ascii -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "display.at:66"
+( $at_check_trace; ${COMPILE} -fsign-ascii -o prog prog.cob
+) >>"$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/display.at:66"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "display.at:79: ./prog"
-echo display.at:79 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "12340
+{ set +x
+$as_echo "$at_srcdir/display.at:67: ./prog"
+at_fn_check_prepare_trace "display.at:67"
+( $at_check_trace; ./prog
+) >>"$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 "12340
 12340
 123t0
 12340
@@ -2985,40 +3804,28 @@
 123t0
 1234+
 1234-
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "display.at:79: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/display.at:67"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_8
+#AT_START_9
+at_fn_group_banner 9 'display.at:83' \
+  "DISPLAY: Sign ASCII (2)" "                        "
+at_xfail=no
+(
+  $as_echo "9. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  9 ) # 9. display.at:83: DISPLAY: Sign ASCII (2)
-    at_setup_line='display.at:83'
-    at_desc='DISPLAY: Sign ASCII (2)'
-    $at_quiet $ECHO_N "  9: DISPLAY: Sign ASCII (2)                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "9. display.at:83: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3058,74 +3865,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "display.at:123: \${COMPILE} -fsign-ascii  -o prog prog.cob"
-echo display.at:123 >$at_check_line_file
-( $at_traceon; ${COMPILE} -fsign-ascii  -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "display.at:123: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/display.at:123: \${COMPILE} -fsign-ascii  -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "display.at:123"
+( $at_check_trace; ${COMPILE} -fsign-ascii  -o prog prog.cob
+) >>"$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/display.at:123"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/display.at:124: ./prog"
+at_fn_check_prepare_trace "display.at:124"
+( $at_check_trace; ./prog
+) >>"$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 "0123456789pqrstuvwxy" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/display.at:124"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "display.at:124: ./prog"
-echo display.at:124 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0123456789pqrstuvwxy" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "display.at:124: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_9
+#AT_START_10
+at_fn_group_banner 10 'display.at:129' \
+  "DISPLAY: Sign EBCDIC" "                           "
+at_xfail=no
+(
+  $as_echo "10. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  10 ) # 10. display.at:129: DISPLAY: Sign EBCDIC
-    at_setup_line='display.at:129'
-    at_desc='DISPLAY: Sign EBCDIC'
-    $at_quiet $ECHO_N " 10: DISPLAY: Sign EBCDIC                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "10. display.at:129: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3165,74 +3947,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "display.at:169: \${COMPILE} -fsign-ebcdic -o prog prog.cob"
-echo display.at:169 >$at_check_line_file
-( $at_traceon; ${COMPILE} -fsign-ebcdic -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "display.at:169: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/display.at:169: \${COMPILE} -fsign-ebcdic -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "display.at:169"
+( $at_check_trace; ${COMPILE} -fsign-ebcdic -o prog prog.cob
+) >>"$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/display.at:169"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/display.at:170: ./prog"
+at_fn_check_prepare_trace "display.at:170"
+( $at_check_trace; ./prog
+) >>"$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 "{ABCDEFGHI}JKLMNOPQR" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/display.at:170"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "display.at:170: ./prog"
-echo display.at:170 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "{ABCDEFGHI}JKLMNOPQR" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "display.at:170: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_10
+#AT_START_11
+at_fn_group_banner 11 'packed.at:27' \
+  "PACKED-DECIMAL dump" "                            "
+at_xfail=no
+(
+  $as_echo "11. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  11 ) # 11. packed.at:27: PACKED-DECIMAL dump
-    at_setup_line='packed.at:27'
-    at_desc='PACKED-DECIMAL dump'
-    $at_quiet $ECHO_N " 11: PACKED-DECIMAL dump                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "11. packed.at:27: testing ..."
-      $at_traceon
-
-
-
 cat >dump.c <<'_ATEOF'
 
 #include <stdio.h>
@@ -3248,69 +4005,44 @@
 _ATEOF
 
 
-$at_traceoff
-echo "packed.at:43: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
-echo packed.at:43 >$at_check_line_file
-( $at_traceon; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:43: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/packed.at:43: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "packed.at:43"
+( $at_check_trace; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c
+) >>"$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/packed.at:43"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 sed -e 's/@USAGE@/PACKED-DECIMAL/' ${TEMPLATE}/numeric-dump.cob > prog.cob
 
-$at_traceoff
-echo "packed.at:47: \${COMPILE} prog.cob"
-echo packed.at:47 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:47: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/packed.at:47: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "packed.at:47"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/packed.at:47"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "packed.at:157: ./prog"
-echo packed.at:157 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "1f202020202020202020
+{ set +x
+$as_echo "$at_srcdir/packed.at:48: ./prog"
+at_fn_check_prepare_trace "packed.at:48"
+( $at_check_trace; ./prog
+) >>"$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 "1f202020202020202020
 012f2020202020202020
 123f2020202020202020
 01234f20202020202020
@@ -3418,40 +4150,28 @@
 00000000000000000c20
 00000000000000000c20
 0000000000000000000c
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:157: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/packed.at:48"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_11
+#AT_START_12
+at_fn_group_banner 12 'packed.at:163' \
+  "PACKED-DECIMAL display" "                         "
+at_xfail=no
+(
+  $as_echo "12. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  12 ) # 12. packed.at:163: PACKED-DECIMAL display
-    at_setup_line='packed.at:163'
-    at_desc='PACKED-DECIMAL display'
-    $at_quiet $ECHO_N " 12: PACKED-DECIMAL display                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "12. packed.at:163: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3483,41 +4203,28 @@
 _ATEOF
 
 
-$at_traceoff
-echo "packed.at:195: \${COMPILE} prog.cob"
-echo packed.at:195 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:195: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/packed.at:195: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "packed.at:195"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/packed.at:195"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "packed.at:205: ./prog"
-echo packed.at:205 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00
+{ set +x
+$as_echo "$at_srcdir/packed.at:196: ./prog"
+at_fn_check_prepare_trace "packed.at:196"
+( $at_check_trace; ./prog
+) >>"$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 "00
 99
 +00
 -01
@@ -3525,40 +4232,28 @@
 123
 +000
 -123
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:205: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/packed.at:196"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_12
+#AT_START_13
+at_fn_group_banner 13 'packed.at:211' \
+  "PACKED-DECIMAL move" "                            "
+at_xfail=no
+(
+  $as_echo "13. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  13 ) # 13. packed.at:211: PACKED-DECIMAL move
-    at_setup_line='packed.at:211'
-    at_desc='PACKED-DECIMAL move'
-    $at_quiet $ECHO_N " 13: PACKED-DECIMAL move                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "13. packed.at:211: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3592,41 +4287,28 @@
 _ATEOF
 
 
-$at_traceoff
-echo "packed.at:245: \${COMPILE} prog.cob"
-echo packed.at:245 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:245: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/packed.at:245: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "packed.at:245"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/packed.at:245"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "packed.at:255: ./prog"
-echo packed.at:255 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "34
+{ set +x
+$as_echo "$at_srcdir/packed.at:246: ./prog"
+at_fn_check_prepare_trace "packed.at:246"
+( $at_check_trace; ./prog
+) >>"$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 "34
 +34
 234
 +234
@@ -3634,40 +4316,28 @@
 -34
 234
 -234
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:255: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/packed.at:246"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_13
+#AT_START_14
+at_fn_group_banner 14 'packed.at:261' \
+  "PACKED-DECIMAL arithmetic (1)" "                  "
+at_xfail=no
+(
+  $as_echo "14. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  14 ) # 14. packed.at:261: PACKED-DECIMAL arithmetic (1)
-    at_setup_line='packed.at:261'
-    at_desc='PACKED-DECIMAL arithmetic (1)'
-    $at_quiet $ECHO_N " 14: PACKED-DECIMAL arithmetic (1)                $ECHO_C"
-    at_xfail=no
-    (
-      echo "14. packed.at:261: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3691,78 +4361,53 @@
 _ATEOF
 
 
-$at_traceoff
-echo "packed.at:285: \${COMPILE} prog.cob"
-echo packed.at:285 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:285: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/packed.at:285: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "packed.at:285"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/packed.at:285"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "packed.at:291: ./prog"
-echo packed.at:291 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00
+{ set +x
+$as_echo "$at_srcdir/packed.at:286: ./prog"
+at_fn_check_prepare_trace "packed.at:286"
+( $at_check_trace; ./prog
+) >>"$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 "00
 +00
 000
 +000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:291: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/packed.at:286"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_14
+#AT_START_15
+at_fn_group_banner 15 'packed.at:297' \
+  "PACKED-DECIMAL arithmetic (2)" "                  "
+at_xfail=no
+(
+  $as_echo "15. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  15 ) # 15. packed.at:297: PACKED-DECIMAL arithmetic (2)
-    at_setup_line='packed.at:297'
-    at_desc='PACKED-DECIMAL arithmetic (2)'
-    $at_quiet $ECHO_N " 15: PACKED-DECIMAL arithmetic (2)                $ECHO_C"
-    at_xfail=no
-    (
-      echo "15. packed.at:297: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3785,77 +4430,52 @@
 _ATEOF
 
 
-$at_traceoff
-echo "packed.at:320: \${COMPILE} prog.cob"
-echo packed.at:320 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:320: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/packed.at:320: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "packed.at:320"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/packed.at:320"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "packed.at:325: ./prog"
-echo packed.at:325 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "01
+{ set +x
+$as_echo "$at_srcdir/packed.at:321: ./prog"
+at_fn_check_prepare_trace "packed.at:321"
+( $at_check_trace; ./prog
+) >>"$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 "01
 09
 18
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:325: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/packed.at:321"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_15
+#AT_START_16
+at_fn_group_banner 16 'packed.at:331' \
+  "PACKED-DECIMAL numeric test" "                    "
+at_xfail=no
+(
+  $as_echo "16. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  16 ) # 16. packed.at:331: PACKED-DECIMAL numeric test
-    at_setup_line='packed.at:331'
-    at_desc='PACKED-DECIMAL numeric test'
-    $at_quiet $ECHO_N " 16: PACKED-DECIMAL numeric test                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "16. packed.at:331: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3976,41 +4596,28 @@
 _ATEOF
 
 
-$at_traceoff
-echo "packed.at:452: \${COMPILE} prog.cob"
-echo packed.at:452 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:452: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/packed.at:452: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "packed.at:452"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/packed.at:452"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "packed.at:468: ./prog"
-echo packed.at:468 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
+{ set +x
+$as_echo "$at_srcdir/packed.at:453: ./prog"
+at_fn_check_prepare_trace "packed.at:453"
+( $at_check_trace; ./prog
+) >>"$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 "OK
 OK
 OK
 OK
@@ -4024,40 +4631,28 @@
 OK
 OK
 OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "packed.at:468: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/packed.at:453"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_16
+#AT_START_17
+at_fn_group_banner 17 'pointer.at:24' \
+  "POINTER: display" "                               "
+at_xfail=no
+(
+  $as_echo "17. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  17 ) # 17. pointer.at:24: POINTER: display
-    at_setup_line='pointer.at:24'
-    at_desc='POINTER: display'
-    $at_quiet $ECHO_N " 17: POINTER: display                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "17. pointer.at:24: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4075,342 +4670,35 @@
 _ATEOF
 
 
-$at_traceoff
-echo "pointer.at:42: \${COMPILE} -o prog prog.cob"
-echo pointer.at:42 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "pointer.at:42: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/pointer.at:42: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "pointer.at:42"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/pointer.at:42"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/pointer.at:43: ./prog"
+at_fn_check_prepare_trace "pointer.at:43"
+( $at_check_trace; ./prog
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/pointer.at:43"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "pointer.at:43: ./prog"
-echo pointer.at:43 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo stdout:; cat $at_stdout
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "pointer.at:43: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-
-  * )
-    echo "$as_me: no such test group: $at_group" >&2
-    continue
-    ;;
-  esac
-
-  # Be sure to come back to the suite directory, in particular
-  # since below we might `rm' the group directory we are in currently.
-  cd $at_suite_dir
-
-  case $at_group in
-    banner-*) ;;
-    *)
-      if test ! -f $at_check_line_file; then
-	sed "s/^ */$as_me: warning: /" <<_ATEOF
-	A failure happened in a test group before any test could be
-	run. This means that test suite is improperly designed.  Please
-	report this failure to <open-cobol-list@lists.sourceforge.net>.
-_ATEOF
-    	echo "$at_setup_line" >$at_check_line_file
-      fi
-      at_group_count=`expr 1 + $at_group_count`
-      $at_verbose $ECHO_N "$at_group. $at_setup_line: $ECHO_C"
-      echo $ECHO_N "$at_group. $at_setup_line: $ECHO_C" >> $at_group_log
-      case $at_xfail:$at_status in
-	yes:0)
-	    at_msg="UNEXPECTED PASS"
-	    at_xpass_list="$at_xpass_list $at_group"
-	    at_errexit=$at_errexit_p
-	    ;;
-	no:0)
-	    at_msg="ok"
-	    at_pass_list="$at_pass_list $at_group"
-	    at_errexit=false
-	    ;;
-	*:77)
-	    at_msg="skipped (`cat $at_check_line_file`)"
-	    at_skip_list="$at_skip_list $at_group"
-	    at_errexit=false
-	    ;;
-	yes:*)
-	    at_msg="expected failure (`cat $at_check_line_file`)"
-	    at_xfail_list="$at_xfail_list $at_group"
-	    at_errexit=false
-	    ;;
-	no:*)
-	    at_msg="FAILED (`cat $at_check_line_file`)"
-	    at_fail_list="$at_fail_list $at_group"
-	    at_errexit=$at_errexit_p
-	    ;;
-      esac
-      echo $at_msg
-      at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
-      case $at_status in
-	0|77)
-	  # $at_times_file is only available if the group succeeded.
-	  # We're not including the group log, so the success message
-	  # is written in the global log separately.  But we also
-	  # write to the group log in case they're using -d.
-	  if test -f $at_times_file; then
-	    at_log_msg="$at_log_msg	(`sed 1d $at_times_file`)"
-	    rm -f $at_times_file
-          fi
-	  echo "$at_log_msg" >> $at_group_log
-	  echo "$at_log_msg" >&5
-
-	  # Cleanup the group directory, unless the user wants the files.
-	  $at_debug_p || rm -rf $at_group_dir
-	  ;;
-	*)
-	  # Upon failure, include the log into the testsuite's global
-	  # log.  The failure message is written in the group log.  It
-	  # is later included in the global log.
-	  echo "$at_log_msg" >> $at_group_log
-
-	  # Upon failure, keep the group directory for autopsy, and
-	  # create the debugging script.
-	  {
-	    echo "#! /bin/sh"
-	    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\'''
-	    echo "cd $at_dir"
-	    echo 'exec ${CONFIG_SHELL-'"$SHELL"'}' "$0" \
-	         '-v -d' "$at_debug_args" "$at_group" '${1+"$@"}'
-	    echo 'exit 1'
-	  } >$at_group_dir/run
-	  chmod +x $at_group_dir/run
-	  $at_errexit && break
-	  ;;
-      esac
-      ;;
-  esac
-done
-
-# Back to the top directory.
-cd $at_dir
-
-# Compute the duration of the suite.
-at_stop_date=`date`
-at_stop_time=`(date +%s) 2>/dev/null`
-echo "$as_me: ending at: $at_stop_date" >&5
-at_duration_s=`(expr $at_stop_time - $at_start_time) 2>/dev/null`
-at_duration_m=`(expr $at_duration_s / 60) 2>/dev/null`
-at_duration_h=`(expr $at_duration_m / 60) 2>/dev/null`
-at_duration_s=`(expr $at_duration_s % 60) 2>/dev/null`
-at_duration_m=`(expr $at_duration_m % 60) 2>/dev/null`
-at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
-if test "$at_duration" != "h m s"; then
-  echo "$as_me: test suite duration: $at_duration" >&5
-fi
-
-# Wrap up the test suite with summary statistics.
-at_skip_count=`set dummy $at_skip_list; shift; echo $#`
-at_fail_count=`set dummy $at_fail_list; shift; echo $#`
-at_xpass_count=`set dummy $at_xpass_list; shift; echo $#`
-at_xfail_count=`set dummy $at_xfail_list; shift; echo $#`
-
-at_run_count=`expr $at_group_count - $at_skip_count`
-at_unexpected_count=`expr $at_xpass_count + $at_fail_count`
-at_total_fail_count=`expr $at_xfail_count + $at_fail_count`
-
-echo
-cat <<\_ASBOX
-## ------------- ##
-## Test results. ##
-## ------------- ##
-_ASBOX
-echo
-{
-  echo
-  cat <<\_ASBOX
-## ------------- ##
-## Test results. ##
-## ------------- ##
-_ASBOX
-  echo
-} >&5
-
-if test $at_run_count = 1; then
-  at_result="1 test"
-  at_were=was
-else
-  at_result="$at_run_count tests"
-  at_were=were
-fi
-if $at_errexit_p && test $at_unexpected_count != 0; then
-  if test $at_xpass_count = 1; then
-    at_result="$at_result $at_were run, one passed"
-  else
-    at_result="$at_result $at_were run, one failed"
-  fi
-  at_result="$at_result unexpectedly and inhibited subsequent tests."
-else
-  # Don't you just love exponential explosion of the number of cases?
-  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." ;;
-
-    # Some unexpected failures
-    0:*:0) at_result="$at_result $at_were run,
-$at_fail_count failed unexpectedly." ;;
-
-    # Some failures, both expected and unexpected
-    0:*:1) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    0:*:*) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-
-    # No unexpected failures, but some xpasses
-    *:0:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly." ;;
-
-    # No expected failures, but failures and xpasses
-    *:1:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
-    *:*:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
-
-    # All of them.
-    *:*:1) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    *:*:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-  esac
-
-  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
-    at_result="All $at_result"
-  fi
-fi
-
-# Now put skips in the mix.
-case $at_skip_count in
-  0) ;;
-  1) at_result="$at_result
-1 test was skipped." ;;
-  *) at_result="$at_result
-$at_skip_count tests were skipped." ;;
-esac
-
-if test $at_unexpected_count = 0; then
-  echo "$at_result"
-  echo "$at_result" >&5
-else
-  echo "ERROR: $at_result" >&2
-  echo "ERROR: $at_result" >&5
-  {
-    echo
-    cat <<\_ASBOX
-## ------------------------ ##
-## Summary of the failures. ##
-## ------------------------ ##
-_ASBOX
-
-    # Summary of failed and skipped tests.
-    if test $at_fail_count != 0; then
-      echo "Failed tests:"
-      $SHELL $0 $at_fail_list --list
-      echo
-    fi
-    if test $at_skip_count != 0; then
-      echo "Skipped tests:"
-      $SHELL $0 $at_skip_list --list
-      echo
-    fi
-    if test $at_xpass_count != 0; then
-      echo "Unexpected passes:"
-      $SHELL $0 $at_xpass_list --list
-      echo
-    fi
-    if test $at_fail_count != 0; then
-      cat <<\_ASBOX
-## ---------------------- ##
-## Detailed failed tests. ##
-## ---------------------- ##
-_ASBOX
-      echo
-      for at_group in $at_fail_list
-      do
-        # Normalize the test group number.
-        at_group_normalized=`expr "00000$at_group" : ".*\($at_format\)"`
-        # Create a fresh directory for the next test group, and enter.
-        at_group_dir=$at_suite_dir/$at_group_normalized
-        at_group_log=$at_group_dir/$as_me.log
-        cat $at_group_log
-        echo
-      done
-      echo
-    fi
-    if test -n "$at_top_srcdir"; then
-      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## $at_top_builddir/config.log ##
-_ASBOX
-      sed 's/^/| /' $at_top_builddir/config.log
-      echo
-    fi
-  } >&5
-
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## $as_me.log was created. ##
-_ASBOX
-
-  echo
-  echo "Please send \`$as_me.log' and all information you think might help:"
-  echo
-  echo "   To: <open-cobol-list@lists.sourceforge.net>"
-  echo "   Subject: [GNU Cobol 1.1] $as_me:$at_fail_list${at_fail_list:+ failed${at_xpass_list:+,}}$at_xpass_list${at_xpass_list:+ passed unexpectedly}"
-  echo
-  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.'
-    echo
-  fi
-    exit 1
-fi
-
-exit 0
-
-
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_17
Index: tests/run
===================================================================
--- tests/run	(revision 344)
+++ tests/run	(working copy)
@@ -1,75 +1,453 @@
 #! /bin/sh
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+# Generated from run.at by GNU Autoconf 2.69.
+#
+#
+# Copyright (C) 2003,2004,2005,2006,2007 Keisuke Nishida
+# Copyright (C) 2007-2009 Roger While
+#
+# This file is part of GNU Cobol.
+#
+# The GNU Cobol compiler is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# GNU Cobol is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Cobol; see the file COPYING. If not, write to the
+# Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+#
+# Copyright (C) 2009-2012 Free Software Foundation, Inc.
+#
+# This test suite is free software; the Free Software Foundation gives
+# unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
 fi
-DUALCASE=1; export DUALCASE # for MKS sh
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
 else
-  as_unset=false
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
 fi
 
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
 PS1='$ '
 PS2='> '
 PS4='+ '
 
 # NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
   else
-    $as_unset $as_var
+    $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
-done
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
 
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+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_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# PATH needs CR, and LINENO needs CR and PATH.
 # Avoid depending upon Character Ranges.
 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
@@ -77,146 +455,91 @@
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
 
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  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
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # 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 before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, 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
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
     sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
       N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
       t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
+      s/-\n.*//
     ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
   # Exit status is that of the last command.
   exit
 }
 
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
 esac
 
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
 else
-  as_expr=false
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
 fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
   else
-    as_ln_s='ln -s'
+    as_ln_s='cp -pR'
   fi
-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
-rm -f conf$$ conf$$.exe conf$$.file
+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
 
-as_executable_p="test -f"
+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'"
@@ -225,14 +548,7 @@
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
 
-# CDPATH.
-$as_unset CDPATH
 
 
 SHELL=${CONFIG_SHELL-/bin/sh}
@@ -240,25 +556,7 @@
 # How were we run?
 at_cli_args="$@"
 
-# Load the config file.
-for at_file in atconfig atlocal
-do
-  test -r $at_file || continue
-  . ./$at_file || { echo "$as_me: error: invalid content: $at_file" >&2
-   { (exit 1); exit 1; }; }
-done
 
-# atconfig delivers paths relative to the directory the test suite is
-# in, but the groups themselves are run in testsuite-dir/group-dir.
-if test -n "$at_top_srcdir"; then
-  builddir=../..
-  for at_dir in srcdir top_srcdir top_builddir
-  do
-    at_val=`eval echo '${'at_$at_dir'}'`
-    eval "$at_dir=\$at_val/../.."
-  done
-fi
-
 # Not all shells have the 'times' builtin; the subshell is needed to make
 # sure we discard the 'times: not found' message from the shell.
 at_times_p=false
@@ -268,9 +566,14 @@
 at_debug_args=
 # -e sets to true
 at_errexit_p=false
-# Shall we be verbose?
+# Shall we be verbose?  ':' means no, empty means yes.
 at_verbose=:
-at_quiet=echo
+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.
@@ -277,39 +580,39 @@
 at_debug_p=false
 # Display help message?
 at_help_p=false
+# Display the version message?
+at_version_p=false
 # List test groups?
 at_list_p=false
+# --clean
+at_clean=false
 # Test groups to run
 at_groups=
+# Whether to rerun failed tests.
+at_recheck=
+# Whether a write failure occurred
+at_write_fail=0
 
-# The directory we are in.
+# The directory we run the suite in.  Default to . if no -C option.
 at_dir=`pwd`
-# The directory the whole suite works in.
-# Should be absolutely to let the user `cd' at will.
-at_suite_dir=$at_dir/$as_me.dir
-# The file containing the suite.
-at_suite_log=$at_dir/$as_me.log
-# The file containing the location of the last AT_CHECK.
-at_check_line_file=$at_suite_dir/at-check-line
-# The file containing the exit status of the last command.
-at_status_file=$at_suite_dir/at-status
-# The files containing the output of the tested commands.
-at_stdout=$at_suite_dir/at-stdout
-at_stder1=$at_suite_dir/at-stder1
-at_stderr=$at_suite_dir/at-stderr
-# The file containing dates.
-at_times_file=$at_suite_dir/at-times
+# An absolute reference to this testsuite script.
+case $as_myself in
+  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
+  * ) at_myself=$at_dir/$as_myself ;;
+esac
+# Whether -C is in effect.
+at_change_dir=false
 
+# Whether to enable colored test results.
+at_color=auto
 # List of the tested programs.
 at_tested='cobc'
-# 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 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199'
-# As many dots as there are digits in the last test group number.
+# As many question marks as there are digits in the last test group number.
 # Used to normalize the test group numbers so that `ls' lists them in
 # numerical order.
-at_format='...'
+at_format='???'
 # Description of all the test groups.
-at_help_all='1;fundamental.at:25;DISPLAY literals;fundamental;
+at_help_all="1;fundamental.at:25;DISPLAY literals;fundamental;
 2;fundamental.at:63;DISPLAY literals, DECIMAL-POINT is COMMA;fundamental;
 3;fundamental.at:92;Hexadecimal literal;fundamental;
 4;fundamental.at:129;DISPLAY data items with VALUE clause;fundamental;
@@ -508,9 +811,34 @@
 197;functions.at:1639;FUNCTION UPPER-CASE with reference modding;functions;
 198;functions.at:1661;FUNCTION VARIANCE;functions;
 199;functions.at:1682;FUNCTION WHEN-COMPILED;functions;
-'
+"
+# List of the all the test groups.
+at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
 
-at_keywords=
+# at_fn_validate_ranges NAME...
+# -----------------------------
+# Validate and normalize the test group number contained in each variable
+# NAME. Leading zeroes are treated as decimal.
+at_fn_validate_ranges ()
+{
+  for at_grp
+  do
+    eval at_value=\$$at_grp
+    if test $at_value -lt 1 || test $at_value -gt 199; then
+      $as_echo "invalid test group: $at_value" >&2
+      exit 1
+    fi
+    case $at_value in
+      0*) # We want to treat leading 0 as decimal, like expr and test, but
+	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
+	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
+	  # expr fork, but it is not worth the effort to determine if the
+	  # shell supports XSI when the user can just avoid leading 0.
+	  eval $at_grp='`expr $at_value + 0`' ;;
+    esac
+  done
+}
+
 at_prev=
 for at_option
 do
@@ -520,7 +848,10 @@
     at_prev=
   fi
 
-  at_optarg=`expr "x$at_option" : 'x[^=]*=\(.*\)'`
+  case $at_option in
+  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
+  *)    at_optarg= ;;
+  esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
@@ -534,15 +865,26 @@
 	;;
 
     --version | -V )
-	echo "$as_me (GNU Cobol 1.1)"
-	exit 0
+	at_version_p=:
 	;;
 
     --clean | -c )
-	rm -rf $at_suite_dir $at_suite_log
-	exit 0
+	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=:
 	;;
@@ -553,30 +895,35 @@
 	;;
 
     --verbose | -v )
-	at_verbose=echo; at_quiet=:
+	at_verbose=; at_quiet=:
 	;;
 
     --trace | -x )
-	at_traceon='set -vx'; at_traceoff='set +vx'
+	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_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 '-'`
-	at_range=`echo " $at_groups_all " | \
-	  sed -e 's,^.* '$at_range_start' ,'$at_range_start' ,'`
-	at_groups="$at_groups$at_range "
+	at_range_start=`echo $at_option |tr -d X-`
+	at_fn_validate_ranges at_range_start
+	at_range=`$as_echo "$at_groups_all" | \
+	  sed -ne '/^'$at_range_start'$/,$p'`
+	as_fn_append at_groups "$at_range$as_nl"
 	;;
 
     -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
-	at_range_end=`echo $at_option |tr -d '-'`
-	at_range=`echo " $at_groups_all " | \
-	  sed -e 's, '$at_range_end' .*$, '$at_range_end','`
-	at_groups="$at_groups$at_range "
+	at_range_end=`echo $at_option |tr -d X-`
+	at_fn_validate_ranges at_range_end
+	at_range=`$as_echo "$at_groups_all" | \
+	  sed -ne '1,/^'$at_range_end'$/p'`
+	as_fn_append at_groups "$at_range$as_nl"
 	;;
 
     [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
@@ -585,81 +932,159 @@
     [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
     [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
     [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
-	at_range_start=`echo $at_option |sed 's,-.*,,'`
-	at_range_end=`echo $at_option |sed 's,.*-,,'`
-	# FIXME: Maybe test to make sure start <= end?
-	at_range=`echo " $at_groups_all " | \
-	  sed -e 's,^.* '$at_range_start' ,'$at_range_start' ,' \
-	      -e 's, '$at_range_end' .*$, '$at_range_end','`
-	at_groups="$at_groups$at_range "
+	at_range_start=`expr $at_option : '\(.*\)-'`
+	at_range_end=`expr $at_option : '.*-\(.*\)'`
+	if test $at_range_start -gt $at_range_end; then
+	  at_tmp=$at_range_end
+	  at_range_end=$at_range_start
+	  at_range_start=$at_tmp
+	fi
+	at_fn_validate_ranges at_range_start at_range_end
+	at_range=`$as_echo "$at_groups_all" | \
+	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
+	as_fn_append at_groups "$at_range$as_nl"
 	;;
 
+    # Directory selection.
+    --directory | -C )
+	at_prev=--directory
+	;;
+    --directory=* )
+	at_change_dir=:
+	at_dir=$at_optarg
+	if test x- = "x$at_dir" ; then
+	  at_dir=./-
+	fi
+	;;
+
+    # Parallel execution.
+    --jobs | -j )
+	at_jobs=0
+	;;
+    --jobs=* | -j[0-9]* )
+	if test -n "$at_optarg"; then
+	  at_jobs=$at_optarg
+	else
+	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
+	fi
+	case $at_jobs in *[!0-9]*)
+	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
+	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
+	esac
+	;;
+
     # Keywords.
     --keywords | -k )
 	at_prev=--keywords
 	;;
     --keywords=* )
-	at_keywords="$at_keywords,$at_optarg"
+	at_groups_selected=$at_help_all
+	at_save_IFS=$IFS
+	IFS=,
+	set X $at_optarg
+	shift
+	IFS=$at_save_IFS
+	for at_keyword
+	do
+	  at_invert=
+	  case $at_keyword in
+	  '!'*)
+	    at_invert="-v"
+	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
+	    ;;
+	  esac
+	  # It is on purpose that we match the test group titles too.
+	  at_groups_selected=`$as_echo "$at_groups_selected" |
+	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
+	done
+	# Smash the keywords.
+	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
+	as_fn_append at_groups "$at_groups_selected$as_nl"
 	;;
+    --recheck)
+	at_recheck=:
+	;;
 
     *=*)
-  	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
-  	# Reject names that are not valid shell variable names.
-  	expr "x$at_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-  	  { echo "$as_me: error: invalid variable name: $at_envvar" >&2
-   { (exit 1); exit 1; }; }
-  	at_value=`echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
-  	eval "$at_envvar='$at_value'"
-  	export $at_envvar
-	# Propagate to debug scripts.
-  	at_debug_args="$at_debug_args $at_option"
-  	;;
+	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
+	# Reject names that are not valid shell variable names.
+	case $at_envvar in
+	  '' | [0-9]* | *[!_$as_cr_alnum]* )
+	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
+	esac
+	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
+	# Export now, but save eval for later and for debug scripts.
+	export $at_envvar
+	as_fn_append at_debug_args " $at_envvar='$at_value'"
+	;;
 
-     *) echo "$as_me: invalid option: $at_option" >&2
-	echo "Try \`$0 --help' for more information." >&2
+     *) $as_echo "$as_me: invalid option: $at_option" >&2
+	$as_echo "Try \`$0 --help' for more information." >&2
 	exit 1
 	;;
   esac
 done
 
-# Process the --keywords
-if test -n "$at_keywords"; then
-  at_groups_selected=$at_help_all
-  for at_keyword in `IFS=,; set X $at_keywords; shift; echo ${1+$@}`
-  do
-    # It is on purpose that we match the test group titles too.
-    at_groups_selected=`echo "$at_groups_selected" |
-			grep -i "^[^;]*;[^;]*.*[; ]$at_keyword[ ;]"`
-  done
-  at_groups_selected=`echo "$at_groups_selected" | sed 's/;.*//'`
-  # Smash the end of lines.
-  at_groups_selected=`echo $at_groups_selected`
-  at_groups="$at_groups$at_groups_selected "
+# Verify our last option didn't require an argument
+if test -n "$at_prev"; then :
+  as_fn_error $? "\`$at_prev' requires an argument"
 fi
 
+# The file containing the suite.
+at_suite_log=$at_dir/$as_me.log
+
 # Selected test groups.
-test -z "$at_groups" && at_groups=$at_groups_all
+if test -z "$at_groups$at_recheck"; then
+  at_groups=$at_groups_all
+else
+  if test -n "$at_recheck" && test -r "$at_suite_log"; then
+    at_oldfails=`sed -n '
+      /^Failed tests:$/,/^Skipped tests:$/{
+	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+      }
+      /^Unexpected passes:$/,/^## Detailed failed tests/{
+	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+      }
+      /^## Detailed failed tests/q
+      ' "$at_suite_log"`
+    as_fn_append at_groups "$at_oldfails$as_nl"
+  fi
+  # Sort the tests, removing duplicates.
+  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
+fi
 
+if test x"$at_color" = xalways \
+   || { test x"$at_color" = xauto && test -t 1; }; then
+  at_red=`printf '\033[0;31m'`
+  at_grn=`printf '\033[0;32m'`
+  at_lgn=`printf '\033[1;32m'`
+  at_blu=`printf '\033[1;34m'`
+  at_std=`printf '\033[m'`
+else
+  at_red= at_grn= at_lgn= at_blu= at_std=
+fi
+
 # Help message.
 if $at_help_p; then
-  cat <<_ATEOF
+  cat <<_ATEOF || at_write_fail=1
 Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
 
-Run all the tests, or the selected TESTS, and save a detailed log file.
-Upon failure, create debugging scripts.
+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
+cat <<_ATEOF || at_write_fail=1
 
 Operation modes:
   -h, --help     print the help message, then exit
@@ -667,56 +1092,211 @@
   -c, --clean    remove all the files this test suite might create and exit
   -l, --list     describes all the tests, or the selected TESTS
 _ATEOF
-cat <<_ATEOF
+cat <<_ATEOF || at_write_fail=1
 
 Execution tuning:
+  -C, --directory=DIR
+                 change to directory DIR before starting
+      --color[=never|auto|always]
+                 disable colored test results, or enable even without terminal
+  -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
-	         accumulates
+                 select the tests matching all the comma-separated KEYWORDS
+                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
+      --recheck  select all tests that failed or passed unexpectedly last time
   -e, --errexit  abort as soon as a test fails; implies --debug
   -v, --verbose  force more detailed output
-	         default for debugging scripts
-  -d, --debug    inhibit clean up and debug script creation
-	         default for debugging scripts
+                 default for debugging scripts
+  -d, --debug    inhibit clean up and top-level logging
+                 default for debugging scripts
   -x, --trace    enable tests shell tracing
 _ATEOF
-cat <<_ATEOF
+cat <<_ATEOF || at_write_fail=1
 
 Report bugs to <open-cobol-list@lists.sourceforge.net>.
+General help using GNU software: <http://www.gnu.org/gethelp/>.
 _ATEOF
-  exit 0
+  exit $at_write_fail
 fi
 
 # List of tests.
 if $at_list_p; then
-  cat <<_ATEOF
+  cat <<_ATEOF || at_write_fail=1
 GNU Cobol 1.1 test suite: Run Tests test groups:
 
- NUM: FILENAME:LINE      TEST-GROUP-NAME
+ NUM: FILE-NAME:LINE     TEST-GROUP-NAME
       KEYWORDS
 
 _ATEOF
-  # "  1 42  45 " => "^(1|42|45);".
-  at_groups_pattern=`echo "$at_groups" | sed 's/^  *//;s/  *$//;s/  */|/g'`
-  echo "$at_help_all" |
-    awk 'BEGIN { FS = ";" }
-	 { if ($1 !~ /^('"$at_groups_pattern"')$/) next }
-	 { if ($1) printf " %3d: %-18s %s\n", $1, $2, $3
-	   if ($4) printf "      %s\n", $4 } '
-  exit 0
+  # Pass an empty line as separator between selected groups and help.
+  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
+    awk 'NF == 1 && FS != ";" {
+	   selected[$ 1] = 1
+	   next
+	 }
+	 /^$/ { FS = ";" }
+	 NF > 0 {
+	   if (selected[$ 1]) {
+	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
+	     if ($ 4) {
+	       lmax = 79
+	       indent = "     "
+	       line = indent
+	       len = length (line)
+	       n = split ($ 4, a, " ")
+	       for (i = 1; i <= n; i++) {
+		 l = length (a[i]) + 1
+		 if (i > 1 && len + l > lmax) {
+		   print line
+		   line = indent " " a[i]
+		   len = length (line)
+		 } else {
+		   line = line " " a[i]
+		   len += l
+		 }
+	       }
+	       if (n)
+		 print line
+	     }
+	   }
+	 }' || at_write_fail=1
+  exit $at_write_fail
 fi
+if $at_version_p; then
+  $as_echo "$as_me (GNU Cobol 1.1)" &&
+  cat <<\_ATEOF || at_write_fail=1
 
+
+Copyright (C) 2003,2004,2005,2006,2007 Keisuke Nishida
+Copyright (C) 2007-2009 Roger While
+
+This file is part of GNU Cobol.
+
+The GNU Cobol compiler is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+GNU Cobol is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Cobol; see the file COPYING. If not, write to the
+Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+MA 02110-1301 USA
+
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This test suite is free software; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+_ATEOF
+  exit $at_write_fail
+fi
+
+# Should we print banners?  Yes if more than one test is run.
+case $at_groups in #(
+  *$as_nl* )
+      at_print_banners=: ;; #(
+  * ) at_print_banners=false ;;
+esac
+# Text for banner N, set to a single space once printed.
+
+# Take any -C into account.
+if $at_change_dir ; then
+  test x != "x$at_dir" && cd "$at_dir" \
+    || as_fn_error $? "unable to change directory"
+  at_dir=`pwd`
+fi
+
+# Load the config files for any default variable assignments.
+for at_file in atconfig atlocal
+do
+  test -r $at_file || continue
+  . ./$at_file || as_fn_error $? "invalid content: $at_file"
+done
+
+# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
+: "${at_top_build_prefix=$at_top_builddir}"
+
+# Perform any assignments requested during argument parsing.
+eval "$at_debug_args"
+
+# atconfig delivers names relative to the directory the test suite is
+# in, but the groups themselves are run in testsuite-dir/group-dir.
+if test -n "$at_top_srcdir"; then
+  builddir=../..
+  for at_dir_var in srcdir top_srcdir top_build_prefix
+  do
+    eval at_val=\$at_$at_dir_var
+    case $at_val in
+      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
+      *) at_prefix=../../ ;;
+    esac
+    eval "$at_dir_var=\$at_prefix\$at_val"
+  done
+fi
+
+## -------------------- ##
+## Directory structure. ##
+## -------------------- ##
+
+# This is the set of directories and files used by this script
+# (non-literals are capitalized):
+#
+# TESTSUITE         - the testsuite
+# TESTSUITE.log     - summarizes the complete testsuite run
+# TESTSUITE.dir/    - created during a run, remains after -d or failed test
+# + at-groups/      - during a run: status of all groups in run
+# | + NNN/          - during a run: meta-data about test group NNN
+# | | + check-line  - location (source file and line) of current AT_CHECK
+# | | + status      - exit status of current AT_CHECK
+# | | + stdout      - stdout of current AT_CHECK
+# | | + stder1      - stderr, including trace
+# | | + stderr      - stderr, with trace filtered out
+# | | + test-source - portion of testsuite that defines group
+# | | + times       - timestamps for computing duration
+# | | + pass        - created if group passed
+# | | + xpass       - created if group xpassed
+# | | + fail        - created if group failed
+# | | + xfail       - created if group xfailed
+# | | + skip        - created if group skipped
+# + at-stop         - during a run: end the run if this file exists
+# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
+# + 0..NNN/         - created for each group NNN, remains after -d or failed test
+# | + TESTSUITE.log - summarizes the group results
+# | + ...           - files created during the group
+
+# The directory the whole suite works in.
+# Should be absolute to let the user `cd' at will.
+at_suite_dir=$at_dir/$as_me.dir
+# The file containing the suite ($at_dir might have changed since earlier).
+at_suite_log=$at_dir/$as_me.log
+# The directory containing helper files per test group.
+at_helper_dir=$at_suite_dir/at-groups
+# Stop file: if it exists, do not start new jobs.
+at_stop_file=$at_suite_dir/at-stop
+# The fifo used for the job dispatcher.
+at_job_fifo=$at_suite_dir/at-job-fifo
+
+if $at_clean; then
+  test -d "$at_suite_dir" &&
+    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
+  rm -f -r "$at_suite_dir" "$at_suite_log"
+  exit $?
+fi
+
 # Don't take risks: use only absolute directories in PATH.
 #
-# For stand-alone test suites, AUTOTEST_PATH is relative to `.'.
+# For stand-alone test suites (ie. atconfig was not found),
+# AUTOTEST_PATH is relative to `.'.
 #
 # For embedded test suites, AUTOTEST_PATH is relative to the top level
 # of the package.  Then expand it into build/src parts, since users
 # may create executables in both places.
-#
-# There might be directories that don't exist, but don't redirect
-# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
-AUTOTEST_PATH=`echo $AUTOTEST_PATH | tr ':' $PATH_SEPARATOR`
+AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
 at_path=
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $AUTOTEST_PATH $PATH
@@ -723,89 +1303,90 @@
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  case $as_dir in
+    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
+case $as_dir in
   [\\/]* | ?:[\\/]* )
-    at_path=$at_path$PATH_SEPARATOR$as_dir
+    as_fn_append at_path "$as_dir"
     ;;
   * )
-    if test -z "$at_top_builddir"; then
+    if test -z "$at_top_build_prefix"; then
       # Stand-alone test suite.
-      at_path=$at_path$PATH_SEPARATOR$as_dir
+      as_fn_append at_path "$as_dir"
     else
       # Embedded test suite.
-      at_path=$at_path$PATH_SEPARATOR$at_top_builddir/$as_dir
-      at_path=$at_path$PATH_SEPARATOR$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
 
 
 # Now build and simplify PATH.
-PATH=
+#
+# There might be directories that don't exist, but don't redirect
+# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
+at_new_path=
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $at_path
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  as_dir=`(cd "$as_dir" && pwd) 2>/dev/null`
-test -d "$as_dir" || continue
-case $PATH in
-	          $as_dir                 | \
-	          $as_dir$PATH_SEPARATOR* | \
-  *$PATH_SEPARATOR$as_dir                 | \
-  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR* ) ;;
-
-  '') PATH=$as_dir ;;
-   *) PATH=$PATH$PATH_SEPARATOR$as_dir ;;
+    test -d "$as_dir" || continue
+case $as_dir in
+  [\\/]* | ?:[\\/]* ) ;;
+  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
 esac
-done
+case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
+  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
+  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
+  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
+esac
+  done
+IFS=$as_save_IFS
 
+PATH=$at_new_path
 export PATH
 
 # Setting up the FDs.
+
+
+
 # 5 is the log file.  Not to be overwritten if `-d'.
+if $at_debug_p; then
+  at_suite_log=/dev/null
+else
+  : >"$at_suite_log"
+fi
+exec 5>>"$at_suite_log"
 
-$at_debug_p && at_suite_log=/dev/null
-exec 5>$at_suite_log
-
 # Banners and logs.
-cat <<\_ASBOX
-## ------------------------------------ ##
+$as_echo "## ------------------------------------ ##
 ## GNU Cobol 1.1 test suite: Run Tests. ##
-## ------------------------------------ ##
-_ASBOX
+## ------------------------------------ ##"
 {
-  cat <<\_ASBOX
-## ------------------------------------ ##
+  $as_echo "## ------------------------------------ ##
 ## GNU Cobol 1.1 test suite: Run Tests. ##
-## ------------------------------------ ##
-_ASBOX
+## ------------------------------------ ##"
   echo
 
-  echo "$as_me: command line was:"
-  echo "  $ $0 $at_cli_args"
+  $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.
-  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
-    for at_file in `find "$at_top_srcdir" -name ChangeLog -print`
-    do
-      echo "$as_me: $at_file:"
-      sed 's/^/| /;10q' $at_file
-      echo
-    done
+    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
+    echo
+  fi
 
-    {
+  {
 cat <<_ASUNAME
 ## --------- ##
 ## Platform. ##
@@ -823,7 +1404,7 @@
 /bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
 /bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
 /bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
@@ -835,27 +1416,179 @@
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
 
 }
-    echo
-  fi
+  echo
 
   # Contents of the config files.
   for at_file in atconfig atlocal
   do
     test -r $at_file || continue
-    echo "$as_me: $at_file:"
+    $as_echo "$as_me: $at_file:"
     sed 's/^/| /' $at_file
     echo
   done
+} >&5
 
-  cat <<\_ASBOX
-## ---------------- ##
+
+## ------------------------- ##
+## Autotest shell functions. ##
+## ------------------------- ##
+
+# at_fn_banner NUMBER
+# -------------------
+# Output banner NUMBER, provided the testsuite is running multiple groups and
+# this particular banner has not yet been printed.
+at_fn_banner ()
+{
+  $at_print_banners || return 0
+  eval at_banner_text=\$at_banner_text_$1
+  test "x$at_banner_text" = "x " && return 0
+  eval "at_banner_text_$1=\" \""
+  if test -z "$at_banner_text"; then
+    $at_first || echo
+  else
+    $as_echo "$as_nl$at_banner_text$as_nl"
+  fi
+} # at_fn_banner
+
+# at_fn_check_prepare_notrace REASON LINE
+# ---------------------------------------
+# Perform AT_CHECK preparations for the command at LINE for an untraceable
+# command; REASON is the reason for disabling tracing.
+at_fn_check_prepare_notrace ()
+{
+  $at_trace_echo "Not enabling shell tracing (command contains $1)"
+  $as_echo "$2" >"$at_check_line_file"
+  at_check_trace=: at_check_filter=:
+  : >"$at_stdout"; : >"$at_stderr"
+}
+
+# at_fn_check_prepare_trace LINE
+# ------------------------------
+# Perform AT_CHECK preparations for the command at LINE for a traceable
+# command.
+at_fn_check_prepare_trace ()
+{
+  $as_echo "$1" >"$at_check_line_file"
+  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
+  : >"$at_stdout"; : >"$at_stderr"
+}
+
+# at_fn_check_prepare_dynamic COMMAND LINE
+# ----------------------------------------
+# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
+# preparation function.
+at_fn_check_prepare_dynamic ()
+{
+  case $1 in
+    *$as_nl*)
+      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
+    *)
+      at_fn_check_prepare_trace "$2" ;;
+  esac
+}
+
+# at_fn_filter_trace
+# ------------------
+# Remove the lines in the file "$at_stderr" generated by "set -x" and print
+# them to stderr.
+at_fn_filter_trace ()
+{
+  mv "$at_stderr" "$at_stder1"
+  grep '^ *+' "$at_stder1" >&2
+  grep -v '^ *+' "$at_stder1" >"$at_stderr"
+}
+
+# at_fn_log_failure FILE-LIST
+# ---------------------------
+# Copy the files in the list on stdout with a "> " prefix, and exit the shell
+# with a failure exit code.
+at_fn_log_failure ()
+{
+  for file
+    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
+  echo 1 > "$at_status_file"
+  exit 1
+}
+
+# at_fn_check_skip EXIT-CODE LINE
+# -------------------------------
+# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
+# the test group subshell with that same exit code. Use LINE in any report
+# about test failure.
+at_fn_check_skip ()
+{
+  case $1 in
+    99) echo 99 > "$at_status_file"; at_failed=:
+	$as_echo "$2: hard failure"; exit 99;;
+    77) echo 77 > "$at_status_file"; exit 77;;
+  esac
+}
+
+# at_fn_check_status EXPECTED EXIT-CODE LINE
+# ------------------------------------------
+# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
+# Otherwise, if it is 77 or 99, exit the test group subshell with that same
+# exit code; if it is anything else print an error message referring to LINE,
+# and fail the test.
+at_fn_check_status ()
+{
+  case $2 in
+    $1 ) ;;
+    77) echo 77 > "$at_status_file"; exit 77;;
+    99) echo 99 > "$at_status_file"; at_failed=:
+	$as_echo "$3: hard failure"; exit 99;;
+    *) $as_echo "$3: exit code was $2, expected $1"
+      at_failed=:;;
+  esac
+}
+
+# at_fn_diff_devnull FILE
+# -----------------------
+# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
+# invocations.
+at_fn_diff_devnull ()
+{
+  test -s "$1" || return 0
+  $at_diff "$at_devnull" "$1"
+}
+
+# at_fn_test NUMBER
+# -----------------
+# Parse out test NUMBER from the tail of this file.
+at_fn_test ()
+{
+  eval at_sed=\$at_sed$1
+  sed "$at_sed" "$at_myself" > "$at_test_source"
+}
+
+# at_fn_create_debugging_script
+# -----------------------------
+# Create the debugging script $at_group_dir/run which will reproduce the
+# current test group.
+at_fn_create_debugging_script ()
+{
+  {
+    echo "#! /bin/sh" &&
+    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
+    $as_echo "cd '$at_dir'" &&
+    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
+    echo 'exit 1'
+  } >"$at_group_dir/run" &&
+  chmod +x "$at_group_dir/run"
+}
+
+## -------------------------------- ##
+## End of autotest shell functions. ##
+## -------------------------------- ##
+{
+  $as_echo "## ---------------- ##
 ## Tested programs. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
   echo
 } >&5
 
@@ -863,51 +1596,44 @@
 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
     {
-      echo "run.at:25: $as_dir/$at_program --version"
-      $as_dir/$at_program --version
+      $as_echo "$at_srcdir/run.at:25: $at_program_ --version"
+      "$at_program_" --version </dev/null
       echo
     } >&5 2>&1
   else
-    { { echo "$as_me:$LINENO: error: cannot find $at_program" >&5
-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`
-at_start_time=`(date +%s) 2>/dev/null`
-echo "$as_me: starting at: $at_start_date" >&5
-at_xpass_list=
-at_xfail_list=
-at_pass_list=
-at_fail_list=
-at_skip_list=
-at_group_count=0
+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 ||
-  { { echo "$as_me:$LINENO: error: cannot create $at_suite_dir" >&5
-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
@@ -914,74 +1640,601 @@
   at_devnull=/dev/null
 else
   at_devnull=$at_suite_dir/devnull
-  cp /dev/null $at_devnull
+  >"$at_devnull"
 fi
 
 # Use `diff -u' when possible.
-if diff -u $at_devnull $at_devnull >/dev/null 2>&1; then
+if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
+then
   at_diff='diff -u'
 else
   at_diff=diff
 fi
 
+# Get the last needed group.
+for at_group in : $at_groups; do :; done
 
-for at_group in $at_groups
-do
-  # Be sure to come back to the top test directory.
-  cd $at_suite_dir
+# Extract the start and end lines of each test group at the tail
+# of this file
+awk '
+BEGIN { FS="" }
+/^#AT_START_/ {
+  start = NR
+}
+/^#AT_STOP_/ {
+  test = substr ($ 0, 10)
+  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
+  if (test == "'"$at_group"'") exit
+}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
+. "$at_suite_dir/at-source-lines" ||
+  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
+rm -f "$at_suite_dir/at-source-lines"
 
-  case $at_group in
-    banner-*)
-      at_group_log=$at_suite_log
-      ;;
+# 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
 
-    *)
-      # Skip tests we already run (using --keywords makes it easy to get
-      # duplication).
-      case " $at_pass_test $at_skip_test $at_fail_test " in
-	*" $at_group "* ) continue;;
-      esac
+# 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
 
-      # Normalize the test group number.
-      at_group_normalized=`expr "00000$at_group" : ".*\($at_format\)"`
+# Set up helper dirs.
+rm -rf "$at_helper_dir" &&
+mkdir "$at_helper_dir" &&
+cd "$at_helper_dir" &&
+{ test -z "$at_groups" || mkdir $at_groups; } ||
+as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
 
-      # Create a fresh directory for the next test group, and enter.
-      at_group_dir=$at_suite_dir/$at_group_normalized
-      at_group_log=$at_group_dir/$as_me.log
-      rm -rf $at_group_dir
-      mkdir $at_group_dir ||
-	{ { echo "$as_me:$LINENO: error: cannot create $at_group_dir" >&5
-echo "$as_me: error: cannot create $at_group_dir" >&2;}
-   { (exit 1); exit 1; }; }
-      cd $at_group_dir
-      ;;
-  esac
+# 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.
 
-  echo 0 > $at_status_file
+# at_fn_group_prepare
+# -------------------
+# Prepare for running a test group.
+at_fn_group_prepare ()
+{
+  # The directory for additional per-group helper files.
+  at_job_dir=$at_helper_dir/$at_group
+  # The file containing the location of the last AT_CHECK.
+  at_check_line_file=$at_job_dir/check-line
+  # The file containing the exit status of the last command.
+  at_status_file=$at_job_dir/status
+  # The files containing the output of the tested commands.
+  at_stdout=$at_job_dir/stdout
+  at_stder1=$at_job_dir/stder1
+  at_stderr=$at_job_dir/stderr
+  # The file containing the code for a test group.
+  at_test_source=$at_job_dir/test-source
+  # The file containing dates.
+  at_times_file=$at_job_dir/times
 
+  # Be sure to come back to the top test directory.
+  cd "$at_suite_dir"
+
   # Clearly separate the test groups when verbose.
-  test $at_group_count != 0 && $at_verbose
+  $at_first || $at_verbose echo
 
+  at_group_normalized=$at_group
+
+  eval 'while :; do
+    case $at_group_normalized in #(
+    '"$at_format"'*) break;;
+    esac
+    at_group_normalized=0$at_group_normalized
+  done'
+
+
+  # Create a fresh directory for the next test group, and enter.
+  # If one already exists, the user may have invoked ./run from
+  # within that directory; we remove the contents, but not the
+  # directory itself, so that we aren't pulling the rug out from
+  # under the shell's notion of the current directory.
+  at_group_dir=$at_suite_dir/$at_group_normalized
+  at_group_log=$at_group_dir/$as_me.log
+  if test -d "$at_group_dir"; then
+  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
+  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
+fi ||
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
+$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
+  # Be tolerant if the above `rm' was not able to remove the directory.
+  as_dir="$at_group_dir"; as_fn_mkdir_p
+
+  echo 0 > "$at_status_file"
+
   # In verbose mode, append to the log file *and* show on
-  # the standard output; in quiet mode only write to the log
-  if test $at_verbose = echo; then
-    at_tee_pipe="tee -a $at_group_log"
+  # the standard output; in quiet mode only write to the log.
+  if test -z "$at_verbose"; then
+    at_tee_pipe='tee -a "$at_group_log"'
   else
-    at_tee_pipe="cat >> $at_group_log"
+    at_tee_pipe='cat >> "$at_group_log"'
   fi
+}
 
-  case $at_group in
-  1 ) # 1. fundamental.at:25: DISPLAY literals
-    at_setup_line='fundamental.at:25'
-    at_desc='DISPLAY literals'
-    $at_quiet $ECHO_N "  1: DISPLAY literals                             $ECHO_C"
-    at_xfail=no
+# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
+# -------------------------------------------------
+# Declare the test group ORDINAL, located at LINE with group description DESC,
+# and residing under BANNER. Use PAD to align the status column.
+at_fn_group_banner ()
+{
+  at_setup_line="$2"
+  test -n "$5" && at_fn_banner $5
+  at_desc="$3"
+  case $1 in
+    [0-9])      at_desc_line="  $1: ";;
+    [0-9][0-9]) at_desc_line=" $1: " ;;
+    *)          at_desc_line="$1: "  ;;
+  esac
+  as_fn_append at_desc_line "$3$4"
+  $at_quiet $as_echo_n "$at_desc_line"
+  echo "#                             -*- compilation -*-" >> "$at_group_log"
+}
+
+# at_fn_group_postprocess
+# -----------------------
+# Perform cleanup after running a test group.
+at_fn_group_postprocess ()
+{
+  # Be sure to come back to the suite directory, in particular
+  # since below we might `rm' the group directory we are in currently.
+  cd "$at_suite_dir"
+
+  if test ! -f "$at_check_line_file"; then
+    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
+      A failure happened in a test group before any test could be
+      run. This means that test suite is improperly designed.  Please
+      report this failure to <open-cobol-list@lists.sourceforge.net>.
+_ATEOF
+    $as_echo "$at_setup_line" >"$at_check_line_file"
+    at_status=99
+  fi
+  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
+  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
+  case $at_xfail:$at_status in
+    yes:0)
+	at_msg="UNEXPECTED PASS"
+	at_res=xpass
+	at_errexit=$at_errexit_p
+	at_color=$at_red
+	;;
+    no:0)
+	at_msg="ok"
+	at_res=pass
+	at_errexit=false
+	at_color=$at_grn
+	;;
+    *:77)
+	at_msg='skipped ('`cat "$at_check_line_file"`')'
+	at_res=skip
+	at_errexit=false
+	at_color=$at_blu
+	;;
+    no:* | *:99)
+	at_msg='FAILED ('`cat "$at_check_line_file"`')'
+	at_res=fail
+	at_errexit=$at_errexit_p
+	at_color=$at_red
+	;;
+    yes:*)
+	at_msg='expected failure ('`cat "$at_check_line_file"`')'
+	at_res=xfail
+	at_errexit=false
+	at_color=$at_lgn
+	;;
+  esac
+  echo "$at_res" > "$at_job_dir/$at_res"
+  # In parallel mode, output the summary line only afterwards.
+  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
+    $as_echo "$at_desc_line $at_color$at_msg$at_std"
+  else
+    # Make sure there is a separator even with long titles.
+    $as_echo " $at_color$at_msg$at_std"
+  fi
+  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
+  case $at_status in
+    0|77)
+      # $at_times_file is only available if the group succeeded.
+      # We're not including the group log, so the success message
+      # is written in the global log separately.  But we also
+      # write to the group log in case they're using -d.
+      if test -f "$at_times_file"; then
+	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
+	rm -f "$at_times_file"
+      fi
+      $as_echo "$at_log_msg" >> "$at_group_log"
+      $as_echo "$at_log_msg" >&5
+
+      # Cleanup the group directory, unless the user wants the files
+      # or the success was unexpected.
+      if $at_debug_p || test $at_res = xpass; then
+	at_fn_create_debugging_script
+	if test $at_res = xpass && $at_errexit; then
+	  echo stop > "$at_stop_file"
+	fi
+      else
+	if test -d "$at_group_dir"; then
+	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
+	  rm -fr "$at_group_dir"
+	fi
+	rm -f "$at_test_source"
+      fi
+      ;;
+    *)
+      # Upon failure, include the log into the testsuite's global
+      # log.  The failure message is written in the group log.  It
+      # is later included in the global log.
+      $as_echo "$at_log_msg" >> "$at_group_log"
+
+      # Upon failure, keep the group directory for autopsy, and create
+      # the debugging script.  With -e, do not start any further tests.
+      at_fn_create_debugging_script
+      if $at_errexit; then
+	echo stop > "$at_stop_file"
+      fi
+      ;;
+  esac
+}
+
+
+## ------------ ##
+## Driver loop. ##
+## ------------ ##
+
+
+if (set -m && set +m && set +b) >/dev/null 2>&1; then
+  set +b
+  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
+else
+  at_job_control_on=: at_job_control_off=: at_job_group=
+fi
+
+for at_signal in 1 2 15; do
+  trap 'set +x; set +e
+	$at_job_control_off
+	at_signal='"$at_signal"'
+	echo stop > "$at_stop_file"
+	trap "" $at_signal
+	at_pgids=
+	for at_pgid in `jobs -p 2>/dev/null`; do
+	  at_pgids="$at_pgids $at_job_group$at_pgid"
+	done
+	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
+	wait
+	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
+	  echo >&2
+	fi
+	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
+	set x $at_signame
+	test 1 -gt 2 && at_signame=$at_signal
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
+$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
+	as_fn_arith 128 + $at_signal && exit_status=$as_val
+	as_fn_exit $exit_status' $at_signal
+done
+
+rm -f "$at_stop_file"
+at_first=:
+
+if test $at_jobs -ne 1 &&
+     rm -f "$at_job_fifo" &&
+     test -n "$at_job_group" &&
+     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
+then
+  # FIFO job dispatcher.
+
+  trap 'at_pids=
+	for at_pid in `jobs -p`; do
+	  at_pids="$at_pids $at_job_group$at_pid"
+	done
+	if test -n "$at_pids"; then
+	  at_sig=TSTP
+	  test "${TMOUT+set}" = set && at_sig=STOP
+	  kill -$at_sig $at_pids 2>/dev/null
+	fi
+	kill -STOP $$
+	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
+
+  echo
+  # Turn jobs into a list of numbers, starting from 1.
+  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
+
+  set X $at_joblist
+  shift
+  for at_group in $at_groups; do
+    $at_job_control_on 2>/dev/null
     (
-      echo "1. fundamental.at:25: testing ..."
-      $at_traceon
+      # Start one test group.
+      $at_job_control_off
+      if $at_first; then
+	exec 7>"$at_job_fifo"
+      else
+	exec 6<&-
+      fi
+      trap 'set +x; set +e
+	    trap "" PIPE
+	    echo stop > "$at_stop_file"
+	    echo >&7
+	    as_fn_exit 141' PIPE
+      at_fn_group_prepare
+      if cd "$at_group_dir" &&
+	 at_fn_test $at_group &&
+	 . "$at_test_source"
+      then :; else
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
+$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
+	at_failed=:
+      fi
+      at_fn_group_postprocess
+      echo >&7
+    ) &
+    $at_job_control_off
+    if $at_first; then
+      at_first=false
+      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
+    fi
+    shift # Consume one token.
+    if test $# -gt 0; then :; else
+      read at_token <&6 || break
+      set x $*
+    fi
+    test -f "$at_stop_file" && break
+  done
+  exec 7>&-
+  # Read back the remaining ($at_jobs - 1) tokens.
+  set X $at_joblist
+  shift
+  if test $# -gt 0; then
+    shift
+    for at_job
+    do
+      read at_token
+    done <&6
+  fi
+  exec 6<&-
+  wait
+else
+  # Run serially, avoid forks and other potential surprises.
+  for at_group in $at_groups; do
+    at_fn_group_prepare
+    if cd "$at_group_dir" &&
+       at_fn_test $at_group &&
+       . "$at_test_source"; then :; else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
+$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
+      at_failed=:
+    fi
+    at_fn_group_postprocess
+    test -f "$at_stop_file" && break
+    at_first=false
+  done
+fi
 
+# Wrap up the test suite with summary statistics.
+cd "$at_helper_dir"
 
+# Use ?..???? when the list must remain sorted, the faster * otherwise.
+at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
+at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
+at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
+at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
+		 echo $f; done | sed '/?/d; s,/xpass,,'`
+at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
+		echo $f; done | sed '/?/d; s,/fail,,'`
 
+set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
+shift; at_group_count=$#
+set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
+set X $at_xfail_list; shift; at_xfail_count=$#
+set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
+set X $at_skip_list; shift; at_skip_count=$#
+
+as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
+as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
+as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
+
+# Back to the top directory.
+cd "$at_dir"
+rm -rf "$at_helper_dir"
+
+# Compute the duration of the suite.
+at_stop_date=`date`
+at_stop_time=`date +%s 2>/dev/null`
+$as_echo "$as_me: ending at: $at_stop_date" >&5
+case $at_start_time,$at_stop_time in
+  [0-9]*,[0-9]*)
+    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
+    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
+    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
+    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
+    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
+    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
+    $as_echo "$as_me: test suite duration: $at_duration" >&5
+    ;;
+esac
+
+echo
+$as_echo "## ------------- ##
+## Test results. ##
+## ------------- ##"
+echo
+{
+  echo
+  $as_echo "## ------------- ##
+## Test results. ##
+## ------------- ##"
+  echo
+} >&5
+
+if test $at_run_count = 1; then
+  at_result="1 test"
+  at_were=was
+else
+  at_result="$at_run_count tests"
+  at_were=were
+fi
+if $at_errexit_p && test $at_unexpected_count != 0; then
+  if test $at_xpass_count = 1; then
+    at_result="$at_result $at_were run, one passed"
+  else
+    at_result="$at_result $at_were run, one failed"
+  fi
+  at_result="$at_result unexpectedly and inhibited subsequent tests."
+  at_color=$at_red
+else
+  # Don't you just love exponential explosion of the number of cases?
+  at_color=$at_red
+  case $at_xpass_count:$at_fail_count:$at_xfail_count in
+    # So far, so good.
+    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
+    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
+
+    # Some unexpected failures
+    0:*:0) at_result="$at_result $at_were run,
+$at_fail_count failed unexpectedly." ;;
+
+    # Some failures, both expected and unexpected
+    0:*:1) at_result="$at_result $at_were run,
+$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
+    0:*:*) at_result="$at_result $at_were run,
+$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
+
+    # No unexpected failures, but some xpasses
+    *:0:*) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly." ;;
+
+    # No expected failures, but failures and xpasses
+    *:1:0) at_result="$at_result $at_were run,
+$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
+    *:*:0) at_result="$at_result $at_were run,
+$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
+
+    # All of them.
+    *:*:1) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly,
+$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
+    *:*:*) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly,
+$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
+  esac
+
+  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
+    at_result="All $at_result"
+  fi
+fi
+
+# Now put skips in the mix.
+case $at_skip_count in
+  0) ;;
+  1) at_result="$at_result
+1 test was skipped." ;;
+  *) at_result="$at_result
+$at_skip_count tests were skipped." ;;
+esac
+
+if test $at_unexpected_count = 0; then
+  echo "$at_color$at_result$at_std"
+  echo "$at_result" >&5
+else
+  echo "${at_color}ERROR: $at_result$at_std" >&2
+  echo "ERROR: $at_result" >&5
+  {
+    echo
+    $as_echo "## ------------------------ ##
+## Summary of the failures. ##
+## ------------------------ ##"
+
+    # Summary of failed and skipped tests.
+    if test $at_fail_count != 0; then
+      echo "Failed tests:"
+      $SHELL "$at_myself" $at_fail_list --list
+      echo
+    fi
+    if test $at_skip_count != 0; then
+      echo "Skipped tests:"
+      $SHELL "$at_myself" $at_skip_list --list
+      echo
+    fi
+    if test $at_xpass_count != 0; then
+      echo "Unexpected passes:"
+      $SHELL "$at_myself" $at_xpass_list --list
+      echo
+    fi
+    if test $at_fail_count != 0; then
+      $as_echo "## ---------------------- ##
+## Detailed failed tests. ##
+## ---------------------- ##"
+      echo
+      for at_group in $at_fail_list
+      do
+	at_group_normalized=$at_group
+
+  eval 'while :; do
+    case $at_group_normalized in #(
+    '"$at_format"'*) break;;
+    esac
+    at_group_normalized=0$at_group_normalized
+  done'
+
+	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
+	echo
+      done
+      echo
+    fi
+    if test -n "$at_top_srcdir"; then
+      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## ${at_top_build_prefix}config.log ##
+_ASBOX
+      sed 's/^/| /' ${at_top_build_prefix}config.log
+      echo
+    fi
+  } >&5
+
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## $as_me.log was created. ##
+_ASBOX
+
+  echo
+  if $at_debug_p; then
+    at_msg='per-test log files'
+  else
+    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
+  fi
+  $as_echo "Please send $at_msg and all information you think might help:
+
+   To: <open-cobol-list@lists.sourceforge.net>
+   Subject: [GNU Cobol 1.1] $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'.
+"
+  exit 1
+fi
+
+exit 0
+
+## ------------- ##
+## Actual tests. ##
+## ------------- ##
+#AT_START_1
+at_fn_group_banner 1 'fundamental.at:25' \
+  "DISPLAY literals" "                               "
+at_xfail=no
+(
+  $as_echo "1. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1005,41 +2258,28 @@
 _ATEOF
 
 
-$at_traceoff
-echo "fundamental.at:49: \${COMPILE} prog.cob"
-echo fundamental.at:49 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:49: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:49: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fundamental.at:49"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/fundamental.at:49"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "fundamental.at:58: ./prog"
-echo fundamental.at:58 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "abc
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:50: ./prog"
+at_fn_check_prepare_trace "fundamental.at:50"
+( $at_check_trace; ./prog
+) >>"$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 "abc
 123
 +123
 -123
@@ -1046,40 +2286,28 @@
 12.3
 +12.3
 -12.3
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:58: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/fundamental.at:50"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_1
+#AT_START_2
+at_fn_group_banner 2 'fundamental.at:63' \
+  "DISPLAY literals, DECIMAL-POINT is COMMA" "       "
+at_xfail=no
+(
+  $as_echo "2. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  2 ) # 2. fundamental.at:63: DISPLAY literals, DECIMAL-POINT is COMMA
-    at_setup_line='fundamental.at:63'
-    at_desc='DISPLAY literals, DECIMAL-POINT is COMMA'
-    $at_quiet $ECHO_N "  2: DISPLAY literals, DECIMAL-POINT is COMMA     $ECHO_C"
-    at_xfail=no
-    (
-      echo "2. fundamental.at:63: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1099,77 +2327,52 @@
 _ATEOF
 
 
-$at_traceoff
-echo "fundamental.at:83: \${COMPILE} prog.cob"
-echo fundamental.at:83 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:83: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:83: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fundamental.at:83"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/fundamental.at:83"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "fundamental.at:88: ./prog"
-echo fundamental.at:88 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "12,3
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:84: ./prog"
+at_fn_check_prepare_trace "fundamental.at:84"
+( $at_check_trace; ./prog
+) >>"$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 "12,3
 +12,3
 -12,3
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:88: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/fundamental.at:84"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_2
+#AT_START_3
+at_fn_group_banner 3 'fundamental.at:92' \
+  "Hexadecimal literal" "                            "
+at_xfail=no
+(
+  $as_echo "3. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  3 ) # 3. fundamental.at:92: Hexadecimal literal
-    at_setup_line='fundamental.at:92'
-    at_desc='Hexadecimal literal'
-    $at_quiet $ECHO_N "  3: Hexadecimal literal                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "3. fundamental.at:92: testing ..."
-      $at_traceon
-
-
-
 cat >dump.c <<'_ATEOF'
 
 #include <stdio.h>
@@ -1185,32 +2388,20 @@
 _ATEOF
 
 
-$at_traceoff
-echo "fundamental.at:108: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
-echo fundamental.at:108 >$at_check_line_file
-( $at_traceon; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:108: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:108: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fundamental.at:108"
+( $at_check_trace; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c
+) >>"$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/fundamental.at:108"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1224,76 +2415,51 @@
 _ATEOF
 
 
-$at_traceoff
-echo "fundamental.at:121: \${COMPILE} prog.cob"
-echo fundamental.at:121 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:121: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:121: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fundamental.at:121"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/fundamental.at:121"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "fundamental.at:125: ./prog"
-echo fundamental.at:125 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "123
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:122: ./prog"
+at_fn_check_prepare_trace "fundamental.at:122"
+( $at_check_trace; ./prog
+) >>"$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 "123
 00010200
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:125: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/fundamental.at:122"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_3
+#AT_START_4
+at_fn_group_banner 4 'fundamental.at:129' \
+  "DISPLAY data items with VALUE clause" "           "
+at_xfail=no
+(
+  $as_echo "4. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  4 ) # 4. fundamental.at:129: DISPLAY data items with VALUE clause
-    at_setup_line='fundamental.at:129'
-    at_desc='DISPLAY data items with VALUE clause'
-    $at_quiet $ECHO_N "  4: DISPLAY data items with VALUE clause         $ECHO_C"
-    at_xfail=no
-    (
-      echo "4. fundamental.at:129: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1326,41 +2492,28 @@
 _ATEOF
 
 
-$at_traceoff
-echo "fundamental.at:162: \${COMPILE} prog.cob"
-echo fundamental.at:162 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:162: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:162: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fundamental.at:162"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/fundamental.at:162"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "fundamental.at:171: ./prog"
-echo fundamental.at:171 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "abc
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:163: ./prog"
+at_fn_check_prepare_trace "fundamental.at:163"
+( $at_check_trace; ./prog
+) >>"$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 "abc
 123
 +123
 -123
@@ -1367,40 +2520,28 @@
 12.3
 +12.3
 -12.3
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:171: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/fundamental.at:163"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_4
+#AT_START_5
+at_fn_group_banner 5 'fundamental.at:175' \
+  "DISPLAY data items with MOVE statement" "         "
+at_xfail=no
+(
+  $as_echo "5. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  5 ) # 5. fundamental.at:175: DISPLAY data items with MOVE statement
-    at_setup_line='fundamental.at:175'
-    at_desc='DISPLAY data items with MOVE statement'
-    $at_quiet $ECHO_N "  5: DISPLAY data items with MOVE statement       $ECHO_C"
-    at_xfail=no
-    (
-      echo "5. fundamental.at:175: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1433,41 +2574,28 @@
 _ATEOF
 
 
-$at_traceoff
-echo "fundamental.at:208: \${COMPILE} prog.cob"
-echo fundamental.at:208 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:208: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:208: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fundamental.at:208"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/fundamental.at:208"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "fundamental.at:217: ./prog"
-echo fundamental.at:217 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "abc
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:209: ./prog"
+at_fn_check_prepare_trace "fundamental.at:209"
+( $at_check_trace; ./prog
+) >>"$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 "abc
 123
 +123
 -123
@@ -1474,40 +2602,28 @@
 12.3
 +12.3
 -12.3
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:217: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/fundamental.at:209"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_5
+#AT_START_6
+at_fn_group_banner 6 'fundamental.at:222' \
+  "GLOBAL at same level" "                           "
+at_xfail=no
+(
+  $as_echo "6. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  6 ) # 6. fundamental.at:222: GLOBAL at same level
-    at_setup_line='fundamental.at:222'
-    at_desc='GLOBAL at same level'
-    $at_quiet $ECHO_N "  6: GLOBAL at same level                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "6. fundamental.at:222: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1546,77 +2662,52 @@
 _ATEOF
 
 
-$at_traceoff
-echo "fundamental.at:261: \${COMPILE} prog.cob"
-echo fundamental.at:261 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:261: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:261: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fundamental.at:261"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/fundamental.at:261"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "fundamental.at:266: ./prog"
-echo fundamental.at:266 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "prog1
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:262: ./prog"
+at_fn_check_prepare_trace "fundamental.at:262"
+( $at_check_trace; ./prog
+) >>"$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 "prog1
 prog2
 prog1
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:266: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/fundamental.at:262"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_6
+#AT_START_7
+at_fn_group_banner 7 'fundamental.at:271' \
+  "GLOBAL at lower level" "                          "
+at_xfail=no
+(
+  $as_echo "7. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  7 ) # 7. fundamental.at:271: GLOBAL at lower level
-    at_setup_line='fundamental.at:271'
-    at_desc='GLOBAL at lower level'
-    $at_quiet $ECHO_N "  7: GLOBAL at lower level                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "7. fundamental.at:271: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1655,77 +2746,52 @@
 _ATEOF
 
 
-$at_traceoff
-echo "fundamental.at:310: \${COMPILE} prog.cob"
-echo fundamental.at:310 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:310: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:310: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fundamental.at:310"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/fundamental.at:310"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "fundamental.at:315: ./prog"
-echo fundamental.at:315 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "prog1
+{ set +x
+$as_echo "$at_srcdir/fundamental.at:311: ./prog"
+at_fn_check_prepare_trace "fundamental.at:311"
+( $at_check_trace; ./prog
+) >>"$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 "prog1
 prog2
 prog2
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "fundamental.at:315: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/fundamental.at:311"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_7
+#AT_START_8
+at_fn_group_banner 8 'subscripts.at:30' \
+  "Non-numeric subscript" "                          "
+at_xfail=no
+(
+  $as_echo "8. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  8 ) # 8. subscripts.at:30: Non-numeric subscript
-    at_setup_line='subscripts.at:30'
-    at_desc='Non-numeric subscript'
-    $at_quiet $ECHO_N "  8: Non-numeric subscript                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "8. subscripts.at:30: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1744,51 +2810,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:52: \${COMPILE_ONLY} prog.cob"
-echo subscripts.at:52 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: 'I' is not an integer value
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:49: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:49"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'I' is not an integer value
 prog.cob:12: Error: 'I' is not a numeric value
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "subscripts.at:52: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:49"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_8
+#AT_START_9
+at_fn_group_banner 9 'subscripts.at:59' \
+  "Subscript range check" "                          "
+at_xfail=no
+(
+  $as_echo "9. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  9 ) # 9. subscripts.at:59: Subscript range check
-    at_setup_line='subscripts.at:59'
-    at_desc='Subscript range check'
-    $at_quiet $ECHO_N "  9: Subscript range check                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "9. subscripts.at:59: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1819,53 +2872,40 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:95: \${COMPILE_ONLY} prog.cob"
-echo subscripts.at:95 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: Subscript of 'X' out of bounds: 0
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:90: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:90"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: Subscript of 'X' out of bounds: 0
 prog.cob:16: Error: Subscript of 'X' out of bounds: 3
 prog.cob:18: Error: Subscript of 'Y' out of bounds: 0
 prog.cob:24: Error: Subscript of 'Y' out of bounds: 4
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "subscripts.at:95: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:90"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_9
+#AT_START_10
+at_fn_group_banner 10 'subscripts.at:100' \
+  "Subscript out of bounds (1)" "                    "
+at_xfail=no
+(
+  $as_echo "10. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  10 ) # 10. subscripts.at:100: Subscript out of bounds (1)
-    at_setup_line='subscripts.at:100'
-    at_desc='Subscript out of bounds (1)'
-    $at_quiet $ECHO_N " 10: Subscript out of bounds (1)                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "10. subscripts.at:100: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1882,75 +2922,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:117: \${COMPILE} -o prog prog.cob"
-echo subscripts.at:117 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "subscripts.at:117: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:117: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:117"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/subscripts.at:117"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:118: ./prog"
+at_fn_check_prepare_trace "subscripts.at:118"
+( $at_check_trace; ./prog
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: libcob: Subscript of 'X' out of bounds: 0
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:118"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "subscripts.at:120: ./prog"
-echo subscripts.at:120 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: libcob: Subscript of 'X' out of bounds: 0
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "subscripts.at:120: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_10
+#AT_START_11
+at_fn_group_banner 11 'subscripts.at:125' \
+  "Subscript out of bounds (2)" "                    "
+at_xfail=no
+(
+  $as_echo "11. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  11 ) # 11. subscripts.at:125: Subscript out of bounds (2)
-    at_setup_line='subscripts.at:125'
-    at_desc='Subscript out of bounds (2)'
-    $at_quiet $ECHO_N " 11: Subscript out of bounds (2)                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "11. subscripts.at:125: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1967,75 +2982,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:142: \${COMPILE} -o prog prog.cob"
-echo subscripts.at:142 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "subscripts.at:142: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:142: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:142"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/subscripts.at:142"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:143: ./prog"
+at_fn_check_prepare_trace "subscripts.at:143"
+( $at_check_trace; ./prog
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: libcob: Subscript of 'X' out of bounds: 11
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:143"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "subscripts.at:145: ./prog"
-echo subscripts.at:145 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: libcob: Subscript of 'X' out of bounds: 11
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "subscripts.at:145: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_11
+#AT_START_12
+at_fn_group_banner 12 'subscripts.at:150' \
+  "Value of DEPENDING ON N out of bounds (lower)" "  "
+at_xfail=no
+(
+  $as_echo "12. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  12 ) # 12. subscripts.at:150: Value of DEPENDING ON N out of bounds (lower)
-    at_setup_line='subscripts.at:150'
-    at_desc='Value of DEPENDING ON N out of bounds (lower)'
-    $at_quiet $ECHO_N " 12: Value of DEPENDING ON N out of bounds (lower)$ECHO_C"
-    at_xfail=no
-    (
-      echo "12. subscripts.at:150: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2052,75 +3042,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:167: \${COMPILE} -o prog prog.cob"
-echo subscripts.at:167 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "subscripts.at:167: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:167: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:167"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/subscripts.at:167"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:168: ./prog"
+at_fn_check_prepare_trace "subscripts.at:168"
+( $at_check_trace; ./prog
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: libcob: OCCURS DEPENDING ON 'N' out of bounds: 3
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:168"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "subscripts.at:170: ./prog"
-echo subscripts.at:170 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: libcob: OCCURS DEPENDING ON 'N' out of bounds: 3
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "subscripts.at:170: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_12
+#AT_START_13
+at_fn_group_banner 13 'subscripts.at:175' \
+  "Value of DEPENDING ON N out of bounds (upper)" "  "
+at_xfail=no
+(
+  $as_echo "13. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  13 ) # 13. subscripts.at:175: Value of DEPENDING ON N out of bounds (upper)
-    at_setup_line='subscripts.at:175'
-    at_desc='Value of DEPENDING ON N out of bounds (upper)'
-    $at_quiet $ECHO_N " 13: Value of DEPENDING ON N out of bounds (upper)$ECHO_C"
-    at_xfail=no
-    (
-      echo "13. subscripts.at:175: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2137,75 +3102,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:192: \${COMPILE} -o prog prog.cob"
-echo subscripts.at:192 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "subscripts.at:192: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:192: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:192"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/subscripts.at:192"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:193: ./prog"
+at_fn_check_prepare_trace "subscripts.at:193"
+( $at_check_trace; ./prog
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: libcob: OCCURS DEPENDING ON 'N' out of bounds: 7
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:193"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "subscripts.at:195: ./prog"
-echo subscripts.at:195 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: libcob: OCCURS DEPENDING ON 'N' out of bounds: 7
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "subscripts.at:195: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_13
+#AT_START_14
+at_fn_group_banner 14 'subscripts.at:200' \
+  "Subscript bounds with ODO (lower)" "              "
+at_xfail=no
+(
+  $as_echo "14. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  14 ) # 14. subscripts.at:200: Subscript bounds with ODO (lower)
-    at_setup_line='subscripts.at:200'
-    at_desc='Subscript bounds with ODO (lower)'
-    $at_quiet $ECHO_N " 14: Subscript bounds with ODO (lower)            $ECHO_C"
-    at_xfail=no
-    (
-      echo "14. subscripts.at:200: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2222,50 +3162,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:219: \${COMPILE} -o prog prog.cob"
-echo subscripts.at:219 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: Subscript of 'X' out of bounds: 0
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "subscripts.at:219: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:217: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:217"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: Subscript of 'X' out of bounds: 0
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:217"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_14
+#AT_START_15
+at_fn_group_banner 15 'subscripts.at:224' \
+  "Subscript bounds with ODO (upper)" "              "
+at_xfail=no
+(
+  $as_echo "15. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  15 ) # 15. subscripts.at:224: Subscript bounds with ODO (upper)
-    at_setup_line='subscripts.at:224'
-    at_desc='Subscript bounds with ODO (upper)'
-    $at_quiet $ECHO_N " 15: Subscript bounds with ODO (upper)            $ECHO_C"
-    at_xfail=no
-    (
-      echo "15. subscripts.at:224: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2282,50 +3209,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:243: \${COMPILE} -o prog prog.cob"
-echo subscripts.at:243 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: Subscript of 'X' out of bounds: 7
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "subscripts.at:243: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:241: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:241"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: Subscript of 'X' out of bounds: 7
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:241"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_15
+#AT_START_16
+at_fn_group_banner 16 'subscripts.at:248' \
+  "Subscript bounds with ODO" "                      "
+at_xfail=no
+(
+  $as_echo "16. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  16 ) # 16. subscripts.at:248: Subscript bounds with ODO
-    at_setup_line='subscripts.at:248'
-    at_desc='Subscript bounds with ODO'
-    $at_quiet $ECHO_N " 16: Subscript bounds with ODO                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "16. subscripts.at:248: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2342,75 +3256,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:265: \${COMPILE} -o prog prog.cob"
-echo subscripts.at:265 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "subscripts.at:265: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:265: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:265"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/subscripts.at:265"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:266: ./prog"
+at_fn_check_prepare_trace "subscripts.at:266"
+( $at_check_trace; ./prog
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: libcob: Subscript of 'X' out of bounds: 5
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:266"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "subscripts.at:268: ./prog"
-echo subscripts.at:268 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: libcob: Subscript of 'X' out of bounds: 5
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "subscripts.at:268: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_16
+#AT_START_17
+at_fn_group_banner 17 'subscripts.at:275' \
+  "Subscript by arithmetic expression" "             "
+at_xfail=no
+(
+  $as_echo "17. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  17 ) # 17. subscripts.at:275: Subscript by arithmetic expression
-    at_setup_line='subscripts.at:275'
-    at_desc='Subscript by arithmetic expression'
-    $at_quiet $ECHO_N " 17: Subscript by arithmetic expression           $ECHO_C"
-    at_xfail=no
-    (
-      echo "17. subscripts.at:275: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2428,74 +3317,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:293: \${COMPILE} -o prog prog.cob"
-echo subscripts.at:293 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "subscripts.at:293: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:293: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:293"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/subscripts.at:293"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:294: ./prog"
+at_fn_check_prepare_trace "subscripts.at:294"
+( $at_check_trace; ./prog
+) >>"$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 "24" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/subscripts.at:294"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "subscripts.at:294: ./prog"
-echo subscripts.at:294 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "24" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "subscripts.at:294: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_17
+#AT_START_18
+at_fn_group_banner 18 'ref-mod.at:36' \
+  "Separate sign positions" "                        "
+at_xfail=no
+(
+  $as_echo "18. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  18 ) # 18. ref-mod.at:36: Separate sign positions
-    at_setup_line='ref-mod.at:36'
-    at_desc='Separate sign positions'
-    $at_quiet $ECHO_N " 18: Separate sign positions                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "18. ref-mod.at:36: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2513,74 +3377,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "ref-mod.at:54: \${COMPILE} -o prog prog.cob"
-echo ref-mod.at:54 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "ref-mod.at:54: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:54: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ref-mod.at:54"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/ref-mod.at:54"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:55: ./prog"
+at_fn_check_prepare_trace "ref-mod.at:55"
+( $at_check_trace; ./prog
+) >>"$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 "-11-" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/ref-mod.at:55"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "ref-mod.at:55: ./prog"
-echo ref-mod.at:55 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "-11-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "ref-mod.at:55: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_18
+#AT_START_19
+at_fn_group_banner 19 'ref-mod.at:62' \
+  "Static reference modification" "                  "
+at_xfail=no
+(
+  $as_echo "19. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  19 ) # 19. ref-mod.at:62: Static reference modification
-    at_setup_line='ref-mod.at:62'
-    at_desc='Static reference modification'
-    $at_quiet $ECHO_N " 19: Static reference modification                $ECHO_C"
-    at_xfail=no
-    (
-      echo "19. ref-mod.at:62: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2601,78 +3440,53 @@
 _ATEOF
 
 
-$at_traceoff
-echo "ref-mod.at:83: \${COMPILE} -o prog prog.cob"
-echo ref-mod.at:83 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "ref-mod.at:83: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:83: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ref-mod.at:83"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/ref-mod.at:83"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "ref-mod.at:89: ./prog"
-echo ref-mod.at:89 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "a:ab:abc:abcd:abcd
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:84: ./prog"
+at_fn_check_prepare_trace "ref-mod.at:84"
+( $at_check_trace; ./prog
+) >>"$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 "a:ab:abc:abcd:abcd
 b:bc:bcd:bcd
 c:cd:cd
 d:d
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "ref-mod.at:89: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/ref-mod.at:84"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_19
+#AT_START_20
+at_fn_group_banner 20 'ref-mod.at:93' \
+  "Dynamic reference modification" "                 "
+at_xfail=no
+(
+  $as_echo "20. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  20 ) # 20. ref-mod.at:93: Dynamic reference modification
-    at_setup_line='ref-mod.at:93'
-    at_desc='Dynamic reference modification'
-    $at_quiet $ECHO_N " 20: Dynamic reference modification               $ECHO_C"
-    at_xfail=no
-    (
-      echo "20. ref-mod.at:93: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2694,78 +3508,53 @@
 _ATEOF
 
 
-$at_traceoff
-echo "ref-mod.at:115: \${COMPILE} -o prog prog.cob"
-echo ref-mod.at:115 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "ref-mod.at:115: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:115: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ref-mod.at:115"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/ref-mod.at:115"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "ref-mod.at:121: ./prog"
-echo ref-mod.at:121 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "a
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:116: ./prog"
+at_fn_check_prepare_trace "ref-mod.at:116"
+( $at_check_trace; ./prog
+) >>"$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 "a
 d
 a
 abcd
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "ref-mod.at:121: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/ref-mod.at:116"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_20
+#AT_START_21
+at_fn_group_banner 21 'ref-mod.at:125' \
+  "Static out of bounds" "                           "
+at_xfail=no
+(
+  $as_echo "21. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  21 ) # 21. ref-mod.at:125: Static out of bounds
-    at_setup_line='ref-mod.at:125'
-    at_desc='Static out of bounds'
-    $at_quiet $ECHO_N " 21: Static out of bounds                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "21. ref-mod.at:125: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2786,53 +3575,40 @@
 _ATEOF
 
 
-$at_traceoff
-echo "ref-mod.at:151: \${COMPILE_ONLY} prog.cob"
-echo ref-mod.at:151 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Error: Offset of 'X' out of bounds: 0
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:146: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ref-mod.at:146"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: Offset of 'X' out of bounds: 0
 prog.cob:10: Error: Offset of 'X' out of bounds: 5
 prog.cob:12: Error: Length of 'X' out of bounds: 0
 prog.cob:14: Error: Length of 'X' out of bounds: 5
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "ref-mod.at:151: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/ref-mod.at:146"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_21
+#AT_START_22
+at_fn_group_banner 22 'ref-mod.at:155' \
+  "Offset underflow" "                               "
+at_xfail=no
+(
+  $as_echo "22. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  22 ) # 22. ref-mod.at:155: Offset underflow
-    at_setup_line='ref-mod.at:155'
-    at_desc='Offset underflow'
-    $at_quiet $ECHO_N " 22: Offset underflow                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "22. ref-mod.at:155: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2848,75 +3624,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "ref-mod.at:171: \${COMPILE} -o prog prog.cob"
-echo ref-mod.at:171 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "ref-mod.at:171: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:171: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ref-mod.at:171"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/ref-mod.at:171"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:172: ./prog"
+at_fn_check_prepare_trace "ref-mod.at:172"
+( $at_check_trace; ./prog
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:9: libcob: Offset of 'X' out of bounds: 0
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/ref-mod.at:172"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "ref-mod.at:174: ./prog"
-echo ref-mod.at:174 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:9: libcob: Offset of 'X' out of bounds: 0
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "ref-mod.at:174: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_22
+#AT_START_23
+at_fn_group_banner 23 'ref-mod.at:178' \
+  "Offset overflow" "                                "
+at_xfail=no
+(
+  $as_echo "23. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  23 ) # 23. ref-mod.at:178: Offset overflow
-    at_setup_line='ref-mod.at:178'
-    at_desc='Offset overflow'
-    $at_quiet $ECHO_N " 23: Offset overflow                              $ECHO_C"
-    at_xfail=no
-    (
-      echo "23. ref-mod.at:178: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2932,75 +3683,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "ref-mod.at:194: \${COMPILE} -o prog prog.cob"
-echo ref-mod.at:194 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "ref-mod.at:194: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:194: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ref-mod.at:194"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/ref-mod.at:194"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:195: ./prog"
+at_fn_check_prepare_trace "ref-mod.at:195"
+( $at_check_trace; ./prog
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:9: libcob: Offset of 'X' out of bounds: 5
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/ref-mod.at:195"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "ref-mod.at:197: ./prog"
-echo ref-mod.at:197 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:9: libcob: Offset of 'X' out of bounds: 5
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "ref-mod.at:197: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_23
+#AT_START_24
+at_fn_group_banner 24 'ref-mod.at:201' \
+  "Length underflow" "                               "
+at_xfail=no
+(
+  $as_echo "24. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  24 ) # 24. ref-mod.at:201: Length underflow
-    at_setup_line='ref-mod.at:201'
-    at_desc='Length underflow'
-    $at_quiet $ECHO_N " 24: Length underflow                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "24. ref-mod.at:201: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3016,75 +3742,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "ref-mod.at:217: \${COMPILE} -o prog prog.cob"
-echo ref-mod.at:217 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "ref-mod.at:217: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:217: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ref-mod.at:217"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/ref-mod.at:217"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:218: ./prog"
+at_fn_check_prepare_trace "ref-mod.at:218"
+( $at_check_trace; ./prog
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:9: libcob: Length of 'X' out of bounds: 0
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/ref-mod.at:218"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "ref-mod.at:220: ./prog"
-echo ref-mod.at:220 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:9: libcob: Length of 'X' out of bounds: 0
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "ref-mod.at:220: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_24
+#AT_START_25
+at_fn_group_banner 25 'ref-mod.at:224' \
+  "Length overflow" "                                "
+at_xfail=no
+(
+  $as_echo "25. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  25 ) # 25. ref-mod.at:224: Length overflow
-    at_setup_line='ref-mod.at:224'
-    at_desc='Length overflow'
-    $at_quiet $ECHO_N " 25: Length overflow                              $ECHO_C"
-    at_xfail=no
-    (
-      echo "25. ref-mod.at:224: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3100,75 +3801,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "ref-mod.at:240: \${COMPILE} -o prog prog.cob"
-echo ref-mod.at:240 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "ref-mod.at:240: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:240: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ref-mod.at:240"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/ref-mod.at:240"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/ref-mod.at:241: ./prog"
+at_fn_check_prepare_trace "ref-mod.at:241"
+( $at_check_trace; ./prog
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:9: libcob: Length of 'X' out of bounds: 5
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/ref-mod.at:241"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "ref-mod.at:243: ./prog"
-echo ref-mod.at:243 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:9: libcob: Length of 'X' out of bounds: 5
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "ref-mod.at:243: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_25
+#AT_START_26
+at_fn_group_banner 26 'accept.at:25' \
+  "ACCEPT FROM DATE/DAY" "                           "
+at_xfail=no
+(
+  $as_echo "26. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  26 ) # 26. accept.at:25: ACCEPT FROM DATE/DAY
-    at_setup_line='accept.at:25'
-    at_desc='ACCEPT FROM DATE/DAY'
-    $at_quiet $ECHO_N " 26: ACCEPT FROM DATE/DAY                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "26. accept.at:25: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3201,78 +3877,53 @@
 _ATEOF
 
 
-$at_traceoff
-echo "accept.at:58: \${COMPILE} -o prog prog.cob"
-echo accept.at:58 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "accept.at:58: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/accept.at:58: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "accept.at:58"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/accept.at:58"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "accept.at:64: ./prog"
-echo accept.at:64 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "(999999  )
+{ set +x
+$as_echo "$at_srcdir/accept.at:59: ./prog"
+at_fn_check_prepare_trace "accept.at:59"
+( $at_check_trace; ./prog
+) >>"$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 "(999999  )
 (99999999)
 (99999   )
 (9999999 )
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "accept.at:64: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/accept.at:59"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_26
+#AT_START_27
+at_fn_group_banner 27 'initialize.at:29' \
+  "INITIALIZE group entry with OCCURS" "             "
+at_xfail=no
+(
+  $as_echo "27. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  27 ) # 27. initialize.at:29: INITIALIZE group entry with OCCURS
-    at_setup_line='initialize.at:29'
-    at_desc='INITIALIZE group entry with OCCURS'
-    $at_quiet $ECHO_N " 27: INITIALIZE group entry with OCCURS           $ECHO_C"
-    at_xfail=no
-    (
-      echo "27. initialize.at:29: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3292,74 +3943,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "initialize.at:49: \${COMPILE} -o prog prog.cob"
-echo initialize.at:49 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:49: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/initialize.at:49: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "initialize.at:49"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/initialize.at:49"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/initialize.at:50: ./prog"
+at_fn_check_prepare_trace "initialize.at:50"
+( $at_check_trace; ./prog
+) >>"$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 "   0" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/initialize.at:50"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "initialize.at:50: ./prog"
-echo initialize.at:50 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "   0" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:50: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_27
+#AT_START_28
+at_fn_group_banner 28 'initialize.at:55' \
+  "INITIALIZE OCCURS with numeric edited" "          "
+at_xfail=no
+(
+  $as_echo "28. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  28 ) # 28. initialize.at:55: INITIALIZE OCCURS with numeric edited
-    at_setup_line='initialize.at:55'
-    at_desc='INITIALIZE OCCURS with numeric edited'
-    $at_quiet $ECHO_N " 28: INITIALIZE OCCURS with numeric edited        $ECHO_C"
-    at_xfail=no
-    (
-      echo "28. initialize.at:55: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3377,74 +4003,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "initialize.at:73: \${COMPILE} -o prog prog.cob"
-echo initialize.at:73 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:73: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/initialize.at:73: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "initialize.at:73"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/initialize.at:73"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/initialize.at:74: ./prog"
+at_fn_check_prepare_trace "initialize.at:74"
+( $at_check_trace; ./prog
+) >>"$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 " 0 0 0 0 0" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/initialize.at:74"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "initialize.at:74: ./prog"
-echo initialize.at:74 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo " 0 0 0 0 0" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:74: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_28
+#AT_START_29
+at_fn_group_banner 29 'initialize.at:79' \
+  "INITIALIZE complex group (1)" "                   "
+at_xfail=no
+(
+  $as_echo "29. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  29 ) # 29. initialize.at:79: INITIALIZE complex group (1)
-    at_setup_line='initialize.at:79'
-    at_desc='INITIALIZE complex group (1)'
-    $at_quiet $ECHO_N " 29: INITIALIZE complex group (1)                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "29. initialize.at:79: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3464,74 +4065,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "initialize.at:99: \${COMPILE} -o prog prog.cob"
-echo initialize.at:99 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:99: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/initialize.at:99: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "initialize.at:99"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/initialize.at:99"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/initialize.at:100: ./prog"
+at_fn_check_prepare_trace "initialize.at:100"
+( $at_check_trace; ./prog
+) >>"$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 " 000" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/initialize.at:100"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "initialize.at:100: ./prog"
-echo initialize.at:100 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo " 000" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:100: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_29
+#AT_START_30
+at_fn_group_banner 30 'initialize.at:104' \
+  "INITIALIZE complex group (2)" "                   "
+at_xfail=no
+(
+  $as_echo "30. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  30 ) # 30. initialize.at:104: INITIALIZE complex group (2)
-    at_setup_line='initialize.at:104'
-    at_desc='INITIALIZE complex group (2)'
-    $at_quiet $ECHO_N " 30: INITIALIZE complex group (2)                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "30. initialize.at:104: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3551,74 +4127,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "initialize.at:124: \${COMPILE} -o prog prog.cob"
-echo initialize.at:124 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:124: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/initialize.at:124: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "initialize.at:124"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/initialize.at:124"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/initialize.at:125: ./prog"
+at_fn_check_prepare_trace "initialize.at:125"
+( $at_check_trace; ./prog
+) >>"$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 "0   0   " | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/initialize.at:125"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "initialize.at:125: ./prog"
-echo initialize.at:125 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0   0   " | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:125: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_30
+#AT_START_31
+at_fn_group_banner 31 'initialize.at:129' \
+  "INITIALIZE with REDEFINES" "                      "
+at_xfail=no
+(
+  $as_echo "31. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  31 ) # 31. initialize.at:129: INITIALIZE with REDEFINES
-    at_setup_line='initialize.at:129'
-    at_desc='INITIALIZE with REDEFINES'
-    $at_quiet $ECHO_N " 31: INITIALIZE with REDEFINES                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "31. initialize.at:129: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3637,74 +4188,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "initialize.at:148: \${COMPILE} -o prog prog.cob"
-echo initialize.at:148 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:148: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/initialize.at:148: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "initialize.at:148"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/initialize.at:148"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/initialize.at:149: ./prog"
+at_fn_check_prepare_trace "initialize.at:149"
+( $at_check_trace; ./prog
+) >>"$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 " 0" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/initialize.at:149"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "initialize.at:149: ./prog"
-echo initialize.at:149 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo " 0" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:149: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_31
+#AT_START_32
+at_fn_group_banner 32 'initialize.at:153' \
+  "INITIALIZE with FILLER" "                         "
+at_xfail=no
+(
+  $as_echo "32. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  32 ) # 32. initialize.at:153: INITIALIZE with FILLER
-    at_setup_line='initialize.at:153'
-    at_desc='INITIALIZE with FILLER'
-    $at_quiet $ECHO_N " 32: INITIALIZE with FILLER                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "32. initialize.at:153: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3732,118 +4258,79 @@
 _ATEOF
 
 
-$at_traceoff
-echo "initialize.at:181: \${COMPILE} -o prog prog.cob"
-echo initialize.at:181 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:181: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/initialize.at:181: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "initialize.at:181"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/initialize.at:181"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/initialize.at:182: ./prog"
+at_fn_check_prepare_trace "initialize.at:182"
+( $at_check_trace; ./prog
+) >>"$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/initialize.at:182"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "initialize.at:182: ./prog"
-echo initialize.at:182 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "initialize.at:182: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_32
+#AT_START_33
+at_fn_group_banner 33 'misc.at:23' \
+  "Source file not found" "                          "
+at_xfail=no
+(
+  $as_echo "33. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
+{ set +x
+$as_echo "$at_srcdir/misc.at:26: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:26"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "cobc: prog.cob: No such file or directory
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/misc.at:26"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  33 ) # 33. misc.at:23: Source file not found
-    at_setup_line='misc.at:23'
-    at_desc='Source file not found'
-    $at_quiet $ECHO_N " 33: Source file not found                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "33. misc.at:23: testing ..."
-      $at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_33
+#AT_START_34
+at_fn_group_banner 34 'misc.at:33' \
+  "Comma separator without space" "                  "
+at_xfail=no
+(
+  $as_echo "34. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
 
-$at_traceoff
-echo "misc.at:28: \${COMPILE_ONLY} prog.cob"
-echo misc.at:28 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "cobc: prog.cob: No such file or directory
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "misc.at:28: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  34 ) # 34. misc.at:33: Comma separator without space
-    at_setup_line='misc.at:33'
-    at_desc='Comma separator without space'
-    $at_quiet $ECHO_N " 34: Comma separator without space                $ECHO_C"
-    at_xfail=no
-    (
-      echo "34. misc.at:33: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3855,74 +4342,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:45: \${COMPILE} -o prog prog.cob"
-echo misc.at:45 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:45: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:45: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:45"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:45"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:46: ./prog"
+at_fn_check_prepare_trace "misc.at:46"
+( $at_check_trace; ./prog
+) >>"$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 "111" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:46"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:46: ./prog"
-echo misc.at:46 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "111" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:46: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_34
+#AT_START_35
+at_fn_group_banner 35 'misc.at:51' \
+  "LOCAL-STORAGE" "                                  "
+at_xfail=no
+(
+  $as_echo "35. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  35 ) # 35. misc.at:51: LOCAL-STORAGE
-    at_setup_line='misc.at:51'
-    at_desc='LOCAL-STORAGE'
-    $at_quiet $ECHO_N " 35: LOCAL-STORAGE                                $ECHO_C"
-    at_xfail=no
-    (
-      echo "35. misc.at:51: testing ..."
-      $at_traceon
-
-
-
 cat >callee.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3955,103 +4417,66 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:82: \${COMPILE_MODULE} callee.cob"
-echo misc.at:82 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} callee.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:82: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:82: \${COMPILE_MODULE} callee.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:82"
+( $at_check_trace; ${COMPILE_MODULE} callee.cob
+) >>"$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/misc.at:82"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:83: \${COMPILE} -o prog caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:83"
+( $at_check_trace; ${COMPILE} -o prog caller.cob
+) >>"$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/misc.at:83"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
-
-$at_traceoff
-echo "misc.at:83: \${COMPILE} -o prog caller.cob"
-echo misc.at:83 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:83: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:89: ./prog"
-echo misc.at:89 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "WRK-X = abc
+{ set +x
+$as_echo "$at_srcdir/misc.at:84: ./prog"
+at_fn_check_prepare_trace "misc.at:84"
+( $at_check_trace; ./prog
+) >>"$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 "WRK-X = abc
 LCL-X = abc
 WRK-X = 000
 LCL-X = abc
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:89: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:84"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_35
+#AT_START_36
+at_fn_group_banner 36 'misc.at:94' \
+  "EXTERNAL data item" "                             "
+at_xfail=no
+(
+  $as_echo "36. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  36 ) # 36. misc.at:94: EXTERNAL data item
-    at_setup_line='misc.at:94'
-    at_desc='EXTERNAL data item'
-    $at_quiet $ECHO_N " 36: EXTERNAL data item                           $ECHO_C"
-    at_xfail=no
-    (
-      echo "36. misc.at:94: testing ..."
-      $at_traceon
-
-
-
 cat >callee.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4086,101 +4511,64 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:127: \${COMPILE_MODULE} callee.cob"
-echo misc.at:127 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} callee.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:127: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:127: \${COMPILE_MODULE} callee.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:127"
+( $at_check_trace; ${COMPILE_MODULE} callee.cob
+) >>"$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/misc.at:127"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:128: \${COMPILE} -o prog caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:128"
+( $at_check_trace; ${COMPILE} -o prog caller.cob
+) >>"$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/misc.at:128"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
-
-$at_traceoff
-echo "misc.at:128: \${COMPILE} -o prog caller.cob"
-echo misc.at:128 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:128: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:132: ./prog"
-echo misc.at:132 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "Hello
+{ set +x
+$as_echo "$at_srcdir/misc.at:129: ./prog"
+at_fn_check_prepare_trace "misc.at:129"
+( $at_check_trace; ./prog
+) >>"$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 "Hello
 World
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:132: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:129"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_36
+#AT_START_37
+at_fn_group_banner 37 'misc.at:137' \
+  "EXTERNAL AS data item" "                          "
+at_xfail=no
+(
+  $as_echo "37. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  37 ) # 37. misc.at:137: EXTERNAL AS data item
-    at_setup_line='misc.at:137'
-    at_desc='EXTERNAL AS data item'
-    $at_quiet $ECHO_N " 37: EXTERNAL AS data item                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "37. misc.at:137: testing ..."
-      $at_traceon
-
-
-
 cat >callee.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4218,102 +4606,65 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:173: \${COMPILE_MODULE} callee.cob"
-echo misc.at:173 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} callee.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:173: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:173: \${COMPILE_MODULE} callee.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:173"
+( $at_check_trace; ${COMPILE_MODULE} callee.cob
+) >>"$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/misc.at:173"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:174: \${COMPILE} -o prog caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:174"
+( $at_check_trace; ${COMPILE} -o prog caller.cob
+) >>"$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/misc.at:174"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
-
-$at_traceoff
-echo "misc.at:174: \${COMPILE} -o prog caller.cob"
-echo misc.at:174 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:174: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:179: ./prog"
-echo misc.at:179 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "Extrn
+{ set +x
+$as_echo "$at_srcdir/misc.at:175: ./prog"
+at_fn_check_prepare_trace "misc.at:175"
+( $at_check_trace; ./prog
+) >>"$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 "Extrn
 Hello
 World
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:179: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:175"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_37
+#AT_START_38
+at_fn_group_banner 38 'misc.at:184' \
+  "cobcrun validation" "                             "
+at_xfail=no
+(
+  $as_echo "38. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  38 ) # 38. misc.at:184: cobcrun validation
-    at_setup_line='misc.at:184'
-    at_desc='cobcrun validation'
-    $at_quiet $ECHO_N " 38: cobcrun validation                           $ECHO_C"
-    at_xfail=no
-    (
-      echo "38. misc.at:184: testing ..."
-      $at_traceon
-
-
-
 cat >callee.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4348,101 +4699,64 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:217: \${COMPILE_MODULE} callee.cob"
-echo misc.at:217 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} callee.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:217: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:217: \${COMPILE_MODULE} callee.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:217"
+( $at_check_trace; ${COMPILE_MODULE} callee.cob
+) >>"$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/misc.at:217"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:218: \${COMPILE_MODULE} caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:218"
+( $at_check_trace; ${COMPILE_MODULE} caller.cob
+) >>"$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/misc.at:218"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
-
-$at_traceoff
-echo "misc.at:218: \${COMPILE_MODULE} caller.cob"
-echo misc.at:218 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:218: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:222: \${COBCRUN} caller"
-echo misc.at:222 >$at_check_line_file
-( $at_traceon; ${COBCRUN} caller ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "Hello
+{ set +x
+$as_echo "$at_srcdir/misc.at:219: \${COBCRUN} caller"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:219"
+( $at_check_trace; ${COBCRUN} caller
+) >>"$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 "Hello
 World
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:222: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:219"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_38
+#AT_START_39
+at_fn_group_banner 39 'misc.at:229' \
+  "MOVE to itself" "                                 "
+at_xfail=no
+(
+  $as_echo "39. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  39 ) # 39. misc.at:229: MOVE to itself
-    at_setup_line='misc.at:229'
-    at_desc='MOVE to itself'
-    $at_quiet $ECHO_N " 39: MOVE to itself                               $ECHO_C"
-    at_xfail=no
-    (
-      echo "39. misc.at:229: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4458,74 +4772,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:245: \${COMPILE} -o prog prog.cob"
-echo misc.at:245 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:245: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:245: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:245"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:245"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:246: ./prog"
+at_fn_check_prepare_trace "misc.at:246"
+( $at_check_trace; ./prog
+) >>"$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 "12" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:246"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:246: ./prog"
-echo misc.at:246 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "12" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:246: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_39
+#AT_START_40
+at_fn_group_banner 40 'misc.at:250' \
+  "MOVE with refmod" "                               "
+at_xfail=no
+(
+  $as_echo "40. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  40 ) # 40. misc.at:250: MOVE with refmod
-    at_setup_line='misc.at:250'
-    at_desc='MOVE with refmod'
-    $at_quiet $ECHO_N " 40: MOVE with refmod                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "40. misc.at:250: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4541,74 +4830,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:266: \${COMPILE} -o prog prog.cob"
-echo misc.at:266 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:266: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:266: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:266"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:266"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:267: ./prog"
+at_fn_check_prepare_trace "misc.at:267"
+( $at_check_trace; ./prog
+) >>"$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 "1000" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:267"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:267: ./prog"
-echo misc.at:267 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "1000" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:267: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_40
+#AT_START_41
+at_fn_group_banner 41 'misc.at:271' \
+  "MOVE with refmod (variable)" "                    "
+at_xfail=no
+(
+  $as_echo "41. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  41 ) # 41. misc.at:271: MOVE with refmod (variable)
-    at_setup_line='misc.at:271'
-    at_desc='MOVE with refmod (variable)'
-    $at_quiet $ECHO_N " 41: MOVE with refmod (variable)                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "41. misc.at:271: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4626,74 +4890,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:289: \${COMPILE} -o prog prog.cob"
-echo misc.at:289 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:289: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:289: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:289"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:289"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:290: ./prog"
+at_fn_check_prepare_trace "misc.at:290"
+( $at_check_trace; ./prog
+) >>"$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   " | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:290"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:290: ./prog"
-echo misc.at:290 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "1   " | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:290: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_41
+#AT_START_42
+at_fn_group_banner 42 'misc.at:294' \
+  "MOVE with group refmod" "                         "
+at_xfail=no
+(
+  $as_echo "42. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  42 ) # 42. misc.at:294: MOVE with group refmod
-    at_setup_line='misc.at:294'
-    at_desc='MOVE with group refmod'
-    $at_quiet $ECHO_N " 42: MOVE with group refmod                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "42. misc.at:294: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4710,74 +4949,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:311: \${COMPILE} -o prog prog.cob"
-echo misc.at:311 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:311: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:311: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:311"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:311"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:312: ./prog"
+at_fn_check_prepare_trace "misc.at:312"
+( $at_check_trace; ./prog
+) >>"$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 "1299" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:312"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:312: ./prog"
-echo misc.at:312 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "1299" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:312: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_42
+#AT_START_43
+at_fn_group_banner 43 'misc.at:316' \
+  "MOVE indexes" "                                   "
+at_xfail=no
+(
+  $as_echo "43. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  43 ) # 43. misc.at:316: MOVE indexes
-    at_setup_line='misc.at:316'
-    at_desc='MOVE indexes'
-    $at_quiet $ECHO_N " 43: MOVE indexes                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "43. misc.at:316: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4795,74 +5009,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:334: \${COMPILE} -o prog prog.cob"
-echo misc.at:334 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:334: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:334: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:334"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:334"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:335: ./prog"
+at_fn_check_prepare_trace "misc.at:335"
+( $at_check_trace; ./prog
+) >>"$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 "0" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:335"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:335: ./prog"
-echo misc.at:335 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:335: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_43
+#AT_START_44
+at_fn_group_banner 44 'misc.at:339' \
+  "MOVE X'00'" "                                     "
+at_xfail=no
+(
+  $as_echo "44. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  44 ) # 44. misc.at:339: MOVE X'00'
-    at_setup_line='misc.at:339'
-    at_desc='MOVE X'00''
-    $at_quiet $ECHO_N " 44: MOVE X'00'                                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "44. misc.at:339: testing ..."
-      $at_traceon
-
-
-
 cat >dump.c <<'_ATEOF'
 
 #include <stdio.h>
@@ -4875,32 +5064,20 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:352: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
-echo misc.at:352 >$at_check_line_file
-( $at_traceon; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:352: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:352: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:352"
+( $at_check_trace; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c
+) >>"$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/misc.at:352"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4916,74 +5093,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:367: \${COMPILE} -o prog prog.cob"
-echo misc.at:367 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:367: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:367: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:367"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:367"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:368: ./prog"
+at_fn_check_prepare_trace "misc.at:368"
+( $at_check_trace; ./prog
+) >>"$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 "000102" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:368"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:368: ./prog"
-echo misc.at:368 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "000102" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:368: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_44
+#AT_START_45
+at_fn_group_banner 45 'misc.at:375' \
+  "Level 01 subscripts" "                            "
+at_xfail=no
+(
+  $as_echo "45. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  45 ) # 45. misc.at:375: Level 01 subscripts
-    at_setup_line='misc.at:375'
-    at_desc='Level 01 subscripts'
-    $at_quiet $ECHO_N " 45: Level 01 subscripts                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "45. misc.at:375: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4996,50 +5148,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:390: \${COMPILE_ONLY} prog.cob"
-echo misc.at:390 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:6: Error: Level 01 item 'X' cannot have OCCURS clause
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "misc.at:390: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:388: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:388"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:6: Error: Level 01 item 'X' cannot have OCCURS clause
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/misc.at:388"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_45
+#AT_START_46
+at_fn_group_banner 46 'misc.at:397' \
+  "Class check with reference modification" "        "
+at_xfail=no
+(
+  $as_echo "46. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  46 ) # 46. misc.at:397: Class check with reference modification
-    at_setup_line='misc.at:397'
-    at_desc='Class check with reference modification'
-    $at_quiet $ECHO_N " 46: Class check with reference modification      $ECHO_C"
-    at_xfail=no
-    (
-      echo "46. misc.at:397: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5056,74 +5195,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:414: \${COMPILE} -o prog prog.cob"
-echo misc.at:414 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:414: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:414: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:414"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:414"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:415: ./prog"
+at_fn_check_prepare_trace "misc.at:415"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:415"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:415: ./prog"
-echo misc.at:415 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:415: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_46
+#AT_START_47
+at_fn_group_banner 47 'misc.at:419' \
+  "Index and parenthesized expression" "             "
+at_xfail=no
+(
+  $as_echo "47. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  47 ) # 47. misc.at:419: Index and parenthesized expression
-    at_setup_line='misc.at:419'
-    at_desc='Index and parenthesized expression'
-    $at_quiet $ECHO_N " 47: Index and parenthesized expression           $ECHO_C"
-    at_xfail=no
-    (
-      echo "47. misc.at:419: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5140,48 +5254,34 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:436: \${COMPILE_ONLY} -o prog prog.cob"
-echo misc.at:436 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:436: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:436: \${COMPILE_ONLY} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:436"
+( $at_check_trace; ${COMPILE_ONLY} -o prog prog.cob
+) >>"$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/misc.at:436"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_47
+#AT_START_48
+at_fn_group_banner 48 'misc.at:440' \
+  "String concatenation" "                           "
+at_xfail=no
+(
+  $as_echo "48. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  48 ) # 48. misc.at:440: String concatenation
-    at_setup_line='misc.at:440'
-    at_desc='String concatenation'
-    $at_quiet $ECHO_N " 48: String concatenation                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "48. misc.at:440: testing ..."
-      $at_traceon
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5211,74 +5311,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:469: \${COMPILE} -o prog prog.cob"
-echo misc.at:469 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:469: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:469: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:469"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:469"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:470: ./prog"
+at_fn_check_prepare_trace "misc.at:470"
+( $at_check_trace; ./prog
+) >>"$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 "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ                       abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789                       " | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:470"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:470: ./prog"
-echo misc.at:470 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ                       abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789                       " | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:470: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_48
+#AT_START_49
+at_fn_group_banner 49 'misc.at:474' \
+  "Alphanumeric and binary numeric" "                "
+at_xfail=no
+(
+  $as_echo "49. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  49 ) # 49. misc.at:474: Alphanumeric and binary numeric
-    at_setup_line='misc.at:474'
-    at_desc='Alphanumeric and binary numeric'
-    $at_quiet $ECHO_N " 49: Alphanumeric and binary numeric              $ECHO_C"
-    at_xfail=no
-    (
-      echo "49. misc.at:474: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5295,74 +5370,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:491: \${COMPILE} -o prog prog.cob"
-echo misc.at:491 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:491: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:491: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:491"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:491"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:492: ./prog"
+at_fn_check_prepare_trace "misc.at:492"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:492"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:492: ./prog"
-echo misc.at:492 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:492: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_49
+#AT_START_50
+at_fn_group_banner 50 'misc.at:499' \
+  "Dynamic call with static linking" "               "
+at_xfail=no
+(
+  $as_echo "50. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  50 ) # 50. misc.at:499: Dynamic call with static linking
-    at_setup_line='misc.at:499'
-    at_desc='Dynamic call with static linking'
-    $at_quiet $ECHO_N " 50: Dynamic call with static linking             $ECHO_C"
-    at_xfail=no
-    (
-      echo "50. misc.at:499: testing ..."
-      $at_traceon
-
-
-
 cat >callee.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5383,124 +5433,75 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:518: \${COMPILE_MODULE} -c callee.cob"
-echo misc.at:518 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} -c callee.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:518: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:518: \${COMPILE_MODULE} -c callee.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:518"
+( $at_check_trace; ${COMPILE_MODULE} -c callee.cob
+) >>"$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/misc.at:518"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:519: \${COMPILE} -c caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:519"
+( $at_check_trace; ${COMPILE} -c caller.cob
+) >>"$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/misc.at:519"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/misc.at:520: \${COMPILE} -o prog caller.o callee.o"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:520"
+( $at_check_trace; ${COMPILE} -o prog caller.o callee.o
+) >>"$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/misc.at:520"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "misc.at:519: \${COMPILE} -c caller.cob"
-echo misc.at:519 >$at_check_line_file
-( $at_traceon; ${COMPILE} -c caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:519: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:521: ./prog"
+at_fn_check_prepare_trace "misc.at:521"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:521"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_50
+#AT_START_51
+at_fn_group_banner 51 'misc.at:525' \
+  "CALL m1. CALL m2. CALL m1." "                     "
+at_xfail=no
+(
+  $as_echo "51. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceoff
-echo "misc.at:520: \${COMPILE} -o prog caller.o callee.o"
-echo misc.at:520 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog caller.o callee.o ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:520: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-$at_traceoff
-echo "misc.at:521: ./prog"
-echo misc.at:521 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:521: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  51 ) # 51. misc.at:525: CALL m1. CALL m2. CALL m1.
-    at_setup_line='misc.at:525'
-    at_desc='CALL m1. CALL m2. CALL m1.'
-    $at_quiet $ECHO_N " 51: CALL m1. CALL m2. CALL m1.                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "51. misc.at:525: testing ..."
-      $at_traceon
-
-
-
 cat >m1.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5546,128 +5547,79 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:567: \${COMPILE_MODULE} m1.cob"
-echo misc.at:567 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} m1.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:567: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:567: \${COMPILE_MODULE} m1.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:567"
+( $at_check_trace; ${COMPILE_MODULE} m1.cob
+) >>"$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/misc.at:567"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:568: \${COMPILE_MODULE} m2.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:568"
+( $at_check_trace; ${COMPILE_MODULE} m2.cob
+) >>"$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/misc.at:568"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/misc.at:569: \${COMPILE} -o caller caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:569"
+( $at_check_trace; ${COMPILE} -o caller caller.cob
+) >>"$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/misc.at:569"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "misc.at:568: \${COMPILE_MODULE} m2.cob"
-echo misc.at:568 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} m2.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:568: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:569: \${COMPILE} -o caller caller.cob"
-echo misc.at:569 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o caller caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:569: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-$at_traceoff
-echo "misc.at:575: ./caller"
-echo misc.at:575 >$at_check_line_file
-( $at_traceon; ./caller ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0003
+{ set +x
+$as_echo "$at_srcdir/misc.at:571: ./caller"
+at_fn_check_prepare_trace "misc.at:571"
+( $at_check_trace; ./caller
+) >>"$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 "0003
 0007
 0003
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:575: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:571"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_51
+#AT_START_52
+at_fn_group_banner 52 'misc.at:579' \
+  "CALL binary literal parameter/LENGTH OF" "        "
+at_xfail=no
+(
+  $as_echo "52. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  52 ) # 52. misc.at:579: CALL binary literal parameter/LENGTH OF
-    at_setup_line='misc.at:579'
-    at_desc='CALL binary literal parameter/LENGTH OF'
-    $at_quiet $ECHO_N " 52: CALL binary literal parameter/LENGTH OF      $ECHO_C"
-    at_xfail=no
-    (
-      echo "52. misc.at:579: testing ..."
-      $at_traceon
-
-
-
 cat >test.conf <<'_ATEOF'
 
 include "default.conf"
@@ -5708,155 +5660,95 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:616: \${COMPILE_MODULE} dump.c"
-echo misc.at:616 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} dump.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:616: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:616: \${COMPILE_MODULE} dump.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:616"
+( $at_check_trace; ${COMPILE_MODULE} dump.c
+) >>"$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/misc.at:616"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:617: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:617"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:617"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
-
-$at_traceoff
-echo "misc.at:617: \${COMPILE} -o prog prog.cob"
-echo misc.at:617 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:617: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:622: ./prog"
-echo misc.at:622 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00000001
+{ set +x
+$as_echo "$at_srcdir/misc.at:618: ./prog"
+at_fn_check_prepare_trace "misc.at:618"
+( $at_check_trace; ./prog
+) >>"$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 "00000001
 00000009
 00000004
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:622: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:618"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:623: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:623"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/misc.at:623"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
-
-$at_traceoff
-echo "misc.at:623: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo misc.at:623 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:623: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:628: ./prog"
-echo misc.at:628 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00000001
+{ set +x
+$as_echo "$at_srcdir/misc.at:624: ./prog"
+at_fn_check_prepare_trace "misc.at:624"
+( $at_check_trace; ./prog
+) >>"$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 "00000001
 00000009
 00000004
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:628: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:624"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_52
+#AT_START_53
+at_fn_group_banner 53 'misc.at:635' \
+  "INSPECT REPLACING LEADING ZEROS BY SPACES" "      "
+at_xfail=no
+(
+  $as_echo "53. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  53 ) # 53. misc.at:635: INSPECT REPLACING LEADING ZEROS BY SPACES
-    at_setup_line='misc.at:635'
-    at_desc='INSPECT REPLACING LEADING ZEROS BY SPACES'
-    $at_quiet $ECHO_N " 53: INSPECT REPLACING LEADING ZEROS BY SPACES    $ECHO_C"
-    at_xfail=no
-    (
-      echo "53. misc.at:635: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5872,74 +5764,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:651: \${COMPILE} prog.cob"
-echo misc.at:651 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:651: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:651: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:651"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:651"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:652: ./prog"
+at_fn_check_prepare_trace "misc.at:652"
+( $at_check_trace; ./prog
+) >>"$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" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:652"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:652: ./prog"
-echo misc.at:652 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "   1" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:652: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_53
+#AT_START_54
+at_fn_group_banner 54 'misc.at:656' \
+  "INSPECT: No repeat conversion check" "            "
+at_xfail=no
+(
+  $as_echo "54. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  54 ) # 54. misc.at:656: INSPECT: No repeat conversion check
-    at_setup_line='misc.at:656'
-    at_desc='INSPECT: No repeat conversion check'
-    $at_quiet $ECHO_N " 54: INSPECT: No repeat conversion check          $ECHO_C"
-    at_xfail=no
-    (
-      echo "54. misc.at:656: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5955,74 +5822,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:672: \${COMPILE} prog.cob"
-echo misc.at:672 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:672: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:672: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:672"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:672"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:673: ./prog"
+at_fn_check_prepare_trace "misc.at:673"
+( $at_check_trace; ./prog
+) >>"$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 "CDB" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:673"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:673: ./prog"
-echo misc.at:673 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "CDB" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:673: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_54
+#AT_START_55
+at_fn_group_banner 55 'misc.at:678' \
+  "INSPECT: REPLACING figurative constant" "         "
+at_xfail=no
+(
+  $as_echo "55. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  55 ) # 55. misc.at:678: INSPECT: REPLACING figurative constant
-    at_setup_line='misc.at:678'
-    at_desc='INSPECT: REPLACING figurative constant'
-    $at_quiet $ECHO_N " 55: INSPECT: REPLACING figurative constant       $ECHO_C"
-    at_xfail=no
-    (
-      echo "55. misc.at:678: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -6038,74 +5880,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:694: \${COMPILE} prog.cob"
-echo misc.at:694 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:694: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:694: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:694"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:694"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:695: ./prog"
+at_fn_check_prepare_trace "misc.at:695"
+( $at_check_trace; ./prog
+) >>"$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 "  A" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:695"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:695: ./prog"
-echo misc.at:695 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "  A" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:695: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_55
+#AT_START_56
+at_fn_group_banner 56 'misc.at:700' \
+  "INSPECT: TALLYING BEFORE" "                       "
+at_xfail=no
+(
+  $as_echo "56. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  56 ) # 56. misc.at:700: INSPECT: TALLYING BEFORE
-    at_setup_line='misc.at:700'
-    at_desc='INSPECT: TALLYING BEFORE'
-    $at_quiet $ECHO_N " 56: INSPECT: TALLYING BEFORE                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "56. misc.at:700: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -6130,74 +5947,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:725: \${COMPILE} prog.cob"
-echo misc.at:725 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:725: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:725: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:725"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:725"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:726: ./prog"
+at_fn_check_prepare_trace "misc.at:726"
+( $at_check_trace; ./prog
+) >>"$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 "003000" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:726"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:726: ./prog"
-echo misc.at:726 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "003000" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:726: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_56
+#AT_START_57
+at_fn_group_banner 57 'misc.at:731' \
+  "INSPECT: TALLYING AFTER" "                        "
+at_xfail=no
+(
+  $as_echo "57. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  57 ) # 57. misc.at:731: INSPECT: TALLYING AFTER
-    at_setup_line='misc.at:731'
-    at_desc='INSPECT: TALLYING AFTER'
-    $at_quiet $ECHO_N " 57: INSPECT: TALLYING AFTER                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "57. misc.at:731: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -6222,74 +6014,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:756: \${COMPILE} prog.cob"
-echo misc.at:756 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:756: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:756: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:756"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:756"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:757: ./prog"
+at_fn_check_prepare_trace "misc.at:757"
+( $at_check_trace; ./prog
+) >>"$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 "000003" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:757"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:757: ./prog"
-echo misc.at:757 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "000003" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:757: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_57
+#AT_START_58
+at_fn_group_banner 58 'misc.at:761' \
+  "INSPECT: REPLACING TRAILING ZEROS BY SPACES" "    "
+at_xfail=no
+(
+  $as_echo "58. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  58 ) # 58. misc.at:761: INSPECT: REPLACING TRAILING ZEROS BY SPACES
-    at_setup_line='misc.at:761'
-    at_desc='INSPECT: REPLACING TRAILING ZEROS BY SPACES'
-    $at_quiet $ECHO_N " 58: INSPECT: REPLACING TRAILING ZEROS BY SPACES  $ECHO_C"
-    at_xfail=no
-    (
-      echo "58. misc.at:761: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -6305,74 +6072,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:777: \${COMPILE} prog.cob"
-echo misc.at:777 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:777: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:777: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:777"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:777"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:778: ./prog"
+at_fn_check_prepare_trace "misc.at:778"
+( $at_check_trace; ./prog
+) >>"$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   " | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:778"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:778: ./prog"
-echo misc.at:778 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "1   " | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:778: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_58
+#AT_START_59
+at_fn_group_banner 59 'misc.at:782' \
+  "INSPECT: REPLACING complex" "                     "
+at_xfail=no
+(
+  $as_echo "59. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  59 ) # 59. misc.at:782: INSPECT: REPLACING complex
-    at_setup_line='misc.at:782'
-    at_desc='INSPECT: REPLACING complex'
-    $at_quiet $ECHO_N " 59: INSPECT: REPLACING complex                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "59. misc.at:782: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -6391,73 +6133,48 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:801: \${COMPILE} prog.cob"
-echo misc.at:801 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:801: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:801: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:801"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:801"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:802: ./prog"
+at_fn_check_prepare_trace "misc.at:802"
+( $at_check_trace; ./prog
+) >>"$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 "ZZZYYCDXXXXX" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:802"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_59
+#AT_START_60
+at_fn_group_banner 60 'misc.at:805' \
+  "SWITCHES" "                                       "
+at_xfail=no
+(
+  $as_echo "60. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceoff
-echo "misc.at:802: ./prog"
-echo misc.at:802 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "ZZZYYCDXXXXX" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:802: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  60 ) # 60. misc.at:805: SWITCHES
-    at_setup_line='misc.at:805'
-    at_desc='SWITCHES'
-    $at_quiet $ECHO_N " 60: SWITCHES                                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "60. misc.at:805: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -6508,74 +6225,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:856: \${COMPILE} prog.cob"
-echo misc.at:856 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:856: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:856: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:856"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:856"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:857: COB_SWITCH_1=ON COB_SWITCH_2=OFF ./prog"
+at_fn_check_prepare_trace "misc.at:857"
+( $at_check_trace; COB_SWITCH_1=ON COB_SWITCH_2=OFF ./prog
+) >>"$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 "ONOFFOFFON" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:857"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:857: COB_SWITCH_1=ON COB_SWITCH_2=OFF ./prog"
-echo misc.at:857 >$at_check_line_file
-( $at_traceon; COB_SWITCH_1=ON COB_SWITCH_2=OFF ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "ONOFFOFFON" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:857: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_60
+#AT_START_61
+at_fn_group_banner 61 'misc.at:864' \
+  "Nested PERFORM" "                                 "
+at_xfail=no
+(
+  $as_echo "61. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  61 ) # 61. misc.at:864: Nested PERFORM
-    at_setup_line='misc.at:864'
-    at_desc='Nested PERFORM'
-    $at_quiet $ECHO_N " 61: Nested PERFORM                               $ECHO_C"
-    at_xfail=no
-    (
-      echo "61. misc.at:864: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -6592,74 +6284,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:881: \${COMPILE} -o prog prog.cob"
-echo misc.at:881 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:881: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:881: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:881"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:881"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:882: ./prog"
+at_fn_check_prepare_trace "misc.at:882"
+( $at_check_trace; ./prog
+) >>"$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 "XXXX" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:882"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:882: ./prog"
-echo misc.at:882 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "XXXX" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:882: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_61
+#AT_START_62
+at_fn_group_banner 62 'misc.at:890' \
+  "EXIT PERFORM" "                                   "
+at_xfail=no
+(
+  $as_echo "62. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  62 ) # 62. misc.at:890: EXIT PERFORM
-    at_setup_line='misc.at:890'
-    at_desc='EXIT PERFORM'
-    $at_quiet $ECHO_N " 62: EXIT PERFORM                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "62. misc.at:890: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -6676,74 +6343,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:907: \${COMPILE} -o prog prog.cob"
-echo misc.at:907 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:907: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:907: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:907"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:907"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:908: ./prog"
+at_fn_check_prepare_trace "misc.at:908"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:908"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:908: ./prog"
-echo misc.at:908 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:908: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_62
+#AT_START_63
+at_fn_group_banner 63 'misc.at:915' \
+  "EXIT PERFORM CYCLE" "                             "
+at_xfail=no
+(
+  $as_echo "63. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  63 ) # 63. misc.at:915: EXIT PERFORM CYCLE
-    at_setup_line='misc.at:915'
-    at_desc='EXIT PERFORM CYCLE'
-    $at_quiet $ECHO_N " 63: EXIT PERFORM CYCLE                           $ECHO_C"
-    at_xfail=no
-    (
-      echo "63. misc.at:915: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -6760,74 +6402,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:932: \${COMPILE} -o prog prog.cob"
-echo misc.at:932 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:932: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:932: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:932"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:932"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:933: ./prog"
+at_fn_check_prepare_trace "misc.at:933"
+( $at_check_trace; ./prog
+) >>"$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 "OKOK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:933"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:933: ./prog"
-echo misc.at:933 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OKOK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:933: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_63
+#AT_START_64
+at_fn_group_banner 64 'misc.at:940' \
+  "EXIT PARAGRAPH" "                                 "
+at_xfail=no
+(
+  $as_echo "64. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  64 ) # 64. misc.at:940: EXIT PARAGRAPH
-    at_setup_line='misc.at:940'
-    at_desc='EXIT PARAGRAPH'
-    $at_quiet $ECHO_N " 64: EXIT PARAGRAPH                               $ECHO_C"
-    at_xfail=no
-    (
-      echo "64. misc.at:940: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -6851,74 +6468,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:964: \${COMPILE} -o prog prog.cob"
-echo misc.at:964 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:964: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:964: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:964"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:964"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:965: ./prog"
+at_fn_check_prepare_trace "misc.at:965"
+( $at_check_trace; ./prog
+) >>"$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 "0003" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:965"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:965: ./prog"
-echo misc.at:965 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0003" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:965: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_64
+#AT_START_65
+at_fn_group_banner 65 'misc.at:972' \
+  "EXIT SECTION" "                                   "
+at_xfail=no
+(
+  $as_echo "65. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  65 ) # 65. misc.at:972: EXIT SECTION
-    at_setup_line='misc.at:972'
-    at_desc='EXIT SECTION'
-    $at_quiet $ECHO_N " 65: EXIT SECTION                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "65. misc.at:972: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -6947,74 +6539,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1001: \${COMPILE} -o prog prog.cob"
-echo misc.at:1001 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1001: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1001: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1001"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1001"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1002: ./prog"
+at_fn_check_prepare_trace "misc.at:1002"
+( $at_check_trace; ./prog
+) >>"$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 "0003" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1002"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1002: ./prog"
-echo misc.at:1002 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0003" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1002: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_65
+#AT_START_66
+at_fn_group_banner 66 'misc.at:1007' \
+  "88 with FILLER" "                                 "
+at_xfail=no
+(
+  $as_echo "66. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  66 ) # 66. misc.at:1007: 88 with FILLER
-    at_setup_line='misc.at:1007'
-    at_desc='88 with FILLER'
-    $at_quiet $ECHO_N " 66: 88 with FILLER                               $ECHO_C"
-    at_xfail=no
-    (
-      echo "66. misc.at:1007: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -7037,74 +6604,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1030: \${COMPILE} -o prog prog.cob"
-echo misc.at:1030 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1030: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1030: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1030"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1030"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1031: ./prog"
+at_fn_check_prepare_trace "misc.at:1031"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1031"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1031: ./prog"
-echo misc.at:1031 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1031: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_66
+#AT_START_67
+at_fn_group_banner 67 'misc.at:1035' \
+  "Non-overflow after overflow" "                    "
+at_xfail=no
+(
+  $as_echo "67. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  67 ) # 67. misc.at:1035: Non-overflow after overflow
-    at_setup_line='misc.at:1035'
-    at_desc='Non-overflow after overflow'
-    $at_quiet $ECHO_N " 67: Non-overflow after overflow                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "67. misc.at:1035: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -7124,74 +6666,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1055: \${COMPILE} -o prog prog.cob"
-echo misc.at:1055 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1055: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1055: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1055"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1055"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1056: ./prog"
+at_fn_check_prepare_trace "misc.at:1056"
+( $at_check_trace; ./prog
+) >>"$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 "99" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1056"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1056: ./prog"
-echo misc.at:1056 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "99" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1056: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_67
+#AT_START_68
+at_fn_group_banner 68 'misc.at:1063' \
+  "PERFORM ... CONTINUE" "                           "
+at_xfail=no
+(
+  $as_echo "68. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  68 ) # 68. misc.at:1063: PERFORM ... CONTINUE
-    at_setup_line='misc.at:1063'
-    at_desc='PERFORM ... CONTINUE'
-    $at_quiet $ECHO_N " 68: PERFORM ... CONTINUE                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "68. misc.at:1063: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -7203,49 +6720,35 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1075: \${COMPILE_ONLY} prog.cob"
-echo misc.at:1075 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1075: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1075: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1075"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$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/misc.at:1075"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_68
+#AT_START_69
+at_fn_group_banner 69 'misc.at:1080' \
+  "STRING with subscript reference" "                "
+at_xfail=no
+(
+  $as_echo "69. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  69 ) # 69. misc.at:1080: STRING with subscript reference
-    at_setup_line='misc.at:1080'
-    at_desc='STRING with subscript reference'
-    $at_quiet $ECHO_N " 69: STRING with subscript reference              $ECHO_C"
-    at_xfail=no
-    (
-      echo "69. misc.at:1080: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -7263,74 +6766,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1098: \${COMPILE} -o prog prog.cob"
-echo misc.at:1098 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1098: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1098: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1098"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1098"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1099: ./prog"
+at_fn_check_prepare_trace "misc.at:1099"
+( $at_check_trace; ./prog
+) >>"$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 "abc" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1099"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1099: ./prog"
-echo misc.at:1099 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "abc" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1099: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_69
+#AT_START_70
+at_fn_group_banner 70 'misc.at:1104' \
+  "UNSTRING DELIMITED ALL LOW-VALUE" "               "
+at_xfail=no
+(
+  $as_echo "70. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  70 ) # 70. misc.at:1104: UNSTRING DELIMITED ALL LOW-VALUE
-    at_setup_line='misc.at:1104'
-    at_desc='UNSTRING DELIMITED ALL LOW-VALUE'
-    $at_quiet $ECHO_N " 70: UNSTRING DELIMITED ALL LOW-VALUE             $ECHO_C"
-    at_xfail=no
-    (
-      echo "70. misc.at:1104: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -7355,76 +6833,51 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1129: \${COMPILE} -o prog prog.cob"
-echo misc.at:1129 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1129: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1129: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1129"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1129"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:1133: ./prog"
-echo misc.at:1133 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "ABC
+{ set +x
+$as_echo "$at_srcdir/misc.at:1130: ./prog"
+at_fn_check_prepare_trace "misc.at:1130"
+( $at_check_trace; ./prog
+) >>"$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 "ABC
 DEF
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1133: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1130"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_70
+#AT_START_71
+at_fn_group_banner 71 'misc.at:1137' \
+  "UNSTRING DELIMITED ALL SPACE-2" "                 "
+at_xfail=no
+(
+  $as_echo "71. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  71 ) # 71. misc.at:1137: UNSTRING DELIMITED ALL SPACE-2
-    at_setup_line='misc.at:1137'
-    at_desc='UNSTRING DELIMITED ALL SPACE-2'
-    $at_quiet $ECHO_N " 71: UNSTRING DELIMITED ALL SPACE-2               $ECHO_C"
-    at_xfail=no
-    (
-      echo "71. misc.at:1137: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION  DIVISION.
@@ -7483,74 +6936,48 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1196: \${COMPILE} -o prog prog.cob"
-echo misc.at:1196 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1196: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1196: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1196"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1196"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1197: ./prog"
+at_fn_check_prepare_trace "misc.at:1197"
+( $at_check_trace; ./prog
+) >>"$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/misc.at:1197"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1197: ./prog"
-echo misc.at:1197 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1197: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_71
+#AT_START_72
+at_fn_group_banner 72 'misc.at:1201' \
+  "UNSTRING DELIMITED POINTER" "                     "
+at_xfail=no
+(
+  $as_echo "72. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  72 ) # 72. misc.at:1201: UNSTRING DELIMITED POINTER
-    at_setup_line='misc.at:1201'
-    at_desc='UNSTRING DELIMITED POINTER'
-    $at_quiet $ECHO_N " 72: UNSTRING DELIMITED POINTER                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "72. misc.at:1201: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION  DIVISION.
@@ -7599,74 +7026,48 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1250: \${COMPILE} -o prog prog.cob"
-echo misc.at:1250 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1250: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1250: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1250"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1250"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1251: ./prog"
+at_fn_check_prepare_trace "misc.at:1251"
+( $at_check_trace; ./prog
+) >>"$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/misc.at:1251"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1251: ./prog"
-echo misc.at:1251 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1251: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_72
+#AT_START_73
+at_fn_group_banner 73 'misc.at:1255' \
+  "UNSTRING DELIMITER IN" "                          "
+at_xfail=no
+(
+  $as_echo "73. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  73 ) # 73. misc.at:1255: UNSTRING DELIMITER IN
-    at_setup_line='misc.at:1255'
-    at_desc='UNSTRING DELIMITER IN'
-    $at_quiet $ECHO_N " 73: UNSTRING DELIMITER IN                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "73. misc.at:1255: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -7704,74 +7105,48 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1293: \${COMPILE} -o prog prog.cob"
-echo misc.at:1293 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1293: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1293: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1293"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1293"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1294: ./prog"
+at_fn_check_prepare_trace "misc.at:1294"
+( $at_check_trace; ./prog
+) >>"$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/misc.at:1294"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1294: ./prog"
-echo misc.at:1294 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1294: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_73
+#AT_START_74
+at_fn_group_banner 74 'misc.at:1299' \
+  "READ INTO AT-END sequence" "                      "
+at_xfail=no
+(
+  $as_echo "74. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  74 ) # 74. misc.at:1299: READ INTO AT-END sequence
-    at_setup_line='misc.at:1299'
-    at_desc='READ INTO AT-END sequence'
-    $at_quiet $ECHO_N " 74: READ INTO AT-END sequence                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "74. misc.at:1299: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -7800,100 +7175,63 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1328: \${COMPILE} -o prog prog.cob"
-echo misc.at:1328 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1328: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1328: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1328"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1328"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1329: ./prog"
+at_fn_check_prepare_trace "misc.at:1329"
+( $at_check_trace; ./prog
+) >>"$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 "0000000000" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1329: ./prog"
-echo misc.at:1329 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0000000000" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1329: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_74
+#AT_START_75
+at_fn_group_banner 75 'misc.at:1334' \
+  "First READ on empty SEQUENTIAL INDEXED file" "    "
+at_xfail=no
+(
+  $as_echo "75. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
+{ set +x
+$as_echo "$at_srcdir/misc.at:1337: test \"\$COB_HAS_ISAM\" = \"yes\" || exit 77"
+at_fn_check_prepare_dynamic "test \"$COB_HAS_ISAM\" = \"yes\" || exit 77" "misc.at:1337"
+( $at_check_trace; test "$COB_HAS_ISAM" = "yes" || exit 77
+) >>"$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/misc.at:1337"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  75 ) # 75. misc.at:1334: First READ on empty SEQUENTIAL INDEXED file
-    at_setup_line='misc.at:1334'
-    at_desc='First READ on empty SEQUENTIAL INDEXED file'
-    $at_quiet $ECHO_N " 75: First READ on empty SEQUENTIAL INDEXED file  $ECHO_C"
-    at_xfail=no
-    (
-      echo "75. misc.at:1334: testing ..."
-      $at_traceon
-
-
-
-$at_traceoff
-echo "misc.at:1337: test \"\$COB_HAS_ISAM\" = \"yes\" || exit 77"
-echo misc.at:1337 >$at_check_line_file
-( $at_traceon; test "$COB_HAS_ISAM" = "yes" || exit 77 ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1337: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -7923,74 +7261,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1366: \${COMPILE} -o prog prog.cob"
-echo misc.at:1366 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1366: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1366: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1366"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1366"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1367: ./prog"
+at_fn_check_prepare_trace "misc.at:1367"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1367"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1367: ./prog"
-echo misc.at:1367 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1367: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_75
+#AT_START_76
+at_fn_group_banner 76 'misc.at:1372' \
+  "REWRITE a RELATIVE file with RANDOM access" "     "
+at_xfail=no
+(
+  $as_echo "76. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  76 ) # 76. misc.at:1372: REWRITE a RELATIVE file with RANDOM access
-    at_setup_line='misc.at:1372'
-    at_desc='REWRITE a RELATIVE file with RANDOM access'
-    $at_quiet $ECHO_N " 76: REWRITE a RELATIVE file with RANDOM access   $ECHO_C"
-    at_xfail=no
-    (
-      echo "76. misc.at:1372: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -8036,76 +7349,51 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1418: \${COMPILE} -o prog prog.cob"
-echo misc.at:1418 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1418: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1418: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1418"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1418"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:1422: ./prog"
-echo misc.at:1422 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "A
+{ set +x
+$as_echo "$at_srcdir/misc.at:1419: ./prog"
+at_fn_check_prepare_trace "misc.at:1419"
+( $at_check_trace; ./prog
+) >>"$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 "A
 C
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1422: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1419"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_76
+#AT_START_77
+at_fn_group_banner 77 'misc.at:1427' \
+  "SORT: table sort" "                               "
+at_xfail=no
+(
+  $as_echo "77. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  77 ) # 77. misc.at:1427: SORT: table sort
-    at_setup_line='misc.at:1427'
-    at_desc='SORT: table sort'
-    $at_quiet $ECHO_N " 77: SORT: table sort                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "77. misc.at:1427: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -8133,78 +7421,53 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1455: \${COMPILE} -o prog prog.cob"
-echo misc.at:1455 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1455: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1455: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1455"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1455"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:1461: ./prog"
-echo misc.at:1461 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "a3b2c5d4e1
+{ set +x
+$as_echo "$at_srcdir/misc.at:1456: ./prog"
+at_fn_check_prepare_trace "misc.at:1456"
+( $at_check_trace; ./prog
+) >>"$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 "a3b2c5d4e1
 c5d4a3b2e1
 a3b2c5d4e1
 e1d4c5b2a3
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1461: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1456"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_77
+#AT_START_78
+at_fn_group_banner 78 'misc.at:1465' \
+  "SORT: EBCDIC table sort" "                        "
+at_xfail=no
+(
+  $as_echo "78. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  78 ) # 78. misc.at:1465: SORT: EBCDIC table sort
-    at_setup_line='misc.at:1465'
-    at_desc='SORT: EBCDIC table sort'
-    $at_quiet $ECHO_N " 78: SORT: EBCDIC table sort                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "78. misc.at:1465: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -8239,78 +7502,53 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1500: \${COMPILE} -o prog prog.cob"
-echo misc.at:1500 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1500: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1500: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1500"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1500"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:1506: ./prog"
-echo misc.at:1506 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "12345abcde
+{ set +x
+$as_echo "$at_srcdir/misc.at:1501: ./prog"
+at_fn_check_prepare_trace "misc.at:1501"
+( $at_check_trace; ./prog
+) >>"$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 "12345abcde
 edcba54321
 abcde12345
 54321edcba
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1506: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1501"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_78
+#AT_START_79
+at_fn_group_banner 79 'misc.at:1510' \
+  "SORT nonexistent file" "                          "
+at_xfail=no
+(
+  $as_echo "79. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  79 ) # 79. misc.at:1510: SORT nonexistent file
-    at_setup_line='misc.at:1510'
-    at_desc='SORT nonexistent file'
-    $at_quiet $ECHO_N " 79: SORT nonexistent file                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "79. misc.at:1510: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -8338,99 +7576,61 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1538: \${COMPILE} -o prog prog.cob"
-echo misc.at:1538 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1538: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1538: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1538"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1538"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1539: ./prog"
+at_fn_check_prepare_trace "misc.at:1539"
+( $at_check_trace; ./prog
+) >>"$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/misc.at:1539"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/misc.at:1540: cat SORT-OUT"
+at_fn_check_prepare_trace "misc.at:1540"
+( $at_check_trace; cat SORT-OUT
+) >>"$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/misc.at:1540"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "misc.at:1539: ./prog"
-echo misc.at:1539 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1539: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_79
+#AT_START_80
+at_fn_group_banner 80 'misc.at:1545' \
+  "PIC ZZZ-, ZZZ+" "                                 "
+at_xfail=no
+(
+  $as_echo "80. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1540: cat SORT-OUT"
-echo misc.at:1540 >$at_check_line_file
-( $at_traceon; cat SORT-OUT ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1540: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  80 ) # 80. misc.at:1545: PIC ZZZ-, ZZZ+
-    at_setup_line='misc.at:1545'
-    at_desc='PIC ZZZ-, ZZZ+'
-    $at_quiet $ECHO_N " 80: PIC ZZZ-, ZZZ+                               $ECHO_C"
-    at_xfail=no
-    (
-      echo "80. misc.at:1545: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -8456,80 +7656,55 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1571: \${COMPILE} -o prog prog.cob"
-echo misc.at:1571 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1571: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1571: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1571"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/misc.at:1571"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:1579: ./prog"
-echo misc.at:1579 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "(  1-)
+{ set +x
+$as_echo "$at_srcdir/misc.at:1572: ./prog"
+at_fn_check_prepare_trace "misc.at:1572"
+( $at_check_trace; ./prog
+) >>"$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-)
 (    )
 (  1 )
 (  1-)
 (    )
 (  1+)
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1579: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1572"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_80
+#AT_START_81
+at_fn_group_banner 81 'misc.at:1584' \
+  "Larger REDEFINES lengths" "                       "
+at_xfail=no
+(
+  $as_echo "81. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  81 ) # 81. misc.at:1584: Larger REDEFINES lengths
-    at_setup_line='misc.at:1584'
-    at_desc='Larger REDEFINES lengths'
-    $at_quiet $ECHO_N " 81: Larger REDEFINES lengths                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "81. misc.at:1584: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -8557,80 +7732,56 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1614: \${COMPILE} -std=mf -o prog prog.cob"
-echo misc.at:1614 >$at_check_line_file
-( $at_traceon; ${COMPILE} -std=mf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:11: Warning: Size of 'XMAIN0502' larger than size of 'XMAIN0501'
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1614: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1612: \${COMPILE} -std=mf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1612"
+( $at_check_trace; ${COMPILE} -std=mf -o prog prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:11: Warning: Size of 'XMAIN0502' larger than size of 'XMAIN0501'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1612"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:1621: ./prog"
-echo misc.at:1621 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "8
+{ set +x
+$as_echo "$at_srcdir/misc.at:1615: ./prog"
+at_fn_check_prepare_trace "misc.at:1615"
+( $at_check_trace; ./prog
+) >>"$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 "8
 9
 5
 4
 5
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1621: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1615"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_81
+#AT_START_82
+at_fn_group_banner 82 'misc.at:1625' \
+  "PERFORM type OSVS" "                              "
+at_xfail=no
+(
+  $as_echo "82. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  82 ) # 82. misc.at:1625: PERFORM type OSVS
-    at_setup_line='misc.at:1625'
-    at_desc='PERFORM type OSVS'
-    $at_quiet $ECHO_N " 82: PERFORM type OSVS                            $ECHO_C"
-    at_xfail=no
-    (
-      echo "82. misc.at:1625: testing ..."
-      $at_traceon
-
-
-
 cat >test.conf <<'_ATEOF'
 
 include "default.conf"
@@ -8666,75 +7817,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1659: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo misc.at:1659 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1659: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1659: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1659"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/misc.at:1659"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1660: ./prog"
+at_fn_check_prepare_trace "misc.at:1660"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1660"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1662: ./prog"
-echo misc.at:1662 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1662: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_82
+#AT_START_83
+at_fn_group_banner 83 'misc.at:1667' \
+  "Sticky LINKAGE" "                                 "
+at_xfail=no
+(
+  $as_echo "83. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  83 ) # 83. misc.at:1667: Sticky LINKAGE
-    at_setup_line='misc.at:1667'
-    at_desc='Sticky LINKAGE'
-    $at_quiet $ECHO_N " 83: Sticky LINKAGE                               $ECHO_C"
-    at_xfail=no
-    (
-      echo "83. misc.at:1667: testing ..."
-      $at_traceon
-
-
-
 cat >test.conf <<'_ATEOF'
 
 include "default.conf"
@@ -8781,100 +7907,63 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1710: \${COMPILE_MODULE} -conf=test.conf callee.cob"
-echo misc.at:1710 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} -conf=test.conf callee.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1710: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1710: \${COMPILE_MODULE} -conf=test.conf callee.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1710"
+( $at_check_trace; ${COMPILE_MODULE} -conf=test.conf callee.cob
+) >>"$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/misc.at:1710"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1711: \${COMPILE} -conf=test.conf -o caller caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1711"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o caller caller.cob
+) >>"$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/misc.at:1711"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/misc.at:1712: ./caller"
+at_fn_check_prepare_trace "misc.at:1712"
+( $at_check_trace; ./caller
+) >>"$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 "OKOKOK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1712"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "misc.at:1711: \${COMPILE} -conf=test.conf -o caller caller.cob"
-echo misc.at:1711 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o caller caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1711: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_83
+#AT_START_84
+at_fn_group_banner 84 'misc.at:1718' \
+  "COB_PRE_LOAD test" "                              "
+at_xfail=no
+(
+  $as_echo "84. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1714: ./caller"
-echo misc.at:1714 >$at_check_line_file
-( $at_traceon; ./caller ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OKOKOK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1714: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  84 ) # 84. misc.at:1718: COB_PRE_LOAD test
-    at_setup_line='misc.at:1718'
-    at_desc='COB_PRE_LOAD test'
-    $at_quiet $ECHO_N " 84: COB_PRE_LOAD test                            $ECHO_C"
-    at_xfail=no
-    (
-      echo "84. misc.at:1718: testing ..."
-      $at_traceon
-
-
-
 cat >callee.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -8895,99 +7984,62 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1737: \${COMPILE_MODULE} callee.cob"
-echo misc.at:1737 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} callee.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1737: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1737: \${COMPILE_MODULE} callee.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1737"
+( $at_check_trace; ${COMPILE_MODULE} callee.cob
+) >>"$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/misc.at:1737"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1738: \${COMPILE} caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1738"
+( $at_check_trace; ${COMPILE} caller.cob
+) >>"$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/misc.at:1738"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/misc.at:1739: export COB_PRE_LOAD=callee; ./caller"
+at_fn_check_prepare_trace "misc.at:1739"
+( $at_check_trace; export COB_PRE_LOAD=callee; ./caller
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1739"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "misc.at:1738: \${COMPILE} caller.cob"
-echo misc.at:1738 >$at_check_line_file
-( $at_traceon; ${COMPILE} caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1738: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_84
+#AT_START_85
+at_fn_group_banner 85 'misc.at:1743' \
+  "COB_LOAD_CASE=UPPER test" "                       "
+at_xfail=no
+(
+  $as_echo "85. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1739: export COB_PRE_LOAD=callee; ./caller"
-echo misc.at:1739 >$at_check_line_file
-( $at_traceon; export COB_PRE_LOAD=callee; ./caller ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1739: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  85 ) # 85. misc.at:1743: COB_LOAD_CASE=UPPER test
-    at_setup_line='misc.at:1743'
-    at_desc='COB_LOAD_CASE=UPPER test'
-    $at_quiet $ECHO_N " 85: COB_LOAD_CASE=UPPER test                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "85. misc.at:1743: testing ..."
-      $at_traceon
-
-
-
 cat >CALLEE.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -9008,99 +8060,62 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1762: \${COMPILE_MODULE} CALLEE.cob"
-echo misc.at:1762 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} CALLEE.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1762: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1762: \${COMPILE_MODULE} CALLEE.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1762"
+( $at_check_trace; ${COMPILE_MODULE} CALLEE.cob
+) >>"$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/misc.at:1762"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1763: \${COMPILE} caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1763"
+( $at_check_trace; ${COMPILE} caller.cob
+) >>"$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/misc.at:1763"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/misc.at:1764: export COB_LOAD_CASE=UPPER; ./caller"
+at_fn_check_prepare_trace "misc.at:1764"
+( $at_check_trace; export COB_LOAD_CASE=UPPER; ./caller
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1764"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "misc.at:1763: \${COMPILE} caller.cob"
-echo misc.at:1763 >$at_check_line_file
-( $at_traceon; ${COMPILE} caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1763: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_85
+#AT_START_86
+at_fn_group_banner 86 'misc.at:1768' \
+  "88 level with FALSE IS clause" "                  "
+at_xfail=no
+(
+  $as_echo "86. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1764: export COB_LOAD_CASE=UPPER; ./caller"
-echo misc.at:1764 >$at_check_line_file
-( $at_traceon; export COB_LOAD_CASE=UPPER; ./caller ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1764: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  86 ) # 86. misc.at:1768: 88 level with FALSE IS clause
-    at_setup_line='misc.at:1768'
-    at_desc='88 level with FALSE IS clause'
-    $at_quiet $ECHO_N " 86: 88 level with FALSE IS clause                $ECHO_C"
-    at_xfail=no
-    (
-      echo "86. misc.at:1768: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -9119,75 +8134,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1787: \${COMPILE} prog.cob"
-echo misc.at:1787 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1787: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1787: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1787"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:1787"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1788: ./prog"
+at_fn_check_prepare_trace "misc.at:1788"
+( $at_check_trace; ./prog
+) >>"$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 "OKOKOK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1788"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1790: ./prog"
-echo misc.at:1790 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OKOKOK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1790: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_86
+#AT_START_87
+at_fn_group_banner 87 'misc.at:1794' \
+  "ALLOCATE/FREE with BASED item (1)" "              "
+at_xfail=no
+(
+  $as_echo "87. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  87 ) # 87. misc.at:1794: ALLOCATE/FREE with BASED item (1)
-    at_setup_line='misc.at:1794'
-    at_desc='ALLOCATE/FREE with BASED item (1)'
-    $at_quiet $ECHO_N " 87: ALLOCATE/FREE with BASED item (1)            $ECHO_C"
-    at_xfail=no
-    (
-      echo "87. misc.at:1794: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -9205,75 +8195,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1812: \${COMPILE} prog.cob"
-echo misc.at:1812 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1812: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1812: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1812"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:1812"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1813: ./prog"
+at_fn_check_prepare_trace "misc.at:1813"
+( $at_check_trace; ./prog
+) >>"$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 "ABCDEF
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1813"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1815: ./prog"
-echo misc.at:1815 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "ABCDEF
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1815: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_87
+#AT_START_88
+at_fn_group_banner 88 'misc.at:1819' \
+  "ALLOCATE/FREE with BASED item (2)" "              "
+at_xfail=no
+(
+  $as_echo "88. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  88 ) # 88. misc.at:1819: ALLOCATE/FREE with BASED item (2)
-    at_setup_line='misc.at:1819'
-    at_desc='ALLOCATE/FREE with BASED item (2)'
-    $at_quiet $ECHO_N " 88: ALLOCATE/FREE with BASED item (2)            $ECHO_C"
-    at_xfail=no
-    (
-      echo "88. misc.at:1819: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -9311,74 +8276,48 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1857: \${COMPILE} prog.cob"
-echo misc.at:1857 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1857: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1857: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1857"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:1857"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1858: ./prog"
+at_fn_check_prepare_trace "misc.at:1858"
+( $at_check_trace; ./prog
+) >>"$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/misc.at:1858"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1859: ./prog"
-echo misc.at:1859 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1859: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_88
+#AT_START_89
+at_fn_group_banner 89 'misc.at:1864' \
+  "INITIALIZE with reference modification" "         "
+at_xfail=no
+(
+  $as_echo "89. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  89 ) # 89. misc.at:1864: INITIALIZE with reference modification
-    at_setup_line='misc.at:1864'
-    at_desc='INITIALIZE with reference modification'
-    $at_quiet $ECHO_N " 89: INITIALIZE with reference modification       $ECHO_C"
-    at_xfail=no
-    (
-      echo "89. misc.at:1864: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -9395,74 +8334,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1881: \${COMPILE} prog.cob"
-echo misc.at:1881 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1881: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1881: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1881"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/misc.at:1881"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1882: ./prog"
+at_fn_check_prepare_trace "misc.at:1882"
+( $at_check_trace; ./prog
+) >>"$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 "  CDEF
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1882"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1884: ./prog"
-echo misc.at:1884 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "  CDEF
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1884: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_89
+#AT_START_90
+at_fn_group_banner 90 'misc.at:1888' \
+  "CALL with OMITTED parameter" "                    "
+at_xfail=no
+(
+  $as_echo "90. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  90 ) # 90. misc.at:1888: CALL with OMITTED parameter
-    at_setup_line='misc.at:1888'
-    at_desc='CALL with OMITTED parameter'
-    $at_quiet $ECHO_N " 90: CALL with OMITTED parameter                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "90. misc.at:1888: testing ..."
-      $at_traceon
-
-
 cat >callee.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -9495,99 +8409,62 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1918: \${COMPILE_MODULE} callee.cob"
-echo misc.at:1918 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} callee.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1918: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1918: \${COMPILE_MODULE} callee.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1918"
+( $at_check_trace; ${COMPILE_MODULE} callee.cob
+) >>"$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/misc.at:1918"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1919: \${COMPILE} -o caller caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1919"
+( $at_check_trace; ${COMPILE} -o caller caller.cob
+) >>"$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/misc.at:1919"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/misc.at:1920: ./caller"
+at_fn_check_prepare_trace "misc.at:1920"
+( $at_check_trace; ./caller
+) >>"$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 "OKOKOK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1920"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "misc.at:1919: \${COMPILE} -o caller caller.cob"
-echo misc.at:1919 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o caller caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1919: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_90
+#AT_START_91
+at_fn_group_banner 91 'misc.at:1926' \
+  "ANY LENGTH" "                                     "
+at_xfail=no
+(
+  $as_echo "91. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceon
 
-$at_traceoff
-echo "misc.at:1922: ./caller"
-echo misc.at:1922 >$at_check_line_file
-( $at_traceon; ./caller ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OKOKOK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1922: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  91 ) # 91. misc.at:1926: ANY LENGTH
-    at_setup_line='misc.at:1926'
-    at_desc='ANY LENGTH'
-    $at_quiet $ECHO_N " 91: ANY LENGTH                                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "91. misc.at:1926: testing ..."
-      $at_traceon
-
-
 cat >callee.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -9621,102 +8498,65 @@
 _ATEOF
 
 
-$at_traceoff
-echo "misc.at:1957: \${COMPILE_MODULE} callee.cob"
-echo misc.at:1957 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} callee.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1957: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/misc.at:1957: \${COMPILE_MODULE} callee.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1957"
+( $at_check_trace; ${COMPILE_MODULE} callee.cob
+) >>"$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/misc.at:1957"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/misc.at:1958: \${COMPILE} -o caller caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "misc.at:1958"
+( $at_check_trace; ${COMPILE} -o caller caller.cob
+) >>"$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/misc.at:1958"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
-
-$at_traceoff
-echo "misc.at:1958: \${COMPILE} -o caller caller.cob"
-echo misc.at:1958 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o caller caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1958: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "misc.at:1962: ./caller"
-echo misc.at:1962 >$at_check_line_file
-( $at_traceon; ./caller ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "06
+{ set +x
+$as_echo "$at_srcdir/misc.at:1959: ./caller"
+at_fn_check_prepare_trace "misc.at:1959"
+( $at_check_trace; ./caller
+) >>"$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 "06
 OKOKOK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "misc.at:1962: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/misc.at:1959"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_91
+#AT_START_92
+at_fn_group_banner 92 'extensions.at:26' \
+  "COMP-5" "                                         "
+at_xfail=no
+(
+  $as_echo "92. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  92 ) # 92. extensions.at:26: COMP-5
-    at_setup_line='extensions.at:26'
-    at_desc='COMP-5'
-    $at_quiet $ECHO_N " 92: COMP-5                                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "92. extensions.at:26: testing ..."
-      $at_traceon
 
-
-
-
 cat >dump.c <<'_ATEOF'
 
 #include <stdio.h>
@@ -9736,32 +8576,20 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:47: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
-echo extensions.at:47 >$at_check_line_file
-( $at_traceon; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:47: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:47: \${CC} \${SHROPT} -o dump.\${SHREXT} dump.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:47"
+( $at_check_trace; ${CC} ${SHROPT} -o dump.${SHREXT} dump.c
+) >>"$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/extensions.at:47"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -9779,76 +8607,51 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:64: \${COMPILE} -o prog prog.cob"
-echo extensions.at:64 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:64: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:64: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:64"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:64"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:68: ./prog"
-echo extensions.at:68 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00001234
+{ set +x
+$as_echo "$at_srcdir/extensions.at:65: ./prog"
+at_fn_check_prepare_trace "extensions.at:65"
+( $at_check_trace; ./prog
+) >>"$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 "00001234
 00004660
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:68: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:65"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_92
+#AT_START_93
+at_fn_group_banner 93 'extensions.at:75' \
+  "Hexadecimal numeric literal" "                    "
+at_xfail=no
+(
+  $as_echo "93. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  93 ) # 93. extensions.at:75: Hexadecimal numeric literal
-    at_setup_line='extensions.at:75'
-    at_desc='Hexadecimal numeric literal'
-    $at_quiet $ECHO_N " 93: Hexadecimal numeric literal                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "93. extensions.at:75: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -9866,76 +8669,51 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:93: \${COMPILE} -o prog prog.cob"
-echo extensions.at:93 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:93: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:93: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:93"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:93"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:97: ./prog"
-echo extensions.at:97 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00074565
+{ set +x
+$as_echo "$at_srcdir/extensions.at:94: ./prog"
+at_fn_check_prepare_trace "extensions.at:94"
+( $at_check_trace; ./prog
+) >>"$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 "00074565
 16777215
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:97: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:94"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_93
+#AT_START_94
+at_fn_group_banner 94 'extensions.at:104' \
+  "Semi-parenthesized condition" "                   "
+at_xfail=no
+(
+  $as_echo "94. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  94 ) # 94. extensions.at:104: Semi-parenthesized condition
-    at_setup_line='extensions.at:104'
-    at_desc='Semi-parenthesized condition'
-    $at_quiet $ECHO_N " 94: Semi-parenthesized condition                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "94. extensions.at:104: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -9949,74 +8727,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:118: \${COMPILE} -o prog prog.cob"
-echo extensions.at:118 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:118: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:118: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:118"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:118"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:119: ./prog"
+at_fn_check_prepare_trace "extensions.at:119"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:119"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:119: ./prog"
-echo extensions.at:119 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:119: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_94
+#AT_START_95
+at_fn_group_banner 95 'extensions.at:126' \
+  "ADDRESS OF" "                                     "
+at_xfail=no
+(
+  $as_echo "95. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  95 ) # 95. extensions.at:126: ADDRESS OF
-    at_setup_line='extensions.at:126'
-    at_desc='ADDRESS OF'
-    $at_quiet $ECHO_N " 95: ADDRESS OF                                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "95. extensions.at:126: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -10065,79 +8818,54 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:175: \${COMPILE} -o prog prog.cob"
-echo extensions.at:175 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:175: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:175: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:175"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:175"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:182: ./prog"
-echo extensions.at:182 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "X-1
+{ set +x
+$as_echo "$at_srcdir/extensions.at:176: ./prog"
+at_fn_check_prepare_trace "extensions.at:176"
+( $at_check_trace; ./prog
+) >>"$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 "X-1
 X-2
 OK
 OK
 OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:182: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:176"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_95
+#AT_START_96
+at_fn_group_banner 96 'extensions.at:190' \
+  "LENGTH OF" "                                      "
+at_xfail=no
+(
+  $as_echo "96. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  96 ) # 96. extensions.at:190: LENGTH OF
-    at_setup_line='extensions.at:190'
-    at_desc='LENGTH OF'
-    $at_quiet $ECHO_N " 96: LENGTH OF                                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "96. extensions.at:190: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -10160,77 +8888,52 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:213: \${COMPILE} -o prog prog.cob"
-echo extensions.at:213 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:213: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:213: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:213"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:213"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:218: ./prog"
-echo extensions.at:218 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0002
+{ set +x
+$as_echo "$at_srcdir/extensions.at:214: ./prog"
+at_fn_check_prepare_trace "extensions.at:214"
+( $at_check_trace; ./prog
+) >>"$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 "0002
 0002
 0002
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:218: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:214"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_96
+#AT_START_97
+at_fn_group_banner 97 'extensions.at:225' \
+  "WHEN-COMPILED" "                                  "
+at_xfail=no
+(
+  $as_echo "97. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  97 ) # 97. extensions.at:225: WHEN-COMPILED
-    at_setup_line='extensions.at:225'
-    at_desc='WHEN-COMPILED'
-    $at_quiet $ECHO_N " 97: WHEN-COMPILED                                $ECHO_C"
-    at_xfail=no
-    (
-      echo "97. extensions.at:225: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -10246,74 +8949,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:241: \${COMPILE} -o prog prog.cob"
-echo extensions.at:241 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:241: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:241: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:241"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:241"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:242: ./prog"
+at_fn_check_prepare_trace "extensions.at:242"
+( $at_check_trace; ./prog
+) >>"$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 "99/99/9999.99.99    " | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:242"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:242: ./prog"
-echo extensions.at:242 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "99/99/9999.99.99    " | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:242: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_97
+#AT_START_98
+at_fn_group_banner 98 'extensions.at:249' \
+  "Complex OCCURS DEPENDING ON" "                    "
+at_xfail=no
+(
+  $as_echo "98. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  98 ) # 98. extensions.at:249: Complex OCCURS DEPENDING ON
-    at_setup_line='extensions.at:249'
-    at_desc='Complex OCCURS DEPENDING ON'
-    $at_quiet $ECHO_N " 98: Complex OCCURS DEPENDING ON                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "98. extensions.at:249: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -10336,74 +9014,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:272: \${COMPILE} -std=mvs -o prog prog.cob"
-echo extensions.at:272 >$at_check_line_file
-( $at_traceon; ${COMPILE} -std=mvs -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:272: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:272: \${COMPILE} -std=mvs -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:272"
+( $at_check_trace; ${COMPILE} -std=mvs -o prog prog.cob
+) >>"$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/extensions.at:272"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:273: ./prog"
+at_fn_check_prepare_trace "extensions.at:273"
+( $at_check_trace; ./prog
+) >>"$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 "123456:34:56" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:273"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:273: ./prog"
-echo extensions.at:273 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "123456:34:56" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:273: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_98
+#AT_START_99
+at_fn_group_banner 99 'extensions.at:278' \
+  "MOVE NON-INTEGER TO ALPHA-NUMERIC" "              "
+at_xfail=no
+(
+  $as_echo "99. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  99 ) # 99. extensions.at:278: MOVE NON-INTEGER TO ALPHA-NUMERIC
-    at_setup_line='extensions.at:278'
-    at_desc='MOVE NON-INTEGER TO ALPHA-NUMERIC'
-    $at_quiet $ECHO_N " 99: MOVE NON-INTEGER TO ALPHA-NUMERIC            $ECHO_C"
-    at_xfail=no
-    (
-      echo "99. extensions.at:278: testing ..."
-      $at_traceon
-
-
-
 #  see MF - COBOL  Error Messages  1029-E ...
 cat >prog.cob <<'_ATEOF'
 
@@ -10475,15 +9128,14 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:363: \${COMPILE} -std=mf -o prog prog.cob"
-echo extensions.at:363 >$at_check_line_file
-( $at_traceon; ${COMPILE} -std=mf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob: In paragraph 'S-03':
+{ set +x
+$as_echo "$at_srcdir/extensions.at:350: \${COMPILE} -std=mf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:350"
+( $at_check_trace; ${COMPILE} -std=mf -o prog prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob: In paragraph 'S-03':
 prog.cob:37: Warning: Move non-integer to alphanumeric
 prog.cob: In paragraph 'S-10':
 prog.cob:42: Warning: Move non-integer to alphanumeric
@@ -10495,66 +9147,43 @@
 prog.cob:57: Warning: Move non-integer to alphanumeric
 prog.cob: In paragraph 'S-50':
 prog.cob:62: Warning: Move non-integer to alphanumeric
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:363: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:350"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:364: ./prog"
+at_fn_check_prepare_trace "extensions.at:364"
+( $at_check_trace; ./prog
+) >>"$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 "12891289128912891289128912891289" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:364"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:364: ./prog"
-echo extensions.at:364 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "12891289128912891289128912891289" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:364: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_99
+#AT_START_100
+at_fn_group_banner 100 'extensions.at:371' \
+  "CALL USING file-name" "                           "
+at_xfail=no
+(
+  $as_echo "100. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  100 ) # 100. extensions.at:371: CALL USING file-name
-    at_setup_line='extensions.at:371'
-    at_desc='CALL USING file-name'
-    $at_quiet $ECHO_N "100: CALL USING file-name                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "100. extensions.at:371: testing ..."
-      $at_traceon
-
-
-
 cat >setfilename.c <<'_ATEOF'
 
 #include <stdio.h>
@@ -10592,124 +9221,74 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:407: \${COMPILE_MODULE} setfilename.c"
-echo extensions.at:407 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} setfilename.c ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:407: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:407: \${COMPILE_MODULE} setfilename.c"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:407"
+( $at_check_trace; ${COMPILE_MODULE} setfilename.c
+) >>"$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/extensions.at:407"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:408: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:408"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:408"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/extensions.at:409: ./prog"
+at_fn_check_prepare_trace "extensions.at:409"
+( $at_check_trace; ./prog
+) >>"$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/extensions.at:409"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "extensions.at:408: \${COMPILE} -o prog prog.cob"
-echo extensions.at:408 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:408: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:410: test -e TESTFILE"
+at_fn_check_prepare_trace "extensions.at:410"
+( $at_check_trace; test -e TESTFILE
+) >>"$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/extensions.at:410"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_100
+#AT_START_101
+at_fn_group_banner 101 'extensions.at:414' \
+  "CALL unusual PROGRAM-ID." "                       "
+at_xfail=no
+(
+  $as_echo "101. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceoff
-echo "extensions.at:409: ./prog"
-echo extensions.at:409 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:409: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:410: test -e TESTFILE"
-echo extensions.at:410 >$at_check_line_file
-( $at_traceon; test -e TESTFILE ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:410: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  101 ) # 101. extensions.at:414: CALL unusual PROGRAM-ID.
-    at_setup_line='extensions.at:414'
-    at_desc='CALL unusual PROGRAM-ID.'
-    $at_quiet $ECHO_N "101: CALL unusual PROGRAM-ID.                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "101. extensions.at:414: testing ..."
-      $at_traceon
-
-
-
 cat >A@B.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -10771,175 +9350,102 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:468: \${COMPILE_MODULE} A@B.cob"
-echo extensions.at:468 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} A@B.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:468: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:468: \${COMPILE_MODULE} A@B.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:468"
+( $at_check_trace; ${COMPILE_MODULE} A@B.cob
+) >>"$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/extensions.at:468"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:469: \${COMPILE_MODULE} A#B.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:469"
+( $at_check_trace; ${COMPILE_MODULE} A#B.cob
+) >>"$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/extensions.at:469"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/extensions.at:470: \${COMPILE_MODULE} A-B.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:470"
+( $at_check_trace; ${COMPILE_MODULE} A-B.cob
+) >>"$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/extensions.at:470"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "extensions.at:469: \${COMPILE_MODULE} A#B.cob"
-echo extensions.at:469 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} A#B.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:469: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:471: \${COMPILE_MODULE} A_B.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:471"
+( $at_check_trace; ${COMPILE_MODULE} A_B.cob
+) >>"$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/extensions.at:471"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:472: \${COMPILE} -o caller caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:472"
+( $at_check_trace; ${COMPILE} -o caller caller.cob
+) >>"$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/extensions.at:472"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:470: \${COMPILE_MODULE} A-B.cob"
-echo extensions.at:470 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} A-B.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:470: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:474: ./caller"
+at_fn_check_prepare_trace "extensions.at:474"
+( $at_check_trace; ./caller
+) >>"$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 "P1P2P3P4" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:474"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_101
+#AT_START_102
+at_fn_group_banner 102 'extensions.at:478' \
+  "Case independent PROGRAM-ID" "                    "
+at_xfail=no
+(
+  $as_echo "102. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceoff
-echo "extensions.at:471: \${COMPILE_MODULE} A_B.cob"
-echo extensions.at:471 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} A_B.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:471: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:472: \${COMPILE} -o caller caller.cob"
-echo extensions.at:472 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o caller caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:472: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-$at_traceoff
-echo "extensions.at:474: ./caller"
-echo extensions.at:474 >$at_check_line_file
-( $at_traceon; ./caller ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "P1P2P3P4" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:474: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  102 ) # 102. extensions.at:478: Case independent PROGRAM-ID
-    at_setup_line='extensions.at:478'
-    at_desc='Case independent PROGRAM-ID'
-    $at_quiet $ECHO_N "102: Case independent PROGRAM-ID                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "102. extensions.at:478: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -10958,74 +9464,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:497: \${COMPILE} -o prog prog.cob"
-echo extensions.at:497 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:497: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:497: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:497"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:497"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:498: ./prog"
+at_fn_check_prepare_trace "extensions.at:498"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:498"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:498: ./prog"
-echo extensions.at:498 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:498: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_102
+#AT_START_103
+at_fn_group_banner 103 'extensions.at:502' \
+  "PROGRAM-ID AS clause" "                           "
+at_xfail=no
+(
+  $as_echo "103. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  103 ) # 103. extensions.at:502: PROGRAM-ID AS clause
-    at_setup_line='extensions.at:502'
-    at_desc='PROGRAM-ID AS clause'
-    $at_quiet $ECHO_N "103: PROGRAM-ID AS clause                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "103. extensions.at:502: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -11044,74 +9525,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:521: \${COMPILE} -o prog prog.cob"
-echo extensions.at:521 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:521: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:521: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:521"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:521"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:522: ./prog"
+at_fn_check_prepare_trace "extensions.at:522"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:522"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:522: ./prog"
-echo extensions.at:522 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:522: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_103
+#AT_START_104
+at_fn_group_banner 104 'extensions.at:526' \
+  "Quoted PROGRAM-ID" "                              "
+at_xfail=no
+(
+  $as_echo "104. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  104 ) # 104. extensions.at:526: Quoted PROGRAM-ID
-    at_setup_line='extensions.at:526'
-    at_desc='Quoted PROGRAM-ID'
-    $at_quiet $ECHO_N "104: Quoted PROGRAM-ID                            $ECHO_C"
-    at_xfail=no
-    (
-      echo "104. extensions.at:526: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -11130,74 +9586,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:545: \${COMPILE} -o prog prog.cob"
-echo extensions.at:545 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:545: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:545: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:545"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:545"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:546: ./prog"
+at_fn_check_prepare_trace "extensions.at:546"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:546"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:546: ./prog"
-echo extensions.at:546 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:546: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_104
+#AT_START_105
+at_fn_group_banner 105 'extensions.at:552' \
+  "ASSIGN clause" "                                  "
+at_xfail=no
+(
+  $as_echo "105. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  105 ) # 105. extensions.at:552: ASSIGN clause
-    at_setup_line='extensions.at:552'
-    at_desc='ASSIGN clause'
-    $at_quiet $ECHO_N "105: ASSIGN clause                                $ECHO_C"
-    at_xfail=no
-    (
-      echo "105. extensions.at:552: testing ..."
-      $at_traceon
-
-
-
 cat >test.conf <<'_ATEOF'
 
 include "cobol2002.conf"
@@ -11225,75 +9656,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:580: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo extensions.at:580 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:12: Warning: 'FILENAME' will be implicitly defined
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:580: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:578: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:578"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:12: Warning: 'FILENAME' will be implicitly defined
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:578"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:581: ./prog"
+at_fn_check_prepare_trace "extensions.at:581"
+( $at_check_trace; ./prog
+) >>"$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/extensions.at:581"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:581: ./prog"
-echo extensions.at:581 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:581: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_105
+#AT_START_106
+at_fn_group_banner 106 'extensions.at:585' \
+  "ASSIGN clause IBM" "                              "
+at_xfail=no
+(
+  $as_echo "106. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  106 ) # 106. extensions.at:585: ASSIGN clause IBM
-    at_setup_line='extensions.at:585'
-    at_desc='ASSIGN clause IBM'
-    $at_quiet $ECHO_N "106: ASSIGN clause IBM                            $ECHO_C"
-    at_xfail=no
-    (
-      echo "106. extensions.at:585: testing ..."
-      $at_traceon
-
-
-
 cat >test.conf <<'_ATEOF'
 
 include "cobol2002.conf"
@@ -11320,99 +9726,61 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:610: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo extensions.at:610 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:610: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:610: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:610"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/extensions.at:610"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:611: ./prog"
+at_fn_check_prepare_trace "extensions.at:611"
+( $at_check_trace; ./prog
+) >>"$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/extensions.at:611"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/extensions.at:612: test -f FILENAME"
+at_fn_check_prepare_trace "extensions.at:612"
+( $at_check_trace; test -f FILENAME
+) >>"$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/extensions.at:612"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "extensions.at:611: ./prog"
-echo extensions.at:611 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:611: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_106
+#AT_START_107
+at_fn_group_banner 107 'extensions.at:616' \
+  "ASSIGN mapping" "                                 "
+at_xfail=no
+(
+  $as_echo "107. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:612: test -f FILENAME"
-echo extensions.at:612 >$at_check_line_file
-( $at_traceon; test -f FILENAME ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:612: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  107 ) # 107. extensions.at:616: ASSIGN mapping
-    at_setup_line='extensions.at:616'
-    at_desc='ASSIGN mapping'
-    $at_quiet $ECHO_N "107: ASSIGN mapping                               $ECHO_C"
-    at_xfail=no
-    (
-      echo "107. extensions.at:616: testing ..."
-      $at_traceon
-
-
-
 cat >test.conf <<'_ATEOF'
 
 include "cobol2002.conf"
@@ -11439,249 +9807,139 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:641: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo extensions.at:641 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:641: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:641: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:641"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/extensions.at:641"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:642: DD_FILENAME=\"x\" ./prog"
+at_fn_check_prepare_trace "extensions.at:642"
+( $at_check_trace; DD_FILENAME="x" ./prog
+) >>"$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/extensions.at:642"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/extensions.at:643: test -f \"x\""
+at_fn_check_prepare_trace "extensions.at:643"
+( $at_check_trace; test -f "x"
+) >>"$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/extensions.at:643"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "extensions.at:642: DD_FILENAME=\"x\" ./prog"
-echo extensions.at:642 >$at_check_line_file
-( $at_traceon; DD_FILENAME="x" ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:642: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:644: dd_FILENAME=\"y\" ./prog"
+at_fn_check_prepare_trace "extensions.at:644"
+( $at_check_trace; dd_FILENAME="y" ./prog
+) >>"$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/extensions.at:644"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:645: test -f \"y\""
+at_fn_check_prepare_trace "extensions.at:645"
+( $at_check_trace; test -f "y"
+) >>"$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/extensions.at:645"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/extensions.at:646: FILENAME=\"z\" ./prog"
+at_fn_check_prepare_trace "extensions.at:646"
+( $at_check_trace; FILENAME="z" ./prog
+) >>"$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/extensions.at:646"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "extensions.at:643: test -f \"x\""
-echo extensions.at:643 >$at_check_line_file
-( $at_traceon; test -f "x" ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:643: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:647: test -f \"z\""
+at_fn_check_prepare_trace "extensions.at:647"
+( $at_check_trace; test -f "z"
+) >>"$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/extensions.at:647"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:648: ./prog"
+at_fn_check_prepare_trace "extensions.at:648"
+( $at_check_trace; ./prog
+) >>"$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/extensions.at:648"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/extensions.at:649: test -f \"FILENAME\""
+at_fn_check_prepare_trace "extensions.at:649"
+( $at_check_trace; test -f "FILENAME"
+) >>"$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/extensions.at:649"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "extensions.at:644: dd_FILENAME=\"y\" ./prog"
-echo extensions.at:644 >$at_check_line_file
-( $at_traceon; dd_FILENAME="y" ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:644: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_107
+#AT_START_108
+at_fn_group_banner 108 'extensions.at:653' \
+  "ASSIGN expansion" "                               "
+at_xfail=no
+(
+  $as_echo "108. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:645: test -f \"y\""
-echo extensions.at:645 >$at_check_line_file
-( $at_traceon; test -f "y" ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:645: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:646: FILENAME=\"z\" ./prog"
-echo extensions.at:646 >$at_check_line_file
-( $at_traceon; FILENAME="z" ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:646: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:647: test -f \"z\""
-echo extensions.at:647 >$at_check_line_file
-( $at_traceon; test -f "z" ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:647: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:648: ./prog"
-echo extensions.at:648 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:648: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:649: test -f \"FILENAME\""
-echo extensions.at:649 >$at_check_line_file
-( $at_traceon; test -f "FILENAME" ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:649: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  108 ) # 108. extensions.at:653: ASSIGN expansion
-    at_setup_line='extensions.at:653'
-    at_desc='ASSIGN expansion'
-    $at_quiet $ECHO_N "108: ASSIGN expansion                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "108. extensions.at:653: testing ..."
-      $at_traceon
-
-
-
 cat >test.conf <<'_ATEOF'
 
 include "cobol2002.conf"
@@ -11708,99 +9966,61 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:678: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo extensions.at:678 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:678: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:678: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:678"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/extensions.at:678"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:679: DIR=\".\" ./prog"
+at_fn_check_prepare_trace "extensions.at:679"
+( $at_check_trace; DIR="." ./prog
+) >>"$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/extensions.at:679"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/extensions.at:680: test -f \"./FILENAME\" && rm -f \"./FILENAME\""
+at_fn_check_prepare_trace "extensions.at:680"
+( $at_check_trace; test -f "./FILENAME" && rm -f "./FILENAME"
+) >>"$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/extensions.at:680"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "extensions.at:679: DIR=\".\" ./prog"
-echo extensions.at:679 >$at_check_line_file
-( $at_traceon; DIR="." ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:679: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_108
+#AT_START_109
+at_fn_group_banner 109 'extensions.at:684' \
+  "ASSIGN with COB_FILE_PATH" "                      "
+at_xfail=no
+(
+  $as_echo "109. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:680: test -f \"./FILENAME\" && rm -f \"./FILENAME\""
-echo extensions.at:680 >$at_check_line_file
-( $at_traceon; test -f "./FILENAME" && rm -f "./FILENAME" ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:680: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  109 ) # 109. extensions.at:684: ASSIGN with COB_FILE_PATH
-    at_setup_line='extensions.at:684'
-    at_desc='ASSIGN with COB_FILE_PATH'
-    $at_quiet $ECHO_N "109: ASSIGN with COB_FILE_PATH                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "109. extensions.at:684: testing ..."
-      $at_traceon
-
-
-
 cat >test.conf <<'_ATEOF'
 
 include "cobol2002.conf"
@@ -11827,99 +10047,61 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:709: \${COMPILE} -conf=test.conf -o prog prog.cob"
-echo extensions.at:709 >$at_check_line_file
-( $at_traceon; ${COMPILE} -conf=test.conf -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:709: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:709: \${COMPILE} -conf=test.conf -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:709"
+( $at_check_trace; ${COMPILE} -conf=test.conf -o prog prog.cob
+) >>"$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/extensions.at:709"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:710: COB_FILE_PATH=\"..\" ./prog"
+at_fn_check_prepare_trace "extensions.at:710"
+( $at_check_trace; COB_FILE_PATH=".." ./prog
+) >>"$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/extensions.at:710"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/extensions.at:711: test -f \"../FILENAMEX\" && rm -f \"../FILENAMEX\""
+at_fn_check_prepare_trace "extensions.at:711"
+( $at_check_trace; test -f "../FILENAMEX" && rm -f "../FILENAMEX"
+) >>"$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/extensions.at:711"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "extensions.at:710: COB_FILE_PATH=\"..\" ./prog"
-echo extensions.at:710 >$at_check_line_file
-( $at_traceon; COB_FILE_PATH=".." ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:710: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_109
+#AT_START_110
+at_fn_group_banner 110 'extensions.at:718' \
+  "NUMBER-OF-CALL-PARAMETERS" "                      "
+at_xfail=no
+(
+  $as_echo "110. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:711: test -f \"../FILENAMEX\" && rm -f \"../FILENAMEX\""
-echo extensions.at:711 >$at_check_line_file
-( $at_traceon; test -f "../FILENAMEX" && rm -f "../FILENAMEX" ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:711: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  110 ) # 110. extensions.at:718: NUMBER-OF-CALL-PARAMETERS
-    at_setup_line='extensions.at:718'
-    at_desc='NUMBER-OF-CALL-PARAMETERS'
-    $at_quiet $ECHO_N "110: NUMBER-OF-CALL-PARAMETERS                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "110. extensions.at:718: testing ..."
-      $at_traceon
-
-
-
 cat >callee.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -11963,104 +10145,67 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:760: \${COMPILE} caller.cob"
-echo extensions.at:760 >$at_check_line_file
-( $at_traceon; ${COMPILE} caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:760: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:760: \${COMPILE} caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:760"
+( $at_check_trace; ${COMPILE} caller.cob
+) >>"$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/extensions.at:760"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:761: \${COMPILE_MODULE} callee.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:761"
+( $at_check_trace; ${COMPILE_MODULE} callee.cob
+) >>"$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/extensions.at:761"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:761: \${COMPILE_MODULE} callee.cob"
-echo extensions.at:761 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} callee.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:761: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:768: ./caller"
-echo extensions.at:768 >$at_check_line_file
-( $at_traceon; ./caller ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "+000000000
+{ set +x
+$as_echo "$at_srcdir/extensions.at:762: ./caller"
+at_fn_check_prepare_trace "extensions.at:762"
+( $at_check_trace; ./caller
+) >>"$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 "+000000000
 +000000001
 +000000002
 +000000003
 +000000004
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:768: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:762"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_110
+#AT_START_111
+at_fn_group_banner 111 'extensions.at:775' \
+  "PROCEDURE DIVISION USING BY ..." "                "
+at_xfail=no
+(
+  $as_echo "111. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  111 ) # 111. extensions.at:775: PROCEDURE DIVISION USING BY ...
-    at_setup_line='extensions.at:775'
-    at_desc='PROCEDURE DIVISION USING BY ...'
-    $at_quiet $ECHO_N "111: PROCEDURE DIVISION USING BY ...              $ECHO_C"
-    at_xfail=no
-    (
-      echo "111. extensions.at:775: testing ..."
-      $at_traceon
-
-
-
 cat >callee.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -12103,101 +10248,64 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:816: \${COMPILE} caller.cob"
-echo extensions.at:816 >$at_check_line_file
-( $at_traceon; ${COMPILE} caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:816: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:816: \${COMPILE} caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:816"
+( $at_check_trace; ${COMPILE} caller.cob
+) >>"$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/extensions.at:816"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:817: \${COMPILE_MODULE} callee.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:817"
+( $at_check_trace; ${COMPILE_MODULE} callee.cob
+) >>"$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/extensions.at:817"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:817: \${COMPILE_MODULE} callee.cob"
-echo extensions.at:817 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} callee.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:817: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:821: ./caller"
-echo extensions.at:821 >$at_check_line_file
-( $at_traceon; ./caller ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "X = X Y = 12 Z = 34
+{ set +x
+$as_echo "$at_srcdir/extensions.at:818: ./caller"
+at_fn_check_prepare_trace "extensions.at:818"
+( $at_check_trace; ./caller
+) >>"$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 "X = X Y = 12 Z = 34
 X = X Y = 56 Z = 34
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:821: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:818"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_111
+#AT_START_112
+at_fn_group_banner 112 'extensions.at:825' \
+  "PROCEDURE DIVISION CHAINING ..." "                "
+at_xfail=no
+(
+  $as_echo "112. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  112 ) # 112. extensions.at:825: PROCEDURE DIVISION CHAINING ...
-    at_setup_line='extensions.at:825'
-    at_desc='PROCEDURE DIVISION CHAINING ...'
-    $at_quiet $ECHO_N "112: PROCEDURE DIVISION CHAINING ...              $ECHO_C"
-    at_xfail=no
-    (
-      echo "112. extensions.at:825: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -12216,77 +10324,52 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:844: \${COMPILE} prog.cob"
-echo extensions.at:844 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:844: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:844: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:844"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/extensions.at:844"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
-$at_traceoff
-echo "extensions.at:849: ./prog X ABCD"
-echo extensions.at:849 >$at_check_line_file
-( $at_traceon; ./prog X ABCD ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "X
+{ set +x
+$as_echo "$at_srcdir/extensions.at:846: ./prog X ABCD"
+at_fn_check_prepare_trace "extensions.at:846"
+( $at_check_trace; ./prog X ABCD
+) >>"$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 "X
 ABCD
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:849: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:846"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_112
+#AT_START_113
+at_fn_group_banner 113 'extensions.at:854' \
+  "STOP RUN RETURNING" "                             "
+at_xfail=no
+(
+  $as_echo "113. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  113 ) # 113. extensions.at:854: STOP RUN RETURNING
-    at_setup_line='extensions.at:854'
-    at_desc='STOP RUN RETURNING'
-    $at_quiet $ECHO_N "113: STOP RUN RETURNING                           $ECHO_C"
-    at_xfail=no
-    (
-      echo "113. extensions.at:854: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -12296,74 +10379,48 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:864: \${COMPILE} -o prog prog.cob"
-echo extensions.at:864 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:864: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:864: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:864"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:864"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:865: ./prog"
+at_fn_check_prepare_trace "extensions.at:865"
+( $at_check_trace; ./prog
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/extensions.at:865"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:865: ./prog"
-echo extensions.at:865 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "extensions.at:865: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_113
+#AT_START_114
+at_fn_group_banner 114 'extensions.at:872' \
+  "ENTRY" "                                          "
+at_xfail=no
+(
+  $as_echo "114. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  114 ) # 114. extensions.at:872: ENTRY
-    at_setup_line='extensions.at:872'
-    at_desc='ENTRY'
-    $at_quiet $ECHO_N "114: ENTRY                                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "114. extensions.at:872: testing ..."
-      $at_traceon
-
-
-
 cat >caller.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -12400,101 +10457,64 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:907: \${COMPILE} -std=mvs caller.cob"
-echo extensions.at:907 >$at_check_line_file
-( $at_traceon; ${COMPILE} -std=mvs caller.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:907: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:907: \${COMPILE} -std=mvs caller.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:907"
+( $at_check_trace; ${COMPILE} -std=mvs caller.cob
+) >>"$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/extensions.at:907"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:908: \${COMPILE_MODULE} -std=mvs hello.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:908"
+( $at_check_trace; ${COMPILE_MODULE} -std=mvs hello.cob
+) >>"$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/extensions.at:908"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:908: \${COMPILE_MODULE} -std=mvs hello.cob"
-echo extensions.at:908 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} -std=mvs hello.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:908: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:912: ./caller"
-echo extensions.at:912 >$at_check_line_file
-( $at_traceon; ./caller ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "Hello, COBOL!
+{ set +x
+$as_echo "$at_srcdir/extensions.at:909: ./caller"
+at_fn_check_prepare_trace "extensions.at:909"
+( $at_check_trace; ./caller
+) >>"$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 "Hello, COBOL!
 Bye, COBOL!
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:912: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:909"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_114
+#AT_START_115
+at_fn_group_banner 115 'extensions.at:919' \
+  "LINE SEQUENTIAL write" "                          "
+at_xfail=no
+(
+  $as_echo "115. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  115 ) # 115. extensions.at:919: LINE SEQUENTIAL write
-    at_setup_line='extensions.at:919'
-    at_desc='LINE SEQUENTIAL write'
-    $at_quiet $ECHO_N "115: LINE SEQUENTIAL write                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "115. extensions.at:919: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -12523,105 +10543,68 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:948: \${COMPILE} -o prog prog.cob"
-echo extensions.at:948 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:948: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:948: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:948"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:948"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:949: ./prog"
+at_fn_check_prepare_trace "extensions.at:949"
+( $at_check_trace; ./prog
+) >>"$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/extensions.at:949"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/extensions.at:950: cat TEST-FILE"
+at_fn_check_prepare_trace "extensions.at:950"
+( $at_check_trace; cat TEST-FILE
+) >>"$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 "a
 
-$at_traceoff
-echo "extensions.at:949: ./prog"
-echo extensions.at:949 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:949: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:957: cat TEST-FILE"
-echo extensions.at:957 >$at_check_line_file
-( $at_traceon; cat TEST-FILE ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "a
-
 ab
 abc
 
 abcd
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:957: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:950"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_115
+#AT_START_116
+at_fn_group_banner 116 'extensions.at:961' \
+  "LINE SEQUENTIAL read" "                           "
+at_xfail=no
+(
+  $as_echo "116. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  116 ) # 116. extensions.at:961: LINE SEQUENTIAL read
-    at_setup_line='extensions.at:961'
-    at_desc='LINE SEQUENTIAL read'
-    $at_quiet $ECHO_N "116: LINE SEQUENTIAL read                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "116. extensions.at:961: testing ..."
-      $at_traceon
-
-
-
 cat >TEST-FILE <<'_ATEOF'
 a
 ab
@@ -12670,80 +10653,55 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:1009: \${COMPILE} -o prog prog.cob"
-echo extensions.at:1009 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1009: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1009: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1009"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:1009"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:1017: ./prog"
-echo extensions.at:1017 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "(a   )
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1010: ./prog"
+at_fn_check_prepare_trace "extensions.at:1010"
+( $at_check_trace; ./prog
+) >>"$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 "(a   )
 (ab  )
 (abc )
 (abcd)
 (abcd)
 (abcd)
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1017: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1010"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_116
+#AT_START_117
+at_fn_group_banner 117 'extensions.at:1022' \
+  "ASSIGN to KEYBOARD/DISPLAY" "                     "
+at_xfail=no
+(
+  $as_echo "117. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  117 ) # 117. extensions.at:1022: ASSIGN to KEYBOARD/DISPLAY
-    at_setup_line='extensions.at:1022'
-    at_desc='ASSIGN to KEYBOARD/DISPLAY'
-    $at_quiet $ECHO_N "117: ASSIGN to KEYBOARD/DISPLAY                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "117. extensions.at:1022: testing ..."
-      $at_traceon
-
-
-
 cat >TEST-FILE <<'_ATEOF'
 a
 ab
@@ -12789,80 +10747,55 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:1067: \${COMPILE} -o prog prog.cob"
-echo extensions.at:1067 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1067: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1067: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1067"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:1067"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:1075: cat TEST-FILE | ./prog"
-echo extensions.at:1075 >$at_check_line_file
-( $at_traceon; cat TEST-FILE | ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "a
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1068: cat TEST-FILE | ./prog"
+at_fn_check_prepare_notrace 'a shell pipeline' "extensions.at:1068"
+( $at_check_trace; cat TEST-FILE | ./prog
+) >>"$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 "a
 ab
 abc
 abcd
 abcde
 abcdef
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1075: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1068"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_117
+#AT_START_118
+at_fn_group_banner 118 'extensions.at:1079' \
+  "Environment/Argument variable" "                  "
+at_xfail=no
+(
+  $as_echo "118. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  118 ) # 118. extensions.at:1079: Environment/Argument variable
-    at_setup_line='extensions.at:1079'
-    at_desc='Environment/Argument variable'
-    $at_quiet $ECHO_N "118: Environment/Argument variable                $ECHO_C"
-    at_xfail=no
-    (
-      echo "118. extensions.at:1079: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -12898,78 +10831,53 @@
 
 
 export TEST_ENV=OK
-$at_traceoff
-echo "extensions.at:1115: \${COMPILE} -o prog prog.cob"
-echo extensions.at:1115 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1115: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1115: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1115"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/extensions.at:1115"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:1121: ./prog CHECKPAR"
-echo extensions.at:1121 >$at_check_line_file
-( $at_traceon; ./prog CHECKPAR ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "(OK  )
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1116: ./prog CHECKPAR"
+at_fn_check_prepare_trace "extensions.at:1116"
+( $at_check_trace; ./prog CHECKPAR
+) >>"$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 "(OK  )
 (RXW )
 (CHECKPAR)
 (0001)
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1121: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1116"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_118
+#AT_START_119
+at_fn_group_banner 119 'extensions.at:1125' \
+  "DECIMAL-POINT is COMMA (1)" "                     "
+at_xfail=no
+(
+  $as_echo "119. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  119 ) # 119. extensions.at:1125: DECIMAL-POINT is COMMA (1)
-    at_setup_line='extensions.at:1125'
-    at_desc='DECIMAL-POINT is COMMA (1)'
-    $at_quiet $ECHO_N "119: DECIMAL-POINT is COMMA (1)                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "119. extensions.at:1125: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -12989,75 +10897,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:1145: \${COMPILE} prog.cob"
-echo extensions.at:1145 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1145: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1145: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1145"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/extensions.at:1145"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1146: ./prog"
+at_fn_check_prepare_trace "extensions.at:1146"
+( $at_check_trace; ./prog
+) >>"$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 "00,50
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1146"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:1148: ./prog"
-echo extensions.at:1148 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00,50
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1148: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_119
+#AT_START_120
+at_fn_group_banner 120 'extensions.at:1152' \
+  "DECIMAL-POINT is COMMA (2)" "                     "
+at_xfail=no
+(
+  $as_echo "120. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  120 ) # 120. extensions.at:1152: DECIMAL-POINT is COMMA (2)
-    at_setup_line='extensions.at:1152'
-    at_desc='DECIMAL-POINT is COMMA (2)'
-    $at_quiet $ECHO_N "120: DECIMAL-POINT is COMMA (2)                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "120. extensions.at:1152: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -13077,75 +10960,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:1172: \${COMPILE} prog.cob"
-echo extensions.at:1172 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1172: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1172: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1172"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/extensions.at:1172"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1173: ./prog"
+at_fn_check_prepare_trace "extensions.at:1173"
+( $at_check_trace; ./prog
+) >>"$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 "03,00
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1173"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:1175: ./prog"
-echo extensions.at:1175 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "03,00
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1175: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_120
+#AT_START_121
+at_fn_group_banner 121 'extensions.at:1179' \
+  "DECIMAL-POINT is COMMA (3)" "                     "
+at_xfail=no
+(
+  $as_echo "121. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  121 ) # 121. extensions.at:1179: DECIMAL-POINT is COMMA (3)
-    at_setup_line='extensions.at:1179'
-    at_desc='DECIMAL-POINT is COMMA (3)'
-    $at_quiet $ECHO_N "121: DECIMAL-POINT is COMMA (3)                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "121. extensions.at:1179: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -13165,75 +11023,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:1199: \${COMPILE} prog.cob"
-echo extensions.at:1199 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1199: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1199: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1199"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/extensions.at:1199"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1200: ./prog"
+at_fn_check_prepare_trace "extensions.at:1200"
+( $at_check_trace; ./prog
+) >>"$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 "01,50
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1200"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:1202: ./prog"
-echo extensions.at:1202 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "01,50
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1202: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_121
+#AT_START_122
+at_fn_group_banner 122 'extensions.at:1206' \
+  "DECIMAL-POINT is COMMA (4)" "                     "
+at_xfail=no
+(
+  $as_echo "122. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  122 ) # 122. extensions.at:1206: DECIMAL-POINT is COMMA (4)
-    at_setup_line='extensions.at:1206'
-    at_desc='DECIMAL-POINT is COMMA (4)'
-    $at_quiet $ECHO_N "122: DECIMAL-POINT is COMMA (4)                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "122. extensions.at:1206: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -13253,75 +11086,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:1226: \${COMPILE} prog.cob"
-echo extensions.at:1226 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1226: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1226: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1226"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/extensions.at:1226"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1227: ./prog"
+at_fn_check_prepare_trace "extensions.at:1227"
+( $at_check_trace; ./prog
+) >>"$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 "00,10
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1227"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:1229: ./prog"
-echo extensions.at:1229 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00,10
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1229: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_122
+#AT_START_123
+at_fn_group_banner 123 'extensions.at:1233' \
+  "DECIMAL-POINT is COMMA (5)" "                     "
+at_xfail=no
+(
+  $as_echo "123. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  123 ) # 123. extensions.at:1233: DECIMAL-POINT is COMMA (5)
-    at_setup_line='extensions.at:1233'
-    at_desc='DECIMAL-POINT is COMMA (5)'
-    $at_quiet $ECHO_N "123: DECIMAL-POINT is COMMA (5)                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "123. extensions.at:1233: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -13346,76 +11154,51 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:1258: \${COMPILE} prog.cob"
-echo extensions.at:1258 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1258: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1258: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1258"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/extensions.at:1258"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "extensions.at:1262: ./prog"
-echo extensions.at:1262 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "01,10
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1259: ./prog"
+at_fn_check_prepare_trace "extensions.at:1259"
+( $at_check_trace; ./prog
+) >>"$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 "01,10
 00,10
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1262: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1259"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_123
+#AT_START_124
+at_fn_group_banner 124 'extensions.at:1266' \
+  "78 Level (1)" "                                   "
+at_xfail=no
+(
+  $as_echo "124. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  124 ) # 124. extensions.at:1266: 78 Level (1)
-    at_setup_line='extensions.at:1266'
-    at_desc='78 Level (1)'
-    $at_quiet $ECHO_N "124: 78 Level (1)                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "124. extensions.at:1266: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -13430,75 +11213,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:1281: \${COMPILE} prog.cob"
-echo extensions.at:1281 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1281: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1281: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1281"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/extensions.at:1281"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1282: ./prog"
+at_fn_check_prepare_trace "extensions.at:1282"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1282"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:1284: ./prog"
-echo extensions.at:1284 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1284: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_124
+#AT_START_125
+at_fn_group_banner 125 'extensions.at:1288' \
+  "78 Level (2)" "                                   "
+at_xfail=no
+(
+  $as_echo "125. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  125 ) # 125. extensions.at:1288: 78 Level (2)
-    at_setup_line='extensions.at:1288'
-    at_desc='78 Level (2)'
-    $at_quiet $ECHO_N "125: 78 Level (2)                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "125. extensions.at:1288: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -13516,75 +11274,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:1306: \${COMPILE} prog.cob"
-echo extensions.at:1306 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1306: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1306: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1306"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/extensions.at:1306"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1307: ./prog"
+at_fn_check_prepare_trace "extensions.at:1307"
+( $at_check_trace; ./prog
+) >>"$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 "OKOKOK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1307"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:1309: ./prog"
-echo extensions.at:1309 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OKOKOK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1309: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_125
+#AT_START_126
+at_fn_group_banner 126 'extensions.at:1313' \
+  "78 Level (3)" "                                   "
+at_xfail=no
+(
+  $as_echo "126. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  126 ) # 126. extensions.at:1313: 78 Level (3)
-    at_setup_line='extensions.at:1313'
-    at_desc='78 Level (3)'
-    $at_quiet $ECHO_N "126: 78 Level (3)                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "126. extensions.at:1313: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -13600,75 +11333,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:1329: \${COMPILE} prog.cob"
-echo extensions.at:1329 >$at_check_line_file
-( $at_traceon; ${COMPILE} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1329: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1329: \${COMPILE} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1329"
+( $at_check_trace; ${COMPILE} prog.cob
+) >>"$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/extensions.at:1329"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1330: ./prog"
+at_fn_check_prepare_trace "extensions.at:1330"
+( $at_check_trace; ./prog
+) >>"$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 "OKOK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1330"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "extensions.at:1332: ./prog"
-echo extensions.at:1332 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OKOK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1332: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_126
+#AT_START_127
+at_fn_group_banner 127 'extensions.at:1336' \
+  "Unreachable statement" "                          "
+at_xfail=no
+(
+  $as_echo "127. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  127 ) # 127. extensions.at:1336: Unreachable statement
-    at_setup_line='extensions.at:1336'
-    at_desc='Unreachable statement'
-    $at_quiet $ECHO_N "127: Unreachable statement                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "127. extensions.at:1336: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -13685,51 +11393,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "extensions.at:1356: \${COMPILE} -Wunreachable prog.cob"
-echo extensions.at:1356 >$at_check_line_file
-( $at_traceon; ${COMPILE} -Wunreachable prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob: In paragraph 'P01':
+{ set +x
+$as_echo "$at_srcdir/extensions.at:1353: \${COMPILE} -Wunreachable prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "extensions.at:1353"
+( $at_check_trace; ${COMPILE} -Wunreachable prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob: In paragraph 'P01':
 prog.cob:9: Warning: Unreachable statement 'DISPLAY'
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "extensions.at:1356: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/extensions.at:1353"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_127
+#AT_START_128
+at_fn_group_banner 128 'return-code.at:25' \
+  "RETURN-CODE moving" "                             "
+at_xfail=no
+(
+  $as_echo "128. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  128 ) # 128. return-code.at:25: RETURN-CODE moving
-    at_setup_line='return-code.at:25'
-    at_desc='RETURN-CODE moving'
-    $at_quiet $ECHO_N "128: RETURN-CODE moving                           $ECHO_C"
-    at_xfail=no
-    (
-      echo "128. return-code.at:25: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -13748,74 +11443,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "return-code.at:44: \${COMPILE} -o prog prog.cob"
-echo return-code.at:44 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "return-code.at:44: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/return-code.at:44: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "return-code.at:44"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/return-code.at:44"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/return-code.at:45: ./prog"
+at_fn_check_prepare_trace "return-code.at:45"
+( $at_check_trace; ./prog
+) >>"$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 "01" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/return-code.at:45"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "return-code.at:45: ./prog"
-echo return-code.at:45 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "01" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "return-code.at:45: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_128
+#AT_START_129
+at_fn_group_banner 129 'return-code.at:49' \
+  "RETURN-CODE passing" "                            "
+at_xfail=no
+(
+  $as_echo "129. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  129 ) # 129. return-code.at:49: RETURN-CODE passing
-    at_setup_line='return-code.at:49'
-    at_desc='RETURN-CODE passing'
-    $at_quiet $ECHO_N "129: RETURN-CODE passing                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "129. return-code.at:49: testing ..."
-      $at_traceon
-
-
-
 cat >mod1.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -13856,124 +11526,75 @@
 _ATEOF
 
 
-$at_traceoff
-echo "return-code.at:86: \${COMPILE_MODULE} mod1.cob"
-echo return-code.at:86 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} mod1.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "return-code.at:86: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/return-code.at:86: \${COMPILE_MODULE} mod1.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "return-code.at:86"
+( $at_check_trace; ${COMPILE_MODULE} mod1.cob
+) >>"$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/return-code.at:86"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/return-code.at:87: \${COMPILE_MODULE} mod2.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "return-code.at:87"
+( $at_check_trace; ${COMPILE_MODULE} mod2.cob
+) >>"$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/return-code.at:87"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/return-code.at:88: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "return-code.at:88"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/return-code.at:88"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceoff
-echo "return-code.at:87: \${COMPILE_MODULE} mod2.cob"
-echo return-code.at:87 >$at_check_line_file
-( $at_traceon; ${COMPILE_MODULE} mod2.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "return-code.at:87: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/return-code.at:89: ./prog"
+at_fn_check_prepare_trace "return-code.at:89"
+( $at_check_trace; ./prog
+) >>"$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 "+000000000+000000001+000000001+000000000" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/return-code.at:89"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_129
+#AT_START_130
+at_fn_group_banner 130 'return-code.at:93' \
+  "RETURN-CODE nested" "                             "
+at_xfail=no
+(
+  $as_echo "130. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-$at_traceoff
-echo "return-code.at:88: \${COMPILE} -o prog prog.cob"
-echo return-code.at:88 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "return-code.at:88: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-$at_traceoff
-echo "return-code.at:89: ./prog"
-echo return-code.at:89 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "+000000000+000000001+000000001+000000000" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "return-code.at:89: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  130 ) # 130. return-code.at:93: RETURN-CODE nested
-    at_setup_line='return-code.at:93'
-    at_desc='RETURN-CODE nested'
-    $at_quiet $ECHO_N "130: RETURN-CODE nested                           $ECHO_C"
-    at_xfail=no
-    (
-      echo "130. return-code.at:93: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -13999,74 +11620,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "return-code.at:119: \${COMPILE} -o prog prog.cob"
-echo return-code.at:119 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "return-code.at:119: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/return-code.at:119: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "return-code.at:119"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/return-code.at:119"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/return-code.at:120: ./prog"
+at_fn_check_prepare_trace "return-code.at:120"
+( $at_check_trace; ./prog
+) >>"$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 "+000000001+000000001+000000002" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/return-code.at:120"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "return-code.at:120: ./prog"
-echo return-code.at:120 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "+000000001+000000001+000000002" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "return-code.at:120: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_130
+#AT_START_131
+at_fn_group_banner 131 'functions.at:25' \
+  "FUNCTION ABS" "                                   "
+at_xfail=no
+(
+  $as_echo "131. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  131 ) # 131. functions.at:25: FUNCTION ABS
-    at_setup_line='functions.at:25'
-    at_desc='FUNCTION ABS'
-    $at_quiet $ECHO_N "131: FUNCTION ABS                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "131. functions.at:25: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -14081,75 +11677,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:40: \${COMPILE} -o prog prog.cob"
-echo functions.at:40 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:40: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:40: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:40"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:40"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:41: ./prog"
+at_fn_check_prepare_trace "functions.at:41"
+( $at_check_trace; ./prog
+) >>"$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 "+0001.2345
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:41"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:43: ./prog"
-echo functions.at:43 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "+0001.2345
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:43: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_131
+#AT_START_132
+at_fn_group_banner 132 'functions.at:47' \
+  "FUNCTION ACOS" "                                  "
+at_xfail=no
+(
+  $as_echo "132. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  132 ) # 132. functions.at:47: FUNCTION ACOS
-    at_setup_line='functions.at:47'
-    at_desc='FUNCTION ACOS'
-    $at_quiet $ECHO_N "132: FUNCTION ACOS                                $ECHO_C"
-    at_xfail=no
-    (
-      echo "132. functions.at:47: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -14172,75 +11743,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:70: \${COMPILE} -o prog prog.cob"
-echo functions.at:70 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:70: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:70: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:70"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:70"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:71: ./prog"
+at_fn_check_prepare_trace "functions.at:71"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:71"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:73: ./prog"
-echo functions.at:73 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:73: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_132
+#AT_START_133
+at_fn_group_banner 133 'functions.at:77' \
+  "FUNCTION ANNUITY" "                               "
+at_xfail=no
+(
+  $as_echo "133. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  133 ) # 133. functions.at:77: FUNCTION ANNUITY
-    at_setup_line='functions.at:77'
-    at_desc='FUNCTION ANNUITY'
-    $at_quiet $ECHO_N "133: FUNCTION ANNUITY                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "133. functions.at:77: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -14264,75 +11810,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:101: \${COMPILE} -o prog prog.cob"
-echo functions.at:101 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:101: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:101: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:101"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:101"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:102: ./prog"
+at_fn_check_prepare_trace "functions.at:102"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:102"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:104: ./prog"
-echo functions.at:104 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:104: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_133
+#AT_START_134
+at_fn_group_banner 134 'functions.at:108' \
+  "FUNCTION ASIN" "                                  "
+at_xfail=no
+(
+  $as_echo "134. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  134 ) # 134. functions.at:108: FUNCTION ASIN
-    at_setup_line='functions.at:108'
-    at_desc='FUNCTION ASIN'
-    $at_quiet $ECHO_N "134: FUNCTION ASIN                                $ECHO_C"
-    at_xfail=no
-    (
-      echo "134. functions.at:108: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -14355,75 +11876,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:131: \${COMPILE} -o prog prog.cob"
-echo functions.at:131 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:131: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:131: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:131"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:131"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:132: ./prog"
+at_fn_check_prepare_trace "functions.at:132"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:132"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:134: ./prog"
-echo functions.at:134 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:134: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_134
+#AT_START_135
+at_fn_group_banner 135 'functions.at:138' \
+  "FUNCTION ATAN" "                                  "
+at_xfail=no
+(
+  $as_echo "135. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  135 ) # 135. functions.at:138: FUNCTION ATAN
-    at_setup_line='functions.at:138'
-    at_desc='FUNCTION ATAN'
-    $at_quiet $ECHO_N "135: FUNCTION ATAN                                $ECHO_C"
-    at_xfail=no
-    (
-      echo "135. functions.at:138: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -14446,75 +11942,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:161: \${COMPILE} -o prog prog.cob"
-echo functions.at:161 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:161: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:161: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:161"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:161"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:162: ./prog"
+at_fn_check_prepare_trace "functions.at:162"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:162"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:164: ./prog"
-echo functions.at:164 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:164: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_135
+#AT_START_136
+at_fn_group_banner 136 'functions.at:168' \
+  "FUNCTION CHAR" "                                  "
+at_xfail=no
+(
+  $as_echo "136. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  136 ) # 136. functions.at:168: FUNCTION CHAR
-    at_setup_line='functions.at:168'
-    at_desc='FUNCTION CHAR'
-    $at_quiet $ECHO_N "136: FUNCTION CHAR                                $ECHO_C"
-    at_xfail=no
-    (
-      echo "136. functions.at:168: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -14529,75 +12000,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:183: \${COMPILE} -o prog prog.cob"
-echo functions.at:183 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:183: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:183: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:183"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:183"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:184: ./prog"
+at_fn_check_prepare_trace "functions.at:184"
+( $at_check_trace; ./prog
+) >>"$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 "k
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:184"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:186: ./prog"
-echo functions.at:186 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "k
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:186: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_136
+#AT_START_137
+at_fn_group_banner 137 'functions.at:190' \
+  "FUNCTION COMBINED-DATETIME" "                     "
+at_xfail=no
+(
+  $as_echo "137. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  137 ) # 137. functions.at:190: FUNCTION COMBINED-DATETIME
-    at_setup_line='functions.at:190'
-    at_desc='FUNCTION COMBINED-DATETIME'
-    $at_quiet $ECHO_N "137: FUNCTION COMBINED-DATETIME                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "137. functions.at:190: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -14611,75 +12057,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:204: \${COMPILE} -o prog prog.cob"
-echo functions.at:204 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:204: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:204: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:204"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:204"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:205: ./prog"
+at_fn_check_prepare_trace "functions.at:205"
+( $at_check_trace; ./prog
+) >>"$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 "0000987.00345
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:205"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:207: ./prog"
-echo functions.at:207 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0000987.00345
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:207: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_137
+#AT_START_138
+at_fn_group_banner 138 'functions.at:211' \
+  "FUNCTION CONCATENATE" "                           "
+at_xfail=no
+(
+  $as_echo "138. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  138 ) # 138. functions.at:211: FUNCTION CONCATENATE
-    at_setup_line='functions.at:211'
-    at_desc='FUNCTION CONCATENATE'
-    $at_quiet $ECHO_N "138: FUNCTION CONCATENATE                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "138. functions.at:211: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -14695,75 +12116,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:227: \${COMPILE} -o prog prog.cob"
-echo functions.at:227 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:227: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:227: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:227"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:227"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:228: ./prog"
+at_fn_check_prepare_trace "functions.at:228"
+( $at_check_trace; ./prog
+) >>"$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 "defxabczz55666
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:228"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:230: ./prog"
-echo functions.at:230 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "defxabczz55666
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:230: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_138
+#AT_START_139
+at_fn_group_banner 139 'functions.at:234' \
+  "FUNCTION CONCATENATE with reference modding" "    "
+at_xfail=no
+(
+  $as_echo "139. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  139 ) # 139. functions.at:234: FUNCTION CONCATENATE with reference modding
-    at_setup_line='functions.at:234'
-    at_desc='FUNCTION CONCATENATE with reference modding'
-    $at_quiet $ECHO_N "139: FUNCTION CONCATENATE with reference modding  $ECHO_C"
-    at_xfail=no
-    (
-      echo "139. functions.at:234: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -14780,75 +12176,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:251: \${COMPILE} -o prog prog.cob"
-echo functions.at:251 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:251: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:251: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:251"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:251"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:252: ./prog"
+at_fn_check_prepare_trace "functions.at:252"
+( $at_check_trace; ./prog
+) >>"$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 "efxabczz5
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:252"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:254: ./prog"
-echo functions.at:254 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "efxabczz5
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:254: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_139
+#AT_START_140
+at_fn_group_banner 140 'functions.at:258' \
+  "FUNCTION COS" "                                   "
+at_xfail=no
+(
+  $as_echo "140. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  140 ) # 140. functions.at:258: FUNCTION COS
-    at_setup_line='functions.at:258'
-    at_desc='FUNCTION COS'
-    $at_quiet $ECHO_N "140: FUNCTION COS                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "140. functions.at:258: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -14871,75 +12242,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:281: \${COMPILE} -o prog prog.cob"
-echo functions.at:281 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:281: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:281: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:281"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:281"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:282: ./prog"
+at_fn_check_prepare_trace "functions.at:282"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:282"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:284: ./prog"
-echo functions.at:284 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:284: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_140
+#AT_START_141
+at_fn_group_banner 141 'functions.at:288' \
+  "FUNCTION DATE-OF-INTEGER" "                       "
+at_xfail=no
+(
+  $as_echo "141. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  141 ) # 141. functions.at:288: FUNCTION DATE-OF-INTEGER
-    at_setup_line='functions.at:288'
-    at_desc='FUNCTION DATE-OF-INTEGER'
-    $at_quiet $ECHO_N "141: FUNCTION DATE-OF-INTEGER                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "141. functions.at:288: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -14953,75 +12299,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:302: \${COMPILE} -o prog prog.cob"
-echo functions.at:302 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:302: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:302: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:302"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:302"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:303: ./prog"
+at_fn_check_prepare_trace "functions.at:303"
+( $at_check_trace; ./prog
+) >>"$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 "20000925
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:303"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:305: ./prog"
-echo functions.at:305 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "20000925
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:305: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_141
+#AT_START_142
+at_fn_group_banner 142 'functions.at:309' \
+  "FUNCTION DATE-TO-YYYYMMDD" "                      "
+at_xfail=no
+(
+  $as_echo "142. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  142 ) # 142. functions.at:309: FUNCTION DATE-TO-YYYYMMDD
-    at_setup_line='functions.at:309'
-    at_desc='FUNCTION DATE-TO-YYYYMMDD'
-    $at_quiet $ECHO_N "142: FUNCTION DATE-TO-YYYYMMDD                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "142. functions.at:309: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15035,75 +12356,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:323: \${COMPILE} -o prog prog.cob"
-echo functions.at:323 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:323: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:323: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:323"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:323"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:324: ./prog"
+at_fn_check_prepare_trace "functions.at:324"
+( $at_check_trace; ./prog
+) >>"$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 "18981002
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:324"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:326: ./prog"
-echo functions.at:326 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "18981002
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:326: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_142
+#AT_START_143
+at_fn_group_banner 143 'functions.at:330' \
+  "FUNCTION DAY-OF-INTEGER" "                        "
+at_xfail=no
+(
+  $as_echo "143. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  143 ) # 143. functions.at:330: FUNCTION DAY-OF-INTEGER
-    at_setup_line='functions.at:330'
-    at_desc='FUNCTION DAY-OF-INTEGER'
-    $at_quiet $ECHO_N "143: FUNCTION DAY-OF-INTEGER                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "143. functions.at:330: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15117,75 +12413,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:344: \${COMPILE} -o prog prog.cob"
-echo functions.at:344 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:344: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:344: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:344"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:344"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:345: ./prog"
+at_fn_check_prepare_trace "functions.at:345"
+( $at_check_trace; ./prog
+) >>"$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 "2000269
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:345"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:347: ./prog"
-echo functions.at:347 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "2000269
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:347: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_143
+#AT_START_144
+at_fn_group_banner 144 'functions.at:351' \
+  "FUNCTION DAY-TO-YYYYDDD" "                        "
+at_xfail=no
+(
+  $as_echo "144. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  144 ) # 144. functions.at:351: FUNCTION DAY-TO-YYYYDDD
-    at_setup_line='functions.at:351'
-    at_desc='FUNCTION DAY-TO-YYYYDDD'
-    $at_quiet $ECHO_N "144: FUNCTION DAY-TO-YYYYDDD                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "144. functions.at:351: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15199,75 +12470,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:365: \${COMPILE} -o prog prog.cob"
-echo functions.at:365 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:365: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:365: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:365"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:365"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:366: ./prog"
+at_fn_check_prepare_trace "functions.at:366"
+( $at_check_trace; ./prog
+) >>"$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 "01995005
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:366"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:368: ./prog"
-echo functions.at:368 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "01995005
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:368: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_144
+#AT_START_145
+at_fn_group_banner 145 'functions.at:372' \
+  "FUNCTION E" "                                     "
+at_xfail=no
+(
+  $as_echo "145. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  145 ) # 145. functions.at:372: FUNCTION E
-    at_setup_line='functions.at:372'
-    at_desc='FUNCTION E'
-    $at_quiet $ECHO_N "145: FUNCTION E                                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "145. functions.at:372: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15281,75 +12527,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:386: \${COMPILE} -o prog prog.cob"
-echo functions.at:386 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:386: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:386: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:386"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:386"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:387: ./prog"
+at_fn_check_prepare_trace "functions.at:387"
+( $at_check_trace; ./prog
+) >>"$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 "2.7182818284590452353602874713526625
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:387"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:389: ./prog"
-echo functions.at:389 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "2.7182818284590452353602874713526625
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:389: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_145
+#AT_START_146
+at_fn_group_banner 146 'functions.at:393' \
+  "FUNCTION EXCEPTION-FILE" "                        "
+at_xfail=no
+(
+  $as_echo "146. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  146 ) # 146. functions.at:393: FUNCTION EXCEPTION-FILE
-    at_setup_line='functions.at:393'
-    at_desc='FUNCTION EXCEPTION-FILE'
-    $at_quiet $ECHO_N "146: FUNCTION EXCEPTION-FILE                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "146. functions.at:393: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15373,75 +12594,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:417: \${COMPILE} -o prog prog.cob"
-echo functions.at:417 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:417: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:417: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:417"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:417"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:418: ./prog"
+at_fn_check_prepare_trace "functions.at:418"
+( $at_check_trace; ./prog
+) >>"$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 "35TEST-FILE
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:418"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:420: ./prog"
-echo functions.at:420 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "35TEST-FILE
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:420: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_146
+#AT_START_147
+at_fn_group_banner 147 'functions.at:424' \
+  "FUNCTION EXCEPTION-LOCATION" "                    "
+at_xfail=no
+(
+  $as_echo "147. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  147 ) # 147. functions.at:424: FUNCTION EXCEPTION-LOCATION
-    at_setup_line='functions.at:424'
-    at_desc='FUNCTION EXCEPTION-LOCATION'
-    $at_quiet $ECHO_N "147: FUNCTION EXCEPTION-LOCATION                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "147. functions.at:424: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15470,74 +12666,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:453: \${COMPILE} -debug -o prog prog.cob"
-echo functions.at:453 >$at_check_line_file
-( $at_traceon; ${COMPILE} -debug -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:453: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:453: \${COMPILE} -debug -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:453"
+( $at_check_trace; ${COMPILE} -debug -o prog prog.cob
+) >>"$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/functions.at:453"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:454: ./prog"
+at_fn_check_prepare_trace "functions.at:454"
+( $at_check_trace; ./prog
+) >>"$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 "prog; A00 OF A00-MAIN; 18" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:454"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:455: ./prog"
-echo functions.at:455 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "prog; A00 OF A00-MAIN; 18" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:455: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_147
+#AT_START_148
+at_fn_group_banner 148 'functions.at:459' \
+  "FUNCTION EXCEPTION-STATEMENT" "                   "
+at_xfail=no
+(
+  $as_echo "148. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  148 ) # 148. functions.at:459: FUNCTION EXCEPTION-STATEMENT
-    at_setup_line='functions.at:459'
-    at_desc='FUNCTION EXCEPTION-STATEMENT'
-    $at_quiet $ECHO_N "148: FUNCTION EXCEPTION-STATEMENT                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "148. functions.at:459: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15562,74 +12733,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:484: \${COMPILE} -debug -o prog prog.cob"
-echo functions.at:484 >$at_check_line_file
-( $at_traceon; ${COMPILE} -debug -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:484: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:484: \${COMPILE} -debug -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:484"
+( $at_check_trace; ${COMPILE} -debug -o prog prog.cob
+) >>"$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/functions.at:484"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:485: ./prog"
+at_fn_check_prepare_trace "functions.at:485"
+( $at_check_trace; ./prog
+) >>"$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 "OPEN                           " | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:485"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:486: ./prog"
-echo functions.at:486 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OPEN                           " | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:486: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_148
+#AT_START_149
+at_fn_group_banner 149 'functions.at:490' \
+  "FUNCTION EXCEPTION-STATUS" "                      "
+at_xfail=no
+(
+  $as_echo "149. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  149 ) # 149. functions.at:490: FUNCTION EXCEPTION-STATUS
-    at_setup_line='functions.at:490'
-    at_desc='FUNCTION EXCEPTION-STATUS'
-    $at_quiet $ECHO_N "149: FUNCTION EXCEPTION-STATUS                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "149. functions.at:490: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15654,74 +12800,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:515: \${COMPILE} -o prog prog.cob"
-echo functions.at:515 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:515: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:515: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:515"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:515"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:516: ./prog"
+at_fn_check_prepare_trace "functions.at:516"
+( $at_check_trace; ./prog
+) >>"$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 "EC-I-O-PERMANENT-ERROR         " | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:516"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:517: ./prog"
-echo functions.at:517 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "EC-I-O-PERMANENT-ERROR         " | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:517: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_149
+#AT_START_150
+at_fn_group_banner 150 'functions.at:521' \
+  "FUNCTION EXP" "                                   "
+at_xfail=no
+(
+  $as_echo "150. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  150 ) # 150. functions.at:521: FUNCTION EXP
-    at_setup_line='functions.at:521'
-    at_desc='FUNCTION EXP'
-    $at_quiet $ECHO_N "150: FUNCTION EXP                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "150. functions.at:521: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15743,75 +12864,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:543: \${COMPILE} -o prog prog.cob"
-echo functions.at:543 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:543: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:543: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:543"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:543"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:544: ./prog"
+at_fn_check_prepare_trace "functions.at:544"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:544"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:546: ./prog"
-echo functions.at:546 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:546: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_150
+#AT_START_151
+at_fn_group_banner 151 'functions.at:550' \
+  "FUNCTION FACTORIAL" "                             "
+at_xfail=no
+(
+  $as_echo "151. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  151 ) # 151. functions.at:550: FUNCTION FACTORIAL
-    at_setup_line='functions.at:550'
-    at_desc='FUNCTION FACTORIAL'
-    $at_quiet $ECHO_N "151: FUNCTION FACTORIAL                           $ECHO_C"
-    at_xfail=no
-    (
-      echo "151. functions.at:550: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15825,75 +12921,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:564: \${COMPILE} -o prog prog.cob"
-echo functions.at:564 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:564: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:564: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:564"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:564"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:565: ./prog"
+at_fn_check_prepare_trace "functions.at:565"
+( $at_check_trace; ./prog
+) >>"$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 "000000000000000720
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:565"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:567: ./prog"
-echo functions.at:567 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "000000000000000720
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:567: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_151
+#AT_START_152
+at_fn_group_banner 152 'functions.at:571' \
+  "FUNCTION FRACTION-PART" "                         "
+at_xfail=no
+(
+  $as_echo "152. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  152 ) # 152. functions.at:571: FUNCTION FRACTION-PART
-    at_setup_line='functions.at:571'
-    at_desc='FUNCTION FRACTION-PART'
-    $at_quiet $ECHO_N "152: FUNCTION FRACTION-PART                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "152. functions.at:571: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15909,76 +12980,51 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:587: \${COMPILE} -o prog prog.cob"
-echo functions.at:587 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:587: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:587: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:587"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:587"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "functions.at:591: ./prog"
-echo functions.at:591 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "+.123450000000000000
+{ set +x
+$as_echo "$at_srcdir/functions.at:588: ./prog"
+at_fn_check_prepare_trace "functions.at:588"
+( $at_check_trace; ./prog
+) >>"$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 "+.123450000000000000
 -.123450000000000000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:591: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:588"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_152
+#AT_START_153
+at_fn_group_banner 153 'functions.at:595' \
+  "FUNCTION INTEGER" "                               "
+at_xfail=no
+(
+  $as_echo "153. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  153 ) # 153. functions.at:595: FUNCTION INTEGER
-    at_setup_line='functions.at:595'
-    at_desc='FUNCTION INTEGER'
-    $at_quiet $ECHO_N "153: FUNCTION INTEGER                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "153. functions.at:595: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -15993,75 +13039,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:610: \${COMPILE} -o prog prog.cob"
-echo functions.at:610 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:610: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:610: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:610"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:610"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:611: ./prog"
+at_fn_check_prepare_trace "functions.at:611"
+( $at_check_trace; ./prog
+) >>"$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 "-000000000000000002
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:611"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:613: ./prog"
-echo functions.at:613 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "-000000000000000002
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:613: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_153
+#AT_START_154
+at_fn_group_banner 154 'functions.at:617' \
+  "FUNCTION INTEGER-OF-DATE" "                       "
+at_xfail=no
+(
+  $as_echo "154. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  154 ) # 154. functions.at:617: FUNCTION INTEGER-OF-DATE
-    at_setup_line='functions.at:617'
-    at_desc='FUNCTION INTEGER-OF-DATE'
-    $at_quiet $ECHO_N "154: FUNCTION INTEGER-OF-DATE                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "154. functions.at:617: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -16075,75 +13096,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:631: \${COMPILE} -o prog prog.cob"
-echo functions.at:631 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:631: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:631: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:631"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:631"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:632: ./prog"
+at_fn_check_prepare_trace "functions.at:632"
+( $at_check_trace; ./prog
+) >>"$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 "00146000
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:632"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:634: ./prog"
-echo functions.at:634 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00146000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:634: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_154
+#AT_START_155
+at_fn_group_banner 155 'functions.at:638' \
+  "FUNCTION INTEGER-OF-DAY" "                        "
+at_xfail=no
+(
+  $as_echo "155. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  155 ) # 155. functions.at:638: FUNCTION INTEGER-OF-DAY
-    at_setup_line='functions.at:638'
-    at_desc='FUNCTION INTEGER-OF-DAY'
-    $at_quiet $ECHO_N "155: FUNCTION INTEGER-OF-DAY                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "155. functions.at:638: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -16157,75 +13153,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:652: \${COMPILE} -o prog prog.cob"
-echo functions.at:652 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:652: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:652: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:652"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:652"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:653: ./prog"
+at_fn_check_prepare_trace "functions.at:653"
+( $at_check_trace; ./prog
+) >>"$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 "00146000
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:653"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:655: ./prog"
-echo functions.at:655 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00146000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:655: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_155
+#AT_START_156
+at_fn_group_banner 156 'functions.at:659' \
+  "FUNCTION INTEGER-PART" "                          "
+at_xfail=no
+(
+  $as_echo "156. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  156 ) # 156. functions.at:659: FUNCTION INTEGER-PART
-    at_setup_line='functions.at:659'
-    at_desc='FUNCTION INTEGER-PART'
-    $at_quiet $ECHO_N "156: FUNCTION INTEGER-PART                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "156. functions.at:659: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -16240,75 +13211,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:674: \${COMPILE} -o prog prog.cob"
-echo functions.at:674 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:674: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:674: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:674"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:674"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:675: ./prog"
+at_fn_check_prepare_trace "functions.at:675"
+( $at_check_trace; ./prog
+) >>"$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 "-000000000000000001
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:675"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:677: ./prog"
-echo functions.at:677 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "-000000000000000001
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:677: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_156
+#AT_START_157
+at_fn_group_banner 157 'functions.at:681' \
+  "FUNCTION LENGTH" "                                "
+at_xfail=no
+(
+  $as_echo "157. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  157 ) # 157. functions.at:681: FUNCTION LENGTH
-    at_setup_line='functions.at:681'
-    at_desc='FUNCTION LENGTH'
-    $at_quiet $ECHO_N "157: FUNCTION LENGTH                              $ECHO_C"
-    at_xfail=no
-    (
-      echo "157. functions.at:681: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -16323,75 +13269,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:696: \${COMPILE} -o prog prog.cob"
-echo functions.at:696 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:696: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:696: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:696"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:696"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:697: ./prog"
+at_fn_check_prepare_trace "functions.at:697"
+( $at_check_trace; ./prog
+) >>"$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 "8
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:697"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:699: ./prog"
-echo functions.at:699 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "8
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:699: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_157
+#AT_START_158
+at_fn_group_banner 158 'functions.at:703' \
+  "FUNCTION LOCALE-DATE" "                           "
+at_xfail=no
+(
+  $as_echo "158. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  158 ) # 158. functions.at:703: FUNCTION LOCALE-DATE
-    at_setup_line='functions.at:703'
-    at_desc='FUNCTION LOCALE-DATE'
-    $at_quiet $ECHO_N "158: FUNCTION LOCALE-DATE                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "158. functions.at:703: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -16409,75 +13330,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:721: \${COMPILE} -o prog prog.cob"
-echo functions.at:721 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:721: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:721: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:721"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:721"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:722: ./prog"
+at_fn_check_prepare_trace "functions.at:722"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:722"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:724: ./prog"
-echo functions.at:724 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:724: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_158
+#AT_START_159
+at_fn_group_banner 159 'functions.at:728' \
+  "FUNCTION LOCALE-TIME" "                           "
+at_xfail=no
+(
+  $as_echo "159. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  159 ) # 159. functions.at:728: FUNCTION LOCALE-TIME
-    at_setup_line='functions.at:728'
-    at_desc='FUNCTION LOCALE-TIME'
-    $at_quiet $ECHO_N "159: FUNCTION LOCALE-TIME                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "159. functions.at:728: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -16495,75 +13391,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:746: \${COMPILE} -o prog prog.cob"
-echo functions.at:746 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:746: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:746: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:746"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:746"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:747: ./prog"
+at_fn_check_prepare_trace "functions.at:747"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:747"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:749: ./prog"
-echo functions.at:749 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:749: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_159
+#AT_START_160
+at_fn_group_banner 160 'functions.at:753' \
+  "FUNCTION LOCALE-TIME-FROM-SECONDS" "              "
+at_xfail=no
+(
+  $as_echo "160. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  160 ) # 160. functions.at:753: FUNCTION LOCALE-TIME-FROM-SECONDS
-    at_setup_line='functions.at:753'
-    at_desc='FUNCTION LOCALE-TIME-FROM-SECONDS'
-    $at_quiet $ECHO_N "160: FUNCTION LOCALE-TIME-FROM-SECONDS            $ECHO_C"
-    at_xfail=no
-    (
-      echo "160. functions.at:753: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -16581,75 +13452,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:771: \${COMPILE} -o prog prog.cob"
-echo functions.at:771 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:771: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:771: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:771"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:771"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:772: ./prog"
+at_fn_check_prepare_trace "functions.at:772"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:772"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:774: ./prog"
-echo functions.at:774 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:774: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_160
+#AT_START_161
+at_fn_group_banner 161 'functions.at:778' \
+  "FUNCTION LOG" "                                   "
+at_xfail=no
+(
+  $as_echo "161. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  161 ) # 161. functions.at:778: FUNCTION LOG
-    at_setup_line='functions.at:778'
-    at_desc='FUNCTION LOG'
-    $at_quiet $ECHO_N "161: FUNCTION LOG                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "161. functions.at:778: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -16672,75 +13518,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:801: \${COMPILE} -o prog prog.cob"
-echo functions.at:801 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:801: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:801: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:801"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:801"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:802: ./prog"
+at_fn_check_prepare_trace "functions.at:802"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:802"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:804: ./prog"
-echo functions.at:804 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:804: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_161
+#AT_START_162
+at_fn_group_banner 162 'functions.at:808' \
+  "FUNCTION LOG10" "                                 "
+at_xfail=no
+(
+  $as_echo "162. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  162 ) # 162. functions.at:808: FUNCTION LOG10
-    at_setup_line='functions.at:808'
-    at_desc='FUNCTION LOG10'
-    $at_quiet $ECHO_N "162: FUNCTION LOG10                               $ECHO_C"
-    at_xfail=no
-    (
-      echo "162. functions.at:808: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -16763,75 +13584,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:831: \${COMPILE} -o prog prog.cob"
-echo functions.at:831 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:831: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:831: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:831"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:831"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:832: ./prog"
+at_fn_check_prepare_trace "functions.at:832"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:832"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:834: ./prog"
-echo functions.at:834 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:834: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_162
+#AT_START_163
+at_fn_group_banner 163 'functions.at:838' \
+  "FUNCTION LOWER-CASE" "                            "
+at_xfail=no
+(
+  $as_echo "163. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  163 ) # 163. functions.at:838: FUNCTION LOWER-CASE
-    at_setup_line='functions.at:838'
-    at_desc='FUNCTION LOWER-CASE'
-    $at_quiet $ECHO_N "163: FUNCTION LOWER-CASE                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "163. functions.at:838: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -16846,75 +13642,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:853: \${COMPILE} -o prog prog.cob"
-echo functions.at:853 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:853: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:853: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:853"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:853"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:854: ./prog"
+at_fn_check_prepare_trace "functions.at:854"
+( $at_check_trace; ./prog
+) >>"$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 "a#b.c%d+e\$
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:854"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:856: ./prog"
-echo functions.at:856 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "a#b.c%d+e\$
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:856: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_163
+#AT_START_164
+at_fn_group_banner 164 'functions.at:860' \
+  "FUNCTION LOWER-CASE with reference modding" "     "
+at_xfail=no
+(
+  $as_echo "164. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  164 ) # 164. functions.at:860: FUNCTION LOWER-CASE with reference modding
-    at_setup_line='functions.at:860'
-    at_desc='FUNCTION LOWER-CASE with reference modding'
-    $at_quiet $ECHO_N "164: FUNCTION LOWER-CASE with reference modding   $ECHO_C"
-    at_xfail=no
-    (
-      echo "164. functions.at:860: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -16929,75 +13700,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:875: \${COMPILE} -o prog prog.cob"
-echo functions.at:875 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:875: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:875: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:875"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:875"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:876: ./prog"
+at_fn_check_prepare_trace "functions.at:876"
+( $at_check_trace; ./prog
+) >>"$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 "a#b
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:876"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:878: ./prog"
-echo functions.at:878 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "a#b
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:878: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_164
+#AT_START_165
+at_fn_group_banner 165 'functions.at:882' \
+  "FUNCTION MAX" "                                   "
+at_xfail=no
+(
+  $as_echo "165. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  165 ) # 165. functions.at:882: FUNCTION MAX
-    at_setup_line='functions.at:882'
-    at_desc='FUNCTION MAX'
-    $at_quiet $ECHO_N "165: FUNCTION MAX                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "165. functions.at:882: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17011,75 +13757,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:896: \${COMPILE} -o prog prog.cob"
-echo functions.at:896 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:896: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:896: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:896"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:896"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:897: ./prog"
+at_fn_check_prepare_trace "functions.at:897"
+( $at_check_trace; ./prog
+) >>"$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 "8
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:897"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:899: ./prog"
-echo functions.at:899 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "8
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:899: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_165
+#AT_START_166
+at_fn_group_banner 166 'functions.at:903' \
+  "FUNCTION MEAN" "                                  "
+at_xfail=no
+(
+  $as_echo "166. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  166 ) # 166. functions.at:903: FUNCTION MEAN
-    at_setup_line='functions.at:903'
-    at_desc='FUNCTION MEAN'
-    $at_quiet $ECHO_N "166: FUNCTION MEAN                                $ECHO_C"
-    at_xfail=no
-    (
-      echo "166. functions.at:903: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17093,75 +13814,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:917: \${COMPILE} -o prog prog.cob"
-echo functions.at:917 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:917: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:917: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:917"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:917"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:918: ./prog"
+at_fn_check_prepare_trace "functions.at:918"
+( $at_check_trace; ./prog
+) >>"$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.20000000000000000
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:918"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:920: ./prog"
-echo functions.at:920 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "-1.20000000000000000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:920: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_166
+#AT_START_167
+at_fn_group_banner 167 'functions.at:924' \
+  "FUNCTION MEDIAN" "                                "
+at_xfail=no
+(
+  $as_echo "167. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  167 ) # 167. functions.at:924: FUNCTION MEDIAN
-    at_setup_line='functions.at:924'
-    at_desc='FUNCTION MEDIAN'
-    $at_quiet $ECHO_N "167: FUNCTION MEDIAN                              $ECHO_C"
-    at_xfail=no
-    (
-      echo "167. functions.at:924: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17175,75 +13871,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:938: \${COMPILE} -o prog prog.cob"
-echo functions.at:938 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:938: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:938: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:938"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:938"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:939: ./prog"
+at_fn_check_prepare_trace "functions.at:939"
+( $at_check_trace; ./prog
+) >>"$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 "0
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:939"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:941: ./prog"
-echo functions.at:941 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:941: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_167
+#AT_START_168
+at_fn_group_banner 168 'functions.at:945' \
+  "FUNCTION MIDRANGE" "                              "
+at_xfail=no
+(
+  $as_echo "168. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  168 ) # 168. functions.at:945: FUNCTION MIDRANGE
-    at_setup_line='functions.at:945'
-    at_desc='FUNCTION MIDRANGE'
-    $at_quiet $ECHO_N "168: FUNCTION MIDRANGE                            $ECHO_C"
-    at_xfail=no
-    (
-      echo "168. functions.at:945: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17257,75 +13928,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:959: \${COMPILE} -o prog prog.cob"
-echo functions.at:959 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:959: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:959: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:959"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:959"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:960: ./prog"
+at_fn_check_prepare_trace "functions.at:960"
+( $at_check_trace; ./prog
+) >>"$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 "-3.000000000000000000
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:960"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:962: ./prog"
-echo functions.at:962 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "-3.000000000000000000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:962: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_168
+#AT_START_169
+at_fn_group_banner 169 'functions.at:966' \
+  "FUNCTION MIN" "                                   "
+at_xfail=no
+(
+  $as_echo "169. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  169 ) # 169. functions.at:966: FUNCTION MIN
-    at_setup_line='functions.at:966'
-    at_desc='FUNCTION MIN'
-    $at_quiet $ECHO_N "169: FUNCTION MIN                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "169. functions.at:966: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17339,75 +13985,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:980: \${COMPILE} -o prog prog.cob"
-echo functions.at:980 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:980: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:980: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:980"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:980"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:981: ./prog"
+at_fn_check_prepare_trace "functions.at:981"
+( $at_check_trace; ./prog
+) >>"$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 "-14
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:981"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:983: ./prog"
-echo functions.at:983 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "-14
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:983: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_169
+#AT_START_170
+at_fn_group_banner 170 'functions.at:987' \
+  "FUNCTION MOD" "                                   "
+at_xfail=no
+(
+  $as_echo "170. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  170 ) # 170. functions.at:987: FUNCTION MOD
-    at_setup_line='functions.at:987'
-    at_desc='FUNCTION MOD'
-    $at_quiet $ECHO_N "170: FUNCTION MOD                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "170. functions.at:987: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17421,75 +14042,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1001: \${COMPILE} -o prog prog.cob"
-echo functions.at:1001 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1001: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1001: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1001"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1001"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1002: ./prog"
+at_fn_check_prepare_trace "functions.at:1002"
+( $at_check_trace; ./prog
+) >>"$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 "+000000000000000004
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1002"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1004: ./prog"
-echo functions.at:1004 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "+000000000000000004
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1004: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_170
+#AT_START_171
+at_fn_group_banner 171 'functions.at:1008' \
+  "FUNCTION NUMVAL" "                                "
+at_xfail=no
+(
+  $as_echo "171. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  171 ) # 171. functions.at:1008: FUNCTION NUMVAL
-    at_setup_line='functions.at:1008'
-    at_desc='FUNCTION NUMVAL'
-    $at_quiet $ECHO_N "171: FUNCTION NUMVAL                              $ECHO_C"
-    at_xfail=no
-    (
-      echo "171. functions.at:1008: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17504,75 +14100,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1023: \${COMPILE} -o prog prog.cob"
-echo functions.at:1023 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1023: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1023: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1023"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1023"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1024: ./prog"
+at_fn_check_prepare_trace "functions.at:1024"
+( $at_check_trace; ./prog
+) >>"$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 "-00000000009876.1234
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1024"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1026: ./prog"
-echo functions.at:1026 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "-00000000009876.1234
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1026: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_171
+#AT_START_172
+at_fn_group_banner 172 'functions.at:1030' \
+  "FUNCTION NUMVAL-C" "                              "
+at_xfail=no
+(
+  $as_echo "172. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  172 ) # 172. functions.at:1030: FUNCTION NUMVAL-C
-    at_setup_line='functions.at:1030'
-    at_desc='FUNCTION NUMVAL-C'
-    $at_quiet $ECHO_N "172: FUNCTION NUMVAL-C                            $ECHO_C"
-    at_xfail=no
-    (
-      echo "172. functions.at:1030: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17587,75 +14158,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1045: \${COMPILE} -o prog prog.cob"
-echo functions.at:1045 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1045: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1045: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1045"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1045"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1046: ./prog"
+at_fn_check_prepare_trace "functions.at:1046"
+( $at_check_trace; ./prog
+) >>"$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 "-00000000009876.1234
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1046"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1048: ./prog"
-echo functions.at:1048 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "-00000000009876.1234
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1048: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_172
+#AT_START_173
+at_fn_group_banner 173 'functions.at:1052' \
+  "FUNCTION ORD" "                                   "
+at_xfail=no
+(
+  $as_echo "173. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  173 ) # 173. functions.at:1052: FUNCTION ORD
-    at_setup_line='functions.at:1052'
-    at_desc='FUNCTION ORD'
-    $at_quiet $ECHO_N "173: FUNCTION ORD                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "173. functions.at:1052: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17669,75 +14215,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1066: \${COMPILE} -o prog prog.cob"
-echo functions.at:1066 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1066: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1066: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1066"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1066"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1067: ./prog"
+at_fn_check_prepare_trace "functions.at:1067"
+( $at_check_trace; ./prog
+) >>"$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 "00000108
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1067"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1069: ./prog"
-echo functions.at:1069 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00000108
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1069: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_173
+#AT_START_174
+at_fn_group_banner 174 'functions.at:1073' \
+  "FUNCTION ORD-MAX" "                               "
+at_xfail=no
+(
+  $as_echo "174. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  174 ) # 174. functions.at:1073: FUNCTION ORD-MAX
-    at_setup_line='functions.at:1073'
-    at_desc='FUNCTION ORD-MAX'
-    $at_quiet $ECHO_N "174: FUNCTION ORD-MAX                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "174. functions.at:1073: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17751,75 +14272,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1087: \${COMPILE} -o prog prog.cob"
-echo functions.at:1087 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1087: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1087: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1087"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1087"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1088: ./prog"
+at_fn_check_prepare_trace "functions.at:1088"
+( $at_check_trace; ./prog
+) >>"$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 "00000004
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1088"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1090: ./prog"
-echo functions.at:1090 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00000004
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1090: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_174
+#AT_START_175
+at_fn_group_banner 175 'functions.at:1094' \
+  "FUNCTION ORD-MIN" "                               "
+at_xfail=no
+(
+  $as_echo "175. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  175 ) # 175. functions.at:1094: FUNCTION ORD-MIN
-    at_setup_line='functions.at:1094'
-    at_desc='FUNCTION ORD-MIN'
-    $at_quiet $ECHO_N "175: FUNCTION ORD-MIN                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "175. functions.at:1094: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17833,75 +14329,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1108: \${COMPILE} -o prog prog.cob"
-echo functions.at:1108 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1108: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1108: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1108"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1108"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1109: ./prog"
+at_fn_check_prepare_trace "functions.at:1109"
+( $at_check_trace; ./prog
+) >>"$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 "00000002
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1109"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1111: ./prog"
-echo functions.at:1111 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00000002
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1111: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_175
+#AT_START_176
+at_fn_group_banner 176 'functions.at:1115' \
+  "FUNCTION PI" "                                    "
+at_xfail=no
+(
+  $as_echo "176. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  176 ) # 176. functions.at:1115: FUNCTION PI
-    at_setup_line='functions.at:1115'
-    at_desc='FUNCTION PI'
-    $at_quiet $ECHO_N "176: FUNCTION PI                                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "176. functions.at:1115: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17915,75 +14386,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1129: \${COMPILE} -o prog prog.cob"
-echo functions.at:1129 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1129: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1129: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1129"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1129"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1130: ./prog"
+at_fn_check_prepare_trace "functions.at:1130"
+( $at_check_trace; ./prog
+) >>"$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 "3.1415926535897932384626433832795029
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1130"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1132: ./prog"
-echo functions.at:1132 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "3.1415926535897932384626433832795029
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1132: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_176
+#AT_START_177
+at_fn_group_banner 177 'functions.at:1136' \
+  "FUNCTION PRESENT-VALUE" "                         "
+at_xfail=no
+(
+  $as_echo "177. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  177 ) # 177. functions.at:1136: FUNCTION PRESENT-VALUE
-    at_setup_line='functions.at:1136'
-    at_desc='FUNCTION PRESENT-VALUE'
-    $at_quiet $ECHO_N "177: FUNCTION PRESENT-VALUE                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "177. functions.at:1136: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -17997,75 +14443,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1150: \${COMPILE} -o prog prog.cob"
-echo functions.at:1150 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1150: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1150: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1150"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1150"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1151: ./prog"
+at_fn_check_prepare_trace "functions.at:1151"
+( $at_check_trace; ./prog
+) >>"$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 "0.562500000000000000
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1151"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1153: ./prog"
-echo functions.at:1153 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "0.562500000000000000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1153: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_177
+#AT_START_178
+at_fn_group_banner 178 'functions.at:1157' \
+  "FUNCTION RANGE" "                                 "
+at_xfail=no
+(
+  $as_echo "178. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  178 ) # 178. functions.at:1157: FUNCTION RANGE
-    at_setup_line='functions.at:1157'
-    at_desc='FUNCTION RANGE'
-    $at_quiet $ECHO_N "178: FUNCTION RANGE                               $ECHO_C"
-    at_xfail=no
-    (
-      echo "178. functions.at:1157: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -18079,75 +14500,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1171: \${COMPILE} -o prog prog.cob"
-echo functions.at:1171 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1171: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1171: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1171"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1171"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1172: ./prog"
+at_fn_check_prepare_trace "functions.at:1172"
+( $at_check_trace; ./prog
+) >>"$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 "+000000000000000022
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1172"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1174: ./prog"
-echo functions.at:1174 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "+000000000000000022
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1174: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_178
+#AT_START_179
+at_fn_group_banner 179 'functions.at:1178' \
+  "FUNCTION REM" "                                   "
+at_xfail=no
+(
+  $as_echo "179. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  179 ) # 179. functions.at:1178: FUNCTION REM
-    at_setup_line='functions.at:1178'
-    at_desc='FUNCTION REM'
-    $at_quiet $ECHO_N "179: FUNCTION REM                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "179. functions.at:1178: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -18161,75 +14557,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1192: \${COMPILE} -o prog prog.cob"
-echo functions.at:1192 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1192: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1192: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1192"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1192"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1193: ./prog"
+at_fn_check_prepare_trace "functions.at:1193"
+( $at_check_trace; ./prog
+) >>"$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 "-000000000000000001
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1193"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1195: ./prog"
-echo functions.at:1195 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "-000000000000000001
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1195: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_179
+#AT_START_180
+at_fn_group_banner 180 'functions.at:1199' \
+  "FUNCTION REVERSE" "                               "
+at_xfail=no
+(
+  $as_echo "180. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  180 ) # 180. functions.at:1199: FUNCTION REVERSE
-    at_setup_line='functions.at:1199'
-    at_desc='FUNCTION REVERSE'
-    $at_quiet $ECHO_N "180: FUNCTION REVERSE                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "180. functions.at:1199: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -18244,75 +14615,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1214: \${COMPILE} -o prog prog.cob"
-echo functions.at:1214 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1214: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1214: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1214"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1214"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1215: ./prog"
+at_fn_check_prepare_trace "functions.at:1215"
+( $at_check_trace; ./prog
+) >>"$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 "\$E+D%C.B#A
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1215"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1217: ./prog"
-echo functions.at:1217 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "\$E+D%C.B#A
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1217: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_180
+#AT_START_181
+at_fn_group_banner 181 'functions.at:1221' \
+  "FUNCTION REVERSE with reference modding" "        "
+at_xfail=no
+(
+  $as_echo "181. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  181 ) # 181. functions.at:1221: FUNCTION REVERSE with reference modding
-    at_setup_line='functions.at:1221'
-    at_desc='FUNCTION REVERSE with reference modding'
-    $at_quiet $ECHO_N "181: FUNCTION REVERSE with reference modding      $ECHO_C"
-    at_xfail=no
-    (
-      echo "181. functions.at:1221: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -18327,75 +14673,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1236: \${COMPILE} -o prog prog.cob"
-echo functions.at:1236 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1236: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1236: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1236"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1236"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1237: ./prog"
+at_fn_check_prepare_trace "functions.at:1237"
+( $at_check_trace; ./prog
+) >>"$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 "\$E+D
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1237"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1239: ./prog"
-echo functions.at:1239 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "\$E+D
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1239: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_181
+#AT_START_182
+at_fn_group_banner 182 'functions.at:1243' \
+  "FUNCTION SECONDS-FROM-FORMATTED-TIME" "           "
+at_xfail=no
+(
+  $as_echo "182. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  182 ) # 182. functions.at:1243: FUNCTION SECONDS-FROM-FORMATTED-TIME
-    at_setup_line='functions.at:1243'
-    at_desc='FUNCTION SECONDS-FROM-FORMATTED-TIME'
-    $at_quiet $ECHO_N "182: FUNCTION SECONDS-FROM-FORMATTED-TIME         $ECHO_C"
-    at_xfail=no
-    (
-      echo "182. functions.at:1243: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -18418,75 +14739,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1266: \${COMPILE} -o prog prog.cob"
-echo functions.at:1266 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1266: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1266: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1266"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1266"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1267: ./prog"
+at_fn_check_prepare_trace "functions.at:1267"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1267"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1269: ./prog"
-echo functions.at:1269 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1269: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_182
+#AT_START_183
+at_fn_group_banner 183 'functions.at:1273' \
+  "FUNCTION SECONDS-PAST-MIDNIGHT" "                 "
+at_xfail=no
+(
+  $as_echo "183. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  183 ) # 183. functions.at:1273: FUNCTION SECONDS-PAST-MIDNIGHT
-    at_setup_line='functions.at:1273'
-    at_desc='FUNCTION SECONDS-PAST-MIDNIGHT'
-    $at_quiet $ECHO_N "183: FUNCTION SECONDS-PAST-MIDNIGHT               $ECHO_C"
-    at_xfail=no
-    (
-      echo "183. functions.at:1273: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -18507,75 +14803,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1294: \${COMPILE} -o prog prog.cob"
-echo functions.at:1294 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1294: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1294: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1294"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1294"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1295: ./prog"
+at_fn_check_prepare_trace "functions.at:1295"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1295"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1297: ./prog"
-echo functions.at:1297 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1297: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_183
+#AT_START_184
+at_fn_group_banner 184 'functions.at:1301' \
+  "FUNCTION SIGN" "                                  "
+at_xfail=no
+(
+  $as_echo "184. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  184 ) # 184. functions.at:1301: FUNCTION SIGN
-    at_setup_line='functions.at:1301'
-    at_desc='FUNCTION SIGN'
-    $at_quiet $ECHO_N "184: FUNCTION SIGN                                $ECHO_C"
-    at_xfail=no
-    (
-      echo "184. functions.at:1301: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -18595,78 +14866,53 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1321: \${COMPILE} -o prog prog.cob"
-echo functions.at:1321 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1321: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1321: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1321"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1321"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "functions.at:1327: ./prog"
-echo functions.at:1327 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "+00000001
+{ set +x
+$as_echo "$at_srcdir/functions.at:1322: ./prog"
+at_fn_check_prepare_trace "functions.at:1322"
+( $at_check_trace; ./prog
+) >>"$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 "+00000001
 +00000000
 +00000000
 -00000001
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1327: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1322"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_184
+#AT_START_185
+at_fn_group_banner 185 'functions.at:1331' \
+  "FUNCTION SIN" "                                   "
+at_xfail=no
+(
+  $as_echo "185. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  185 ) # 185. functions.at:1331: FUNCTION SIN
-    at_setup_line='functions.at:1331'
-    at_desc='FUNCTION SIN'
-    $at_quiet $ECHO_N "185: FUNCTION SIN                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "185. functions.at:1331: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -18689,75 +14935,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1354: \${COMPILE} -o prog prog.cob"
-echo functions.at:1354 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1354: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1354: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1354"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1354"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1355: ./prog"
+at_fn_check_prepare_trace "functions.at:1355"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1355"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1357: ./prog"
-echo functions.at:1357 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1357: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_185
+#AT_START_186
+at_fn_group_banner 186 'functions.at:1361' \
+  "FUNCTION SQRT" "                                  "
+at_xfail=no
+(
+  $as_echo "186. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  186 ) # 186. functions.at:1361: FUNCTION SQRT
-    at_setup_line='functions.at:1361'
-    at_desc='FUNCTION SQRT'
-    $at_quiet $ECHO_N "186: FUNCTION SQRT                                $ECHO_C"
-    at_xfail=no
-    (
-      echo "186. functions.at:1361: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -18780,75 +15001,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1384: \${COMPILE} -o prog prog.cob"
-echo functions.at:1384 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1384: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1384: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1384"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1384"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1385: ./prog"
+at_fn_check_prepare_trace "functions.at:1385"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1385"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1387: ./prog"
-echo functions.at:1387 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1387: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_186
+#AT_START_187
+at_fn_group_banner 187 'functions.at:1391' \
+  "FUNCTION STANDARD-DEVIATION" "                    "
+at_xfail=no
+(
+  $as_echo "187. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  187 ) # 187. functions.at:1391: FUNCTION STANDARD-DEVIATION
-    at_setup_line='functions.at:1391'
-    at_desc='FUNCTION STANDARD-DEVIATION'
-    $at_quiet $ECHO_N "187: FUNCTION STANDARD-DEVIATION                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "187. functions.at:1391: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -18870,75 +15066,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1413: \${COMPILE} -o prog prog.cob"
-echo functions.at:1413 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1413: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1413: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1413"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1413"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1414: ./prog"
+at_fn_check_prepare_trace "functions.at:1414"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1414"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1416: ./prog"
-echo functions.at:1416 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1416: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_187
+#AT_START_188
+at_fn_group_banner 188 'functions.at:1420' \
+  "FUNCTION STORED-CHAR-LENGTH" "                    "
+at_xfail=no
+(
+  $as_echo "188. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  188 ) # 188. functions.at:1420: FUNCTION STORED-CHAR-LENGTH
-    at_setup_line='functions.at:1420'
-    at_desc='FUNCTION STORED-CHAR-LENGTH'
-    $at_quiet $ECHO_N "188: FUNCTION STORED-CHAR-LENGTH                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "188. functions.at:1420: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -18954,75 +15125,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1436: \${COMPILE} -o prog prog.cob"
-echo functions.at:1436 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1436: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1436: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1436"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1436"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1437: ./prog"
+at_fn_check_prepare_trace "functions.at:1437"
+( $at_check_trace; ./prog
+) >>"$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 "00000012
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1437"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1439: ./prog"
-echo functions.at:1439 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "00000012
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1439: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_188
+#AT_START_189
+at_fn_group_banner 189 'functions.at:1443' \
+  "FUNCTION SUBSTITUTE" "                            "
+at_xfail=no
+(
+  $as_echo "189. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  189 ) # 189. functions.at:1443: FUNCTION SUBSTITUTE
-    at_setup_line='functions.at:1443'
-    at_desc='FUNCTION SUBSTITUTE'
-    $at_quiet $ECHO_N "189: FUNCTION SUBSTITUTE                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "189. functions.at:1443: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -19038,75 +15184,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1459: \${COMPILE} -o prog prog.cob"
-echo functions.at:1459 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1459: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1459: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1459"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1459"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1460: ./prog"
+at_fn_check_prepare_trace "functions.at:1460"
+( $at_check_trace; ./prog
+) >>"$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 "zz1114446665defxxzz
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1460"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1462: ./prog"
-echo functions.at:1462 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "zz1114446665defxxzz
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1462: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_189
+#AT_START_190
+at_fn_group_banner 190 'functions.at:1466' \
+  "FUNCTION SUBSTITUTE with reference modding" "     "
+at_xfail=no
+(
+  $as_echo "190. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  190 ) # 190. functions.at:1466: FUNCTION SUBSTITUTE with reference modding
-    at_setup_line='functions.at:1466'
-    at_desc='FUNCTION SUBSTITUTE with reference modding'
-    $at_quiet $ECHO_N "190: FUNCTION SUBSTITUTE with reference modding   $ECHO_C"
-    at_xfail=no
-    (
-      echo "190. functions.at:1466: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -19123,75 +15244,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1483: \${COMPILE} -o prog prog.cob"
-echo functions.at:1483 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1483: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1483: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1483"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1483"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1484: ./prog"
+at_fn_check_prepare_trace "functions.at:1484"
+( $at_check_trace; ./prog
+) >>"$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 "z11144466
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1484"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1486: ./prog"
-echo functions.at:1486 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "z11144466
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1486: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_190
+#AT_START_191
+at_fn_group_banner 191 'functions.at:1490' \
+  "FUNCTION SUBSTITUTE-CASE" "                       "
+at_xfail=no
+(
+  $as_echo "191. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  191 ) # 191. functions.at:1490: FUNCTION SUBSTITUTE-CASE
-    at_setup_line='functions.at:1490'
-    at_desc='FUNCTION SUBSTITUTE-CASE'
-    $at_quiet $ECHO_N "191: FUNCTION SUBSTITUTE-CASE                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "191. functions.at:1490: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -19207,75 +15303,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1506: \${COMPILE} -o prog prog.cob"
-echo functions.at:1506 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1506: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1506: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1506"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1506"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1507: ./prog"
+at_fn_check_prepare_trace "functions.at:1507"
+( $at_check_trace; ./prog
+) >>"$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 "zz1114446665defxxzz
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1507"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1509: ./prog"
-echo functions.at:1509 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "zz1114446665defxxzz
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1509: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_191
+#AT_START_192
+at_fn_group_banner 192 'functions.at:1513' \
+  "FUNCTION SUBSTITUTE-CASE with reference mod" "    "
+at_xfail=no
+(
+  $as_echo "192. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  192 ) # 192. functions.at:1513: FUNCTION SUBSTITUTE-CASE with reference mod
-    at_setup_line='functions.at:1513'
-    at_desc='FUNCTION SUBSTITUTE-CASE with reference mod'
-    $at_quiet $ECHO_N "192: FUNCTION SUBSTITUTE-CASE with reference mod  $ECHO_C"
-    at_xfail=no
-    (
-      echo "192. functions.at:1513: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -19292,75 +15363,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1530: \${COMPILE} -o prog prog.cob"
-echo functions.at:1530 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1530: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1530: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1530"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1530"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1531: ./prog"
+at_fn_check_prepare_trace "functions.at:1531"
+( $at_check_trace; ./prog
+) >>"$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 "z11144466
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1531"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1533: ./prog"
-echo functions.at:1533 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "z11144466
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1533: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_192
+#AT_START_193
+at_fn_group_banner 193 'functions.at:1537' \
+  "FUNCTION TAN" "                                   "
+at_xfail=no
+(
+  $as_echo "193. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  193 ) # 193. functions.at:1537: FUNCTION TAN
-    at_setup_line='functions.at:1537'
-    at_desc='FUNCTION TAN'
-    $at_quiet $ECHO_N "193: FUNCTION TAN                                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "193. functions.at:1537: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -19383,75 +15429,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1560: \${COMPILE} -o prog prog.cob"
-echo functions.at:1560 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1560: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1560: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1560"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1560"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1561: ./prog"
+at_fn_check_prepare_trace "functions.at:1561"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1561"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1563: ./prog"
-echo functions.at:1563 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1563: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_193
+#AT_START_194
+at_fn_group_banner 194 'functions.at:1567' \
+  "FUNCTION TRIM" "                                  "
+at_xfail=no
+(
+  $as_echo "194. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  194 ) # 194. functions.at:1567: FUNCTION TRIM
-    at_setup_line='functions.at:1567'
-    at_desc='FUNCTION TRIM'
-    $at_quiet $ECHO_N "194: FUNCTION TRIM                                $ECHO_C"
-    at_xfail=no
-    (
-      echo "194. functions.at:1567: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -19468,76 +15489,51 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1584: \${COMPILE} -o prog prog.cob"
-echo functions.at:1584 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1584: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1584: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1584"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1584"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "functions.at:1588: ./prog"
-echo functions.at:1588 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "a#b.c%d+e\$
+{ set +x
+$as_echo "$at_srcdir/functions.at:1585: ./prog"
+at_fn_check_prepare_trace "functions.at:1585"
+( $at_check_trace; ./prog
+) >>"$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 "a#b.c%d+e\$
  a#b.c%d+e\$
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1588: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1585"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_194
+#AT_START_195
+at_fn_group_banner 195 'functions.at:1592' \
+  "FUNCTION TRIM with reference modding" "           "
+at_xfail=no
+(
+  $as_echo "195. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  195 ) # 195. functions.at:1592: FUNCTION TRIM with reference modding
-    at_setup_line='functions.at:1592'
-    at_desc='FUNCTION TRIM with reference modding'
-    $at_quiet $ECHO_N "195: FUNCTION TRIM with reference modding         $ECHO_C"
-    at_xfail=no
-    (
-      echo "195. functions.at:1592: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -19554,76 +15550,51 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1609: \${COMPILE} -o prog prog.cob"
-echo functions.at:1609 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1609: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1609: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1609"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1609"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-$at_traceoff
-echo "functions.at:1613: ./prog"
-echo functions.at:1613 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "#b.
+{ set +x
+$as_echo "$at_srcdir/functions.at:1610: ./prog"
+at_fn_check_prepare_trace "functions.at:1610"
+( $at_check_trace; ./prog
+) >>"$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 "#b.
 a#b
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1613: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1610"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_195
+#AT_START_196
+at_fn_group_banner 196 'functions.at:1617' \
+  "FUNCTION UPPER-CASE" "                            "
+at_xfail=no
+(
+  $as_echo "196. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  196 ) # 196. functions.at:1617: FUNCTION UPPER-CASE
-    at_setup_line='functions.at:1617'
-    at_desc='FUNCTION UPPER-CASE'
-    $at_quiet $ECHO_N "196: FUNCTION UPPER-CASE                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "196. functions.at:1617: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -19638,75 +15609,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1632: \${COMPILE} -o prog prog.cob"
-echo functions.at:1632 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1632: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1632: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1632"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1632"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1633: ./prog"
+at_fn_check_prepare_trace "functions.at:1633"
+( $at_check_trace; ./prog
+) >>"$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 "A#B.C%D+E\$
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1633"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1635: ./prog"
-echo functions.at:1635 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "A#B.C%D+E\$
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1635: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_196
+#AT_START_197
+at_fn_group_banner 197 'functions.at:1639' \
+  "FUNCTION UPPER-CASE with reference modding" "     "
+at_xfail=no
+(
+  $as_echo "197. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  197 ) # 197. functions.at:1639: FUNCTION UPPER-CASE with reference modding
-    at_setup_line='functions.at:1639'
-    at_desc='FUNCTION UPPER-CASE with reference modding'
-    $at_quiet $ECHO_N "197: FUNCTION UPPER-CASE with reference modding   $ECHO_C"
-    at_xfail=no
-    (
-      echo "197. functions.at:1639: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -19721,75 +15667,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1654: \${COMPILE} -o prog prog.cob"
-echo functions.at:1654 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1654: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1654: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1654"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1654"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1655: ./prog"
+at_fn_check_prepare_trace "functions.at:1655"
+( $at_check_trace; ./prog
+) >>"$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 "A#B
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1655"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1657: ./prog"
-echo functions.at:1657 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "A#B
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1657: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_197
+#AT_START_198
+at_fn_group_banner 198 'functions.at:1661' \
+  "FUNCTION VARIANCE" "                              "
+at_xfail=no
+(
+  $as_echo "198. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  198 ) # 198. functions.at:1661: FUNCTION VARIANCE
-    at_setup_line='functions.at:1661'
-    at_desc='FUNCTION VARIANCE'
-    $at_quiet $ECHO_N "198: FUNCTION VARIANCE                            $ECHO_C"
-    at_xfail=no
-    (
-      echo "198. functions.at:1661: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -19803,75 +15724,50 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1675: \${COMPILE} -o prog prog.cob"
-echo functions.at:1675 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1675: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1675: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1675"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1675"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1676: ./prog"
+at_fn_check_prepare_trace "functions.at:1676"
+( $at_check_trace; ./prog
+) >>"$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 "+54.1600000000000000
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1676"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1678: ./prog"
-echo functions.at:1678 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "+54.1600000000000000
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1678: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_198
+#AT_START_199
+at_fn_group_banner 199 'functions.at:1682' \
+  "FUNCTION WHEN-COMPILED" "                         "
+at_xfail=no
+(
+  $as_echo "199. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  199 ) # 199. functions.at:1682: FUNCTION WHEN-COMPILED
-    at_setup_line='functions.at:1682'
-    at_desc='FUNCTION WHEN-COMPILED'
-    $at_quiet $ECHO_N "199: FUNCTION WHEN-COMPILED                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "199. functions.at:1682: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -19894,343 +15790,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "functions.at:1705: \${COMPILE} -o prog prog.cob"
-echo functions.at:1705 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1705: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/functions.at:1705: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "functions.at:1705"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/functions.at:1705"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/functions.at:1706: ./prog"
+at_fn_check_prepare_trace "functions.at:1706"
+( $at_check_trace; ./prog
+) >>"$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 "OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/functions.at:1706"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "functions.at:1708: ./prog"
-echo functions.at:1708 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK
-" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "functions.at:1708: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
-
-  echo 1 > $at_status_file
-  exit 1
-fi
-
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-
-  * )
-    echo "$as_me: no such test group: $at_group" >&2
-    continue
-    ;;
-  esac
-
-  # Be sure to come back to the suite directory, in particular
-  # since below we might `rm' the group directory we are in currently.
-  cd $at_suite_dir
-
-  case $at_group in
-    banner-*) ;;
-    *)
-      if test ! -f $at_check_line_file; then
-	sed "s/^ */$as_me: warning: /" <<_ATEOF
-	A failure happened in a test group before any test could be
-	run. This means that test suite is improperly designed.  Please
-	report this failure to <open-cobol-list@lists.sourceforge.net>.
-_ATEOF
-    	echo "$at_setup_line" >$at_check_line_file
-      fi
-      at_group_count=`expr 1 + $at_group_count`
-      $at_verbose $ECHO_N "$at_group. $at_setup_line: $ECHO_C"
-      echo $ECHO_N "$at_group. $at_setup_line: $ECHO_C" >> $at_group_log
-      case $at_xfail:$at_status in
-	yes:0)
-	    at_msg="UNEXPECTED PASS"
-	    at_xpass_list="$at_xpass_list $at_group"
-	    at_errexit=$at_errexit_p
-	    ;;
-	no:0)
-	    at_msg="ok"
-	    at_pass_list="$at_pass_list $at_group"
-	    at_errexit=false
-	    ;;
-	*:77)
-	    at_msg="skipped (`cat $at_check_line_file`)"
-	    at_skip_list="$at_skip_list $at_group"
-	    at_errexit=false
-	    ;;
-	yes:*)
-	    at_msg="expected failure (`cat $at_check_line_file`)"
-	    at_xfail_list="$at_xfail_list $at_group"
-	    at_errexit=false
-	    ;;
-	no:*)
-	    at_msg="FAILED (`cat $at_check_line_file`)"
-	    at_fail_list="$at_fail_list $at_group"
-	    at_errexit=$at_errexit_p
-	    ;;
-      esac
-      echo $at_msg
-      at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
-      case $at_status in
-	0|77)
-	  # $at_times_file is only available if the group succeeded.
-	  # We're not including the group log, so the success message
-	  # is written in the global log separately.  But we also
-	  # write to the group log in case they're using -d.
-	  if test -f $at_times_file; then
-	    at_log_msg="$at_log_msg	(`sed 1d $at_times_file`)"
-	    rm -f $at_times_file
-          fi
-	  echo "$at_log_msg" >> $at_group_log
-	  echo "$at_log_msg" >&5
-
-	  # Cleanup the group directory, unless the user wants the files.
-	  $at_debug_p || rm -rf $at_group_dir
-	  ;;
-	*)
-	  # Upon failure, include the log into the testsuite's global
-	  # log.  The failure message is written in the group log.  It
-	  # is later included in the global log.
-	  echo "$at_log_msg" >> $at_group_log
-
-	  # Upon failure, keep the group directory for autopsy, and
-	  # create the debugging script.
-	  {
-	    echo "#! /bin/sh"
-	    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\'''
-	    echo "cd $at_dir"
-	    echo 'exec ${CONFIG_SHELL-'"$SHELL"'}' "$0" \
-	         '-v -d' "$at_debug_args" "$at_group" '${1+"$@"}'
-	    echo 'exit 1'
-	  } >$at_group_dir/run
-	  chmod +x $at_group_dir/run
-	  $at_errexit && break
-	  ;;
-      esac
-      ;;
-  esac
-done
-
-# Back to the top directory.
-cd $at_dir
-
-# Compute the duration of the suite.
-at_stop_date=`date`
-at_stop_time=`(date +%s) 2>/dev/null`
-echo "$as_me: ending at: $at_stop_date" >&5
-at_duration_s=`(expr $at_stop_time - $at_start_time) 2>/dev/null`
-at_duration_m=`(expr $at_duration_s / 60) 2>/dev/null`
-at_duration_h=`(expr $at_duration_m / 60) 2>/dev/null`
-at_duration_s=`(expr $at_duration_s % 60) 2>/dev/null`
-at_duration_m=`(expr $at_duration_m % 60) 2>/dev/null`
-at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
-if test "$at_duration" != "h m s"; then
-  echo "$as_me: test suite duration: $at_duration" >&5
-fi
-
-# Wrap up the test suite with summary statistics.
-at_skip_count=`set dummy $at_skip_list; shift; echo $#`
-at_fail_count=`set dummy $at_fail_list; shift; echo $#`
-at_xpass_count=`set dummy $at_xpass_list; shift; echo $#`
-at_xfail_count=`set dummy $at_xfail_list; shift; echo $#`
-
-at_run_count=`expr $at_group_count - $at_skip_count`
-at_unexpected_count=`expr $at_xpass_count + $at_fail_count`
-at_total_fail_count=`expr $at_xfail_count + $at_fail_count`
-
-echo
-cat <<\_ASBOX
-## ------------- ##
-## Test results. ##
-## ------------- ##
-_ASBOX
-echo
-{
-  echo
-  cat <<\_ASBOX
-## ------------- ##
-## Test results. ##
-## ------------- ##
-_ASBOX
-  echo
-} >&5
-
-if test $at_run_count = 1; then
-  at_result="1 test"
-  at_were=was
-else
-  at_result="$at_run_count tests"
-  at_were=were
-fi
-if $at_errexit_p && test $at_unexpected_count != 0; then
-  if test $at_xpass_count = 1; then
-    at_result="$at_result $at_were run, one passed"
-  else
-    at_result="$at_result $at_were run, one failed"
-  fi
-  at_result="$at_result unexpectedly and inhibited subsequent tests."
-else
-  # Don't you just love exponential explosion of the number of cases?
-  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." ;;
-
-    # Some unexpected failures
-    0:*:0) at_result="$at_result $at_were run,
-$at_fail_count failed unexpectedly." ;;
-
-    # Some failures, both expected and unexpected
-    0:*:1) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    0:*:*) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-
-    # No unexpected failures, but some xpasses
-    *:0:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly." ;;
-
-    # No expected failures, but failures and xpasses
-    *:1:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
-    *:*:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
-
-    # All of them.
-    *:*:1) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    *:*:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-  esac
-
-  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
-    at_result="All $at_result"
-  fi
-fi
-
-# Now put skips in the mix.
-case $at_skip_count in
-  0) ;;
-  1) at_result="$at_result
-1 test was skipped." ;;
-  *) at_result="$at_result
-$at_skip_count tests were skipped." ;;
-esac
-
-if test $at_unexpected_count = 0; then
-  echo "$at_result"
-  echo "$at_result" >&5
-else
-  echo "ERROR: $at_result" >&2
-  echo "ERROR: $at_result" >&5
-  {
-    echo
-    cat <<\_ASBOX
-## ------------------------ ##
-## Summary of the failures. ##
-## ------------------------ ##
-_ASBOX
-
-    # Summary of failed and skipped tests.
-    if test $at_fail_count != 0; then
-      echo "Failed tests:"
-      $SHELL $0 $at_fail_list --list
-      echo
-    fi
-    if test $at_skip_count != 0; then
-      echo "Skipped tests:"
-      $SHELL $0 $at_skip_list --list
-      echo
-    fi
-    if test $at_xpass_count != 0; then
-      echo "Unexpected passes:"
-      $SHELL $0 $at_xpass_list --list
-      echo
-    fi
-    if test $at_fail_count != 0; then
-      cat <<\_ASBOX
-## ---------------------- ##
-## Detailed failed tests. ##
-## ---------------------- ##
-_ASBOX
-      echo
-      for at_group in $at_fail_list
-      do
-        # Normalize the test group number.
-        at_group_normalized=`expr "00000$at_group" : ".*\($at_format\)"`
-        # Create a fresh directory for the next test group, and enter.
-        at_group_dir=$at_suite_dir/$at_group_normalized
-        at_group_log=$at_group_dir/$as_me.log
-        cat $at_group_log
-        echo
-      done
-      echo
-    fi
-    if test -n "$at_top_srcdir"; then
-      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## $at_top_builddir/config.log ##
-_ASBOX
-      sed 's/^/| /' $at_top_builddir/config.log
-      echo
-    fi
-  } >&5
-
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## $as_me.log was created. ##
-_ASBOX
-
-  echo
-  echo "Please send \`$as_me.log' and all information you think might help:"
-  echo
-  echo "   To: <open-cobol-list@lists.sourceforge.net>"
-  echo "   Subject: [GNU Cobol 1.1] $as_me:$at_fail_list${at_fail_list:+ failed${at_xpass_list:+,}}$at_xpass_list${at_xpass_list:+ passed unexpectedly}"
-  echo
-  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.'
-    echo
-  fi
-    exit 1
-fi
-
-exit 0
-
-
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_199
Index: tests/syntax
===================================================================
--- tests/syntax	(revision 344)
+++ tests/syntax	(working copy)
@@ -1,75 +1,453 @@
 #! /bin/sh
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+# Generated from syntax.at by GNU Autoconf 2.69.
+#
+#
+# Copyright (C) 2003,2004,2005,2006,2007 Keisuke Nishida
+# Copyright (C) 2007-2009 Roger While
+#
+# This file is part of GNU Cobol.
+#
+# The GNU Cobol compiler is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# GNU Cobol is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Cobol; see the file COPYING. If not, write to the
+# Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+#
+# Copyright (C) 2009-2012 Free Software Foundation, Inc.
+#
+# This test suite is free software; the Free Software Foundation gives
+# unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
 fi
-DUALCASE=1; export DUALCASE # for MKS sh
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
 else
-  as_unset=false
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
 fi
 
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
 PS1='$ '
 PS2='> '
 PS4='+ '
 
 # NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
   else
-    $as_unset $as_var
+    $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
-done
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
 
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+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_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# PATH needs CR, and LINENO needs CR and PATH.
 # Avoid depending upon Character Ranges.
 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
@@ -77,146 +455,91 @@
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
 
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  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
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # 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 before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, 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
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
     sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
       N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
       t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
+      s/-\n.*//
     ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
   # Exit status is that of the last command.
   exit
 }
 
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
 esac
 
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
 else
-  as_expr=false
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
 fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
   else
-    as_ln_s='ln -s'
+    as_ln_s='cp -pR'
   fi
-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
-rm -f conf$$ conf$$.exe conf$$.file
+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
 
-as_executable_p="test -f"
+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'"
@@ -225,14 +548,7 @@
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
 
-# CDPATH.
-$as_unset CDPATH
 
 
 SHELL=${CONFIG_SHELL-/bin/sh}
@@ -240,25 +556,7 @@
 # How were we run?
 at_cli_args="$@"
 
-# Load the config file.
-for at_file in atconfig atlocal
-do
-  test -r $at_file || continue
-  . ./$at_file || { echo "$as_me: error: invalid content: $at_file" >&2
-   { (exit 1); exit 1; }; }
-done
 
-# atconfig delivers paths relative to the directory the test suite is
-# in, but the groups themselves are run in testsuite-dir/group-dir.
-if test -n "$at_top_srcdir"; then
-  builddir=../..
-  for at_dir in srcdir top_srcdir top_builddir
-  do
-    at_val=`eval echo '${'at_$at_dir'}'`
-    eval "$at_dir=\$at_val/../.."
-  done
-fi
-
 # Not all shells have the 'times' builtin; the subshell is needed to make
 # sure we discard the 'times: not found' message from the shell.
 at_times_p=false
@@ -268,9 +566,14 @@
 at_debug_args=
 # -e sets to true
 at_errexit_p=false
-# Shall we be verbose?
+# Shall we be verbose?  ':' means no, empty means yes.
 at_verbose=:
-at_quiet=echo
+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.
@@ -277,39 +580,39 @@
 at_debug_p=false
 # Display help message?
 at_help_p=false
+# Display the version message?
+at_version_p=false
 # List test groups?
 at_list_p=false
+# --clean
+at_clean=false
 # Test groups to run
 at_groups=
+# Whether to rerun failed tests.
+at_recheck=
+# Whether a write failure occurred
+at_write_fail=0
 
-# The directory we are in.
+# The directory we run the suite in.  Default to . if no -C option.
 at_dir=`pwd`
-# The directory the whole suite works in.
-# Should be absolutely to let the user `cd' at will.
-at_suite_dir=$at_dir/$as_me.dir
-# The file containing the suite.
-at_suite_log=$at_dir/$as_me.log
-# The file containing the location of the last AT_CHECK.
-at_check_line_file=$at_suite_dir/at-check-line
-# The file containing the exit status of the last command.
-at_status_file=$at_suite_dir/at-status
-# The files containing the output of the tested commands.
-at_stdout=$at_suite_dir/at-stdout
-at_stder1=$at_suite_dir/at-stder1
-at_stderr=$at_suite_dir/at-stderr
-# The file containing dates.
-at_times_file=$at_suite_dir/at-times
+# An absolute reference to this testsuite script.
+case $as_myself in
+  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
+  * ) at_myself=$at_dir/$as_myself ;;
+esac
+# Whether -C is in effect.
+at_change_dir=false
 
+# Whether to enable colored test results.
+at_color=auto
 # List of the tested programs.
 at_tested='cobc'
-# 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 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77'
-# As many dots as there are digits in the last test group number.
+# As many question marks as there are digits in the last test group number.
 # Used to normalize the test group numbers so that `ls' lists them in
 # numerical order.
-at_format='..'
+at_format='??'
 # Description of all the test groups.
-at_help_all='1;copy.at:24;COPY: file not found;copy;
+at_help_all="1;copy.at:24;COPY: file not found;copy;
 2;copy.at:44;COPY: replacement order;copy;
 3;copy.at:71;COPY: separators;copy;
 4;copy.at:100;COPY: partial replacement;copy;
@@ -386,9 +689,34 @@
 75;multiply.at:69;Category check of Format 2;multiply;
 76;multiply.at:110;Category check of literals;multiply;
 77;set.at:26;SET: misc;set;
-'
+"
+# List of the all the test groups.
+at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
 
-at_keywords=
+# at_fn_validate_ranges NAME...
+# -----------------------------
+# Validate and normalize the test group number contained in each variable
+# NAME. Leading zeroes are treated as decimal.
+at_fn_validate_ranges ()
+{
+  for at_grp
+  do
+    eval at_value=\$$at_grp
+    if test $at_value -lt 1 || test $at_value -gt 77; then
+      $as_echo "invalid test group: $at_value" >&2
+      exit 1
+    fi
+    case $at_value in
+      0*) # We want to treat leading 0 as decimal, like expr and test, but
+	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
+	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
+	  # expr fork, but it is not worth the effort to determine if the
+	  # shell supports XSI when the user can just avoid leading 0.
+	  eval $at_grp='`expr $at_value + 0`' ;;
+    esac
+  done
+}
+
 at_prev=
 for at_option
 do
@@ -398,7 +726,10 @@
     at_prev=
   fi
 
-  at_optarg=`expr "x$at_option" : 'x[^=]*=\(.*\)'`
+  case $at_option in
+  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
+  *)    at_optarg= ;;
+  esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
@@ -412,15 +743,26 @@
 	;;
 
     --version | -V )
-	echo "$as_me (GNU Cobol 1.1)"
-	exit 0
+	at_version_p=:
 	;;
 
     --clean | -c )
-	rm -rf $at_suite_dir $at_suite_log
-	exit 0
+	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=:
 	;;
@@ -431,30 +773,35 @@
 	;;
 
     --verbose | -v )
-	at_verbose=echo; at_quiet=:
+	at_verbose=; at_quiet=:
 	;;
 
     --trace | -x )
-	at_traceon='set -vx'; at_traceoff='set +vx'
+	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_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 '-'`
-	at_range=`echo " $at_groups_all " | \
-	  sed -e 's,^.* '$at_range_start' ,'$at_range_start' ,'`
-	at_groups="$at_groups$at_range "
+	at_range_start=`echo $at_option |tr -d X-`
+	at_fn_validate_ranges at_range_start
+	at_range=`$as_echo "$at_groups_all" | \
+	  sed -ne '/^'$at_range_start'$/,$p'`
+	as_fn_append at_groups "$at_range$as_nl"
 	;;
 
     -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
-	at_range_end=`echo $at_option |tr -d '-'`
-	at_range=`echo " $at_groups_all " | \
-	  sed -e 's, '$at_range_end' .*$, '$at_range_end','`
-	at_groups="$at_groups$at_range "
+	at_range_end=`echo $at_option |tr -d X-`
+	at_fn_validate_ranges at_range_end
+	at_range=`$as_echo "$at_groups_all" | \
+	  sed -ne '1,/^'$at_range_end'$/p'`
+	as_fn_append at_groups "$at_range$as_nl"
 	;;
 
     [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
@@ -463,81 +810,159 @@
     [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
     [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
     [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
-	at_range_start=`echo $at_option |sed 's,-.*,,'`
-	at_range_end=`echo $at_option |sed 's,.*-,,'`
-	# FIXME: Maybe test to make sure start <= end?
-	at_range=`echo " $at_groups_all " | \
-	  sed -e 's,^.* '$at_range_start' ,'$at_range_start' ,' \
-	      -e 's, '$at_range_end' .*$, '$at_range_end','`
-	at_groups="$at_groups$at_range "
+	at_range_start=`expr $at_option : '\(.*\)-'`
+	at_range_end=`expr $at_option : '.*-\(.*\)'`
+	if test $at_range_start -gt $at_range_end; then
+	  at_tmp=$at_range_end
+	  at_range_end=$at_range_start
+	  at_range_start=$at_tmp
+	fi
+	at_fn_validate_ranges at_range_start at_range_end
+	at_range=`$as_echo "$at_groups_all" | \
+	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
+	as_fn_append at_groups "$at_range$as_nl"
 	;;
 
+    # Directory selection.
+    --directory | -C )
+	at_prev=--directory
+	;;
+    --directory=* )
+	at_change_dir=:
+	at_dir=$at_optarg
+	if test x- = "x$at_dir" ; then
+	  at_dir=./-
+	fi
+	;;
+
+    # Parallel execution.
+    --jobs | -j )
+	at_jobs=0
+	;;
+    --jobs=* | -j[0-9]* )
+	if test -n "$at_optarg"; then
+	  at_jobs=$at_optarg
+	else
+	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
+	fi
+	case $at_jobs in *[!0-9]*)
+	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
+	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
+	esac
+	;;
+
     # Keywords.
     --keywords | -k )
 	at_prev=--keywords
 	;;
     --keywords=* )
-	at_keywords="$at_keywords,$at_optarg"
+	at_groups_selected=$at_help_all
+	at_save_IFS=$IFS
+	IFS=,
+	set X $at_optarg
+	shift
+	IFS=$at_save_IFS
+	for at_keyword
+	do
+	  at_invert=
+	  case $at_keyword in
+	  '!'*)
+	    at_invert="-v"
+	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
+	    ;;
+	  esac
+	  # It is on purpose that we match the test group titles too.
+	  at_groups_selected=`$as_echo "$at_groups_selected" |
+	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
+	done
+	# Smash the keywords.
+	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
+	as_fn_append at_groups "$at_groups_selected$as_nl"
 	;;
+    --recheck)
+	at_recheck=:
+	;;
 
     *=*)
-  	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
-  	# Reject names that are not valid shell variable names.
-  	expr "x$at_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-  	  { echo "$as_me: error: invalid variable name: $at_envvar" >&2
-   { (exit 1); exit 1; }; }
-  	at_value=`echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
-  	eval "$at_envvar='$at_value'"
-  	export $at_envvar
-	# Propagate to debug scripts.
-  	at_debug_args="$at_debug_args $at_option"
-  	;;
+	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
+	# Reject names that are not valid shell variable names.
+	case $at_envvar in
+	  '' | [0-9]* | *[!_$as_cr_alnum]* )
+	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
+	esac
+	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
+	# Export now, but save eval for later and for debug scripts.
+	export $at_envvar
+	as_fn_append at_debug_args " $at_envvar='$at_value'"
+	;;
 
-     *) echo "$as_me: invalid option: $at_option" >&2
-	echo "Try \`$0 --help' for more information." >&2
+     *) $as_echo "$as_me: invalid option: $at_option" >&2
+	$as_echo "Try \`$0 --help' for more information." >&2
 	exit 1
 	;;
   esac
 done
 
-# Process the --keywords
-if test -n "$at_keywords"; then
-  at_groups_selected=$at_help_all
-  for at_keyword in `IFS=,; set X $at_keywords; shift; echo ${1+$@}`
-  do
-    # It is on purpose that we match the test group titles too.
-    at_groups_selected=`echo "$at_groups_selected" |
-			grep -i "^[^;]*;[^;]*.*[; ]$at_keyword[ ;]"`
-  done
-  at_groups_selected=`echo "$at_groups_selected" | sed 's/;.*//'`
-  # Smash the end of lines.
-  at_groups_selected=`echo $at_groups_selected`
-  at_groups="$at_groups$at_groups_selected "
+# Verify our last option didn't require an argument
+if test -n "$at_prev"; then :
+  as_fn_error $? "\`$at_prev' requires an argument"
 fi
 
+# The file containing the suite.
+at_suite_log=$at_dir/$as_me.log
+
 # Selected test groups.
-test -z "$at_groups" && at_groups=$at_groups_all
+if test -z "$at_groups$at_recheck"; then
+  at_groups=$at_groups_all
+else
+  if test -n "$at_recheck" && test -r "$at_suite_log"; then
+    at_oldfails=`sed -n '
+      /^Failed tests:$/,/^Skipped tests:$/{
+	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+      }
+      /^Unexpected passes:$/,/^## Detailed failed tests/{
+	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+      }
+      /^## Detailed failed tests/q
+      ' "$at_suite_log"`
+    as_fn_append at_groups "$at_oldfails$as_nl"
+  fi
+  # Sort the tests, removing duplicates.
+  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
+fi
 
+if test x"$at_color" = xalways \
+   || { test x"$at_color" = xauto && test -t 1; }; then
+  at_red=`printf '\033[0;31m'`
+  at_grn=`printf '\033[0;32m'`
+  at_lgn=`printf '\033[1;32m'`
+  at_blu=`printf '\033[1;34m'`
+  at_std=`printf '\033[m'`
+else
+  at_red= at_grn= at_lgn= at_blu= at_std=
+fi
+
 # Help message.
 if $at_help_p; then
-  cat <<_ATEOF
+  cat <<_ATEOF || at_write_fail=1
 Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
 
-Run all the tests, or the selected TESTS, and save a detailed log file.
-Upon failure, create debugging scripts.
+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
+cat <<_ATEOF || at_write_fail=1
 
 Operation modes:
   -h, --help     print the help message, then exit
@@ -545,56 +970,211 @@
   -c, --clean    remove all the files this test suite might create and exit
   -l, --list     describes all the tests, or the selected TESTS
 _ATEOF
-cat <<_ATEOF
+cat <<_ATEOF || at_write_fail=1
 
 Execution tuning:
+  -C, --directory=DIR
+                 change to directory DIR before starting
+      --color[=never|auto|always]
+                 disable colored test results, or enable even without terminal
+  -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
-	         accumulates
+                 select the tests matching all the comma-separated KEYWORDS
+                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
+      --recheck  select all tests that failed or passed unexpectedly last time
   -e, --errexit  abort as soon as a test fails; implies --debug
   -v, --verbose  force more detailed output
-	         default for debugging scripts
-  -d, --debug    inhibit clean up and debug script creation
-	         default for debugging scripts
+                 default for debugging scripts
+  -d, --debug    inhibit clean up and top-level logging
+                 default for debugging scripts
   -x, --trace    enable tests shell tracing
 _ATEOF
-cat <<_ATEOF
+cat <<_ATEOF || at_write_fail=1
 
 Report bugs to <open-cobol-list@lists.sourceforge.net>.
+General help using GNU software: <http://www.gnu.org/gethelp/>.
 _ATEOF
-  exit 0
+  exit $at_write_fail
 fi
 
 # List of tests.
 if $at_list_p; then
-  cat <<_ATEOF
+  cat <<_ATEOF || at_write_fail=1
 GNU Cobol 1.1 test suite: Syntax Tests test groups:
 
- NUM: FILENAME:LINE      TEST-GROUP-NAME
+ NUM: FILE-NAME:LINE     TEST-GROUP-NAME
       KEYWORDS
 
 _ATEOF
-  # "  1 42  45 " => "^(1|42|45);".
-  at_groups_pattern=`echo "$at_groups" | sed 's/^  *//;s/  *$//;s/  */|/g'`
-  echo "$at_help_all" |
-    awk 'BEGIN { FS = ";" }
-	 { if ($1 !~ /^('"$at_groups_pattern"')$/) next }
-	 { if ($1) printf " %3d: %-18s %s\n", $1, $2, $3
-	   if ($4) printf "      %s\n", $4 } '
-  exit 0
+  # Pass an empty line as separator between selected groups and help.
+  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
+    awk 'NF == 1 && FS != ";" {
+	   selected[$ 1] = 1
+	   next
+	 }
+	 /^$/ { FS = ";" }
+	 NF > 0 {
+	   if (selected[$ 1]) {
+	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
+	     if ($ 4) {
+	       lmax = 79
+	       indent = "     "
+	       line = indent
+	       len = length (line)
+	       n = split ($ 4, a, " ")
+	       for (i = 1; i <= n; i++) {
+		 l = length (a[i]) + 1
+		 if (i > 1 && len + l > lmax) {
+		   print line
+		   line = indent " " a[i]
+		   len = length (line)
+		 } else {
+		   line = line " " a[i]
+		   len += l
+		 }
+	       }
+	       if (n)
+		 print line
+	     }
+	   }
+	 }' || at_write_fail=1
+  exit $at_write_fail
 fi
+if $at_version_p; then
+  $as_echo "$as_me (GNU Cobol 1.1)" &&
+  cat <<\_ATEOF || at_write_fail=1
 
+
+Copyright (C) 2003,2004,2005,2006,2007 Keisuke Nishida
+Copyright (C) 2007-2009 Roger While
+
+This file is part of GNU Cobol.
+
+The GNU Cobol compiler is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+GNU Cobol is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Cobol; see the file COPYING. If not, write to the
+Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+MA 02110-1301 USA
+
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This test suite is free software; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+_ATEOF
+  exit $at_write_fail
+fi
+
+# Should we print banners?  Yes if more than one test is run.
+case $at_groups in #(
+  *$as_nl* )
+      at_print_banners=: ;; #(
+  * ) at_print_banners=false ;;
+esac
+# Text for banner N, set to a single space once printed.
+
+# Take any -C into account.
+if $at_change_dir ; then
+  test x != "x$at_dir" && cd "$at_dir" \
+    || as_fn_error $? "unable to change directory"
+  at_dir=`pwd`
+fi
+
+# Load the config files for any default variable assignments.
+for at_file in atconfig atlocal
+do
+  test -r $at_file || continue
+  . ./$at_file || as_fn_error $? "invalid content: $at_file"
+done
+
+# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
+: "${at_top_build_prefix=$at_top_builddir}"
+
+# Perform any assignments requested during argument parsing.
+eval "$at_debug_args"
+
+# atconfig delivers names relative to the directory the test suite is
+# in, but the groups themselves are run in testsuite-dir/group-dir.
+if test -n "$at_top_srcdir"; then
+  builddir=../..
+  for at_dir_var in srcdir top_srcdir top_build_prefix
+  do
+    eval at_val=\$at_$at_dir_var
+    case $at_val in
+      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
+      *) at_prefix=../../ ;;
+    esac
+    eval "$at_dir_var=\$at_prefix\$at_val"
+  done
+fi
+
+## -------------------- ##
+## Directory structure. ##
+## -------------------- ##
+
+# This is the set of directories and files used by this script
+# (non-literals are capitalized):
+#
+# TESTSUITE         - the testsuite
+# TESTSUITE.log     - summarizes the complete testsuite run
+# TESTSUITE.dir/    - created during a run, remains after -d or failed test
+# + at-groups/      - during a run: status of all groups in run
+# | + NNN/          - during a run: meta-data about test group NNN
+# | | + check-line  - location (source file and line) of current AT_CHECK
+# | | + status      - exit status of current AT_CHECK
+# | | + stdout      - stdout of current AT_CHECK
+# | | + stder1      - stderr, including trace
+# | | + stderr      - stderr, with trace filtered out
+# | | + test-source - portion of testsuite that defines group
+# | | + times       - timestamps for computing duration
+# | | + pass        - created if group passed
+# | | + xpass       - created if group xpassed
+# | | + fail        - created if group failed
+# | | + xfail       - created if group xfailed
+# | | + skip        - created if group skipped
+# + at-stop         - during a run: end the run if this file exists
+# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
+# + 0..NNN/         - created for each group NNN, remains after -d or failed test
+# | + TESTSUITE.log - summarizes the group results
+# | + ...           - files created during the group
+
+# The directory the whole suite works in.
+# Should be absolute to let the user `cd' at will.
+at_suite_dir=$at_dir/$as_me.dir
+# The file containing the suite ($at_dir might have changed since earlier).
+at_suite_log=$at_dir/$as_me.log
+# The directory containing helper files per test group.
+at_helper_dir=$at_suite_dir/at-groups
+# Stop file: if it exists, do not start new jobs.
+at_stop_file=$at_suite_dir/at-stop
+# The fifo used for the job dispatcher.
+at_job_fifo=$at_suite_dir/at-job-fifo
+
+if $at_clean; then
+  test -d "$at_suite_dir" &&
+    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
+  rm -f -r "$at_suite_dir" "$at_suite_log"
+  exit $?
+fi
+
 # Don't take risks: use only absolute directories in PATH.
 #
-# For stand-alone test suites, AUTOTEST_PATH is relative to `.'.
+# For stand-alone test suites (ie. atconfig was not found),
+# AUTOTEST_PATH is relative to `.'.
 #
 # For embedded test suites, AUTOTEST_PATH is relative to the top level
 # of the package.  Then expand it into build/src parts, since users
 # may create executables in both places.
-#
-# There might be directories that don't exist, but don't redirect
-# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
-AUTOTEST_PATH=`echo $AUTOTEST_PATH | tr ':' $PATH_SEPARATOR`
+AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
 at_path=
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $AUTOTEST_PATH $PATH
@@ -601,89 +1181,90 @@
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  case $as_dir in
+    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
+case $as_dir in
   [\\/]* | ?:[\\/]* )
-    at_path=$at_path$PATH_SEPARATOR$as_dir
+    as_fn_append at_path "$as_dir"
     ;;
   * )
-    if test -z "$at_top_builddir"; then
+    if test -z "$at_top_build_prefix"; then
       # Stand-alone test suite.
-      at_path=$at_path$PATH_SEPARATOR$as_dir
+      as_fn_append at_path "$as_dir"
     else
       # Embedded test suite.
-      at_path=$at_path$PATH_SEPARATOR$at_top_builddir/$as_dir
-      at_path=$at_path$PATH_SEPARATOR$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
 
 
 # Now build and simplify PATH.
-PATH=
+#
+# There might be directories that don't exist, but don't redirect
+# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
+at_new_path=
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $at_path
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  as_dir=`(cd "$as_dir" && pwd) 2>/dev/null`
-test -d "$as_dir" || continue
-case $PATH in
-	          $as_dir                 | \
-	          $as_dir$PATH_SEPARATOR* | \
-  *$PATH_SEPARATOR$as_dir                 | \
-  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR* ) ;;
-
-  '') PATH=$as_dir ;;
-   *) PATH=$PATH$PATH_SEPARATOR$as_dir ;;
+    test -d "$as_dir" || continue
+case $as_dir in
+  [\\/]* | ?:[\\/]* ) ;;
+  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
 esac
-done
+case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
+  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
+  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
+  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
+esac
+  done
+IFS=$as_save_IFS
 
+PATH=$at_new_path
 export PATH
 
 # Setting up the FDs.
+
+
+
 # 5 is the log file.  Not to be overwritten if `-d'.
+if $at_debug_p; then
+  at_suite_log=/dev/null
+else
+  : >"$at_suite_log"
+fi
+exec 5>>"$at_suite_log"
 
-$at_debug_p && at_suite_log=/dev/null
-exec 5>$at_suite_log
-
 # Banners and logs.
-cat <<\_ASBOX
-## --------------------------------------- ##
+$as_echo "## --------------------------------------- ##
 ## GNU Cobol 1.1 test suite: Syntax Tests. ##
-## --------------------------------------- ##
-_ASBOX
+## --------------------------------------- ##"
 {
-  cat <<\_ASBOX
-## --------------------------------------- ##
+  $as_echo "## --------------------------------------- ##
 ## GNU Cobol 1.1 test suite: Syntax Tests. ##
-## --------------------------------------- ##
-_ASBOX
+## --------------------------------------- ##"
   echo
 
-  echo "$as_me: command line was:"
-  echo "  $ $0 $at_cli_args"
+  $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.
-  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
-    for at_file in `find "$at_top_srcdir" -name ChangeLog -print`
-    do
-      echo "$as_me: $at_file:"
-      sed 's/^/| /;10q' $at_file
-      echo
-    done
+    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
+    echo
+  fi
 
-    {
+  {
 cat <<_ASUNAME
 ## --------- ##
 ## Platform. ##
@@ -701,7 +1282,7 @@
 /bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
 /bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
 /bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
@@ -713,27 +1294,179 @@
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
 
 }
-    echo
-  fi
+  echo
 
   # Contents of the config files.
   for at_file in atconfig atlocal
   do
     test -r $at_file || continue
-    echo "$as_me: $at_file:"
+    $as_echo "$as_me: $at_file:"
     sed 's/^/| /' $at_file
     echo
   done
+} >&5
 
-  cat <<\_ASBOX
-## ---------------- ##
+
+## ------------------------- ##
+## Autotest shell functions. ##
+## ------------------------- ##
+
+# at_fn_banner NUMBER
+# -------------------
+# Output banner NUMBER, provided the testsuite is running multiple groups and
+# this particular banner has not yet been printed.
+at_fn_banner ()
+{
+  $at_print_banners || return 0
+  eval at_banner_text=\$at_banner_text_$1
+  test "x$at_banner_text" = "x " && return 0
+  eval "at_banner_text_$1=\" \""
+  if test -z "$at_banner_text"; then
+    $at_first || echo
+  else
+    $as_echo "$as_nl$at_banner_text$as_nl"
+  fi
+} # at_fn_banner
+
+# at_fn_check_prepare_notrace REASON LINE
+# ---------------------------------------
+# Perform AT_CHECK preparations for the command at LINE for an untraceable
+# command; REASON is the reason for disabling tracing.
+at_fn_check_prepare_notrace ()
+{
+  $at_trace_echo "Not enabling shell tracing (command contains $1)"
+  $as_echo "$2" >"$at_check_line_file"
+  at_check_trace=: at_check_filter=:
+  : >"$at_stdout"; : >"$at_stderr"
+}
+
+# at_fn_check_prepare_trace LINE
+# ------------------------------
+# Perform AT_CHECK preparations for the command at LINE for a traceable
+# command.
+at_fn_check_prepare_trace ()
+{
+  $as_echo "$1" >"$at_check_line_file"
+  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
+  : >"$at_stdout"; : >"$at_stderr"
+}
+
+# at_fn_check_prepare_dynamic COMMAND LINE
+# ----------------------------------------
+# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
+# preparation function.
+at_fn_check_prepare_dynamic ()
+{
+  case $1 in
+    *$as_nl*)
+      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
+    *)
+      at_fn_check_prepare_trace "$2" ;;
+  esac
+}
+
+# at_fn_filter_trace
+# ------------------
+# Remove the lines in the file "$at_stderr" generated by "set -x" and print
+# them to stderr.
+at_fn_filter_trace ()
+{
+  mv "$at_stderr" "$at_stder1"
+  grep '^ *+' "$at_stder1" >&2
+  grep -v '^ *+' "$at_stder1" >"$at_stderr"
+}
+
+# at_fn_log_failure FILE-LIST
+# ---------------------------
+# Copy the files in the list on stdout with a "> " prefix, and exit the shell
+# with a failure exit code.
+at_fn_log_failure ()
+{
+  for file
+    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
+  echo 1 > "$at_status_file"
+  exit 1
+}
+
+# at_fn_check_skip EXIT-CODE LINE
+# -------------------------------
+# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
+# the test group subshell with that same exit code. Use LINE in any report
+# about test failure.
+at_fn_check_skip ()
+{
+  case $1 in
+    99) echo 99 > "$at_status_file"; at_failed=:
+	$as_echo "$2: hard failure"; exit 99;;
+    77) echo 77 > "$at_status_file"; exit 77;;
+  esac
+}
+
+# at_fn_check_status EXPECTED EXIT-CODE LINE
+# ------------------------------------------
+# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
+# Otherwise, if it is 77 or 99, exit the test group subshell with that same
+# exit code; if it is anything else print an error message referring to LINE,
+# and fail the test.
+at_fn_check_status ()
+{
+  case $2 in
+    $1 ) ;;
+    77) echo 77 > "$at_status_file"; exit 77;;
+    99) echo 99 > "$at_status_file"; at_failed=:
+	$as_echo "$3: hard failure"; exit 99;;
+    *) $as_echo "$3: exit code was $2, expected $1"
+      at_failed=:;;
+  esac
+}
+
+# at_fn_diff_devnull FILE
+# -----------------------
+# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
+# invocations.
+at_fn_diff_devnull ()
+{
+  test -s "$1" || return 0
+  $at_diff "$at_devnull" "$1"
+}
+
+# at_fn_test NUMBER
+# -----------------
+# Parse out test NUMBER from the tail of this file.
+at_fn_test ()
+{
+  eval at_sed=\$at_sed$1
+  sed "$at_sed" "$at_myself" > "$at_test_source"
+}
+
+# at_fn_create_debugging_script
+# -----------------------------
+# Create the debugging script $at_group_dir/run which will reproduce the
+# current test group.
+at_fn_create_debugging_script ()
+{
+  {
+    echo "#! /bin/sh" &&
+    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
+    $as_echo "cd '$at_dir'" &&
+    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
+    echo 'exit 1'
+  } >"$at_group_dir/run" &&
+  chmod +x "$at_group_dir/run"
+}
+
+## -------------------------------- ##
+## End of autotest shell functions. ##
+## -------------------------------- ##
+{
+  $as_echo "## ---------------- ##
 ## Tested programs. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
   echo
 } >&5
 
@@ -741,51 +1474,44 @@
 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
     {
-      echo "syntax.at:25: $as_dir/$at_program --version"
-      $as_dir/$at_program --version
+      $as_echo "$at_srcdir/syntax.at:25: $at_program_ --version"
+      "$at_program_" --version </dev/null
       echo
     } >&5 2>&1
   else
-    { { echo "$as_me:$LINENO: error: cannot find $at_program" >&5
-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`
-at_start_time=`(date +%s) 2>/dev/null`
-echo "$as_me: starting at: $at_start_date" >&5
-at_xpass_list=
-at_xfail_list=
-at_pass_list=
-at_fail_list=
-at_skip_list=
-at_group_count=0
+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 ||
-  { { echo "$as_me:$LINENO: error: cannot create $at_suite_dir" >&5
-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
@@ -792,74 +1518,601 @@
   at_devnull=/dev/null
 else
   at_devnull=$at_suite_dir/devnull
-  cp /dev/null $at_devnull
+  >"$at_devnull"
 fi
 
 # Use `diff -u' when possible.
-if diff -u $at_devnull $at_devnull >/dev/null 2>&1; then
+if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
+then
   at_diff='diff -u'
 else
   at_diff=diff
 fi
 
+# Get the last needed group.
+for at_group in : $at_groups; do :; done
 
-for at_group in $at_groups
-do
-  # Be sure to come back to the top test directory.
-  cd $at_suite_dir
+# Extract the start and end lines of each test group at the tail
+# of this file
+awk '
+BEGIN { FS="" }
+/^#AT_START_/ {
+  start = NR
+}
+/^#AT_STOP_/ {
+  test = substr ($ 0, 10)
+  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
+  if (test == "'"$at_group"'") exit
+}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
+. "$at_suite_dir/at-source-lines" ||
+  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
+rm -f "$at_suite_dir/at-source-lines"
 
-  case $at_group in
-    banner-*)
-      at_group_log=$at_suite_log
-      ;;
+# 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
 
-    *)
-      # Skip tests we already run (using --keywords makes it easy to get
-      # duplication).
-      case " $at_pass_test $at_skip_test $at_fail_test " in
-	*" $at_group "* ) continue;;
-      esac
+# 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
 
-      # Normalize the test group number.
-      at_group_normalized=`expr "00000$at_group" : ".*\($at_format\)"`
+# Set up helper dirs.
+rm -rf "$at_helper_dir" &&
+mkdir "$at_helper_dir" &&
+cd "$at_helper_dir" &&
+{ test -z "$at_groups" || mkdir $at_groups; } ||
+as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
 
-      # Create a fresh directory for the next test group, and enter.
-      at_group_dir=$at_suite_dir/$at_group_normalized
-      at_group_log=$at_group_dir/$as_me.log
-      rm -rf $at_group_dir
-      mkdir $at_group_dir ||
-	{ { echo "$as_me:$LINENO: error: cannot create $at_group_dir" >&5
-echo "$as_me: error: cannot create $at_group_dir" >&2;}
-   { (exit 1); exit 1; }; }
-      cd $at_group_dir
-      ;;
-  esac
+# 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.
 
-  echo 0 > $at_status_file
+# at_fn_group_prepare
+# -------------------
+# Prepare for running a test group.
+at_fn_group_prepare ()
+{
+  # The directory for additional per-group helper files.
+  at_job_dir=$at_helper_dir/$at_group
+  # The file containing the location of the last AT_CHECK.
+  at_check_line_file=$at_job_dir/check-line
+  # The file containing the exit status of the last command.
+  at_status_file=$at_job_dir/status
+  # The files containing the output of the tested commands.
+  at_stdout=$at_job_dir/stdout
+  at_stder1=$at_job_dir/stder1
+  at_stderr=$at_job_dir/stderr
+  # The file containing the code for a test group.
+  at_test_source=$at_job_dir/test-source
+  # The file containing dates.
+  at_times_file=$at_job_dir/times
 
+  # Be sure to come back to the top test directory.
+  cd "$at_suite_dir"
+
   # Clearly separate the test groups when verbose.
-  test $at_group_count != 0 && $at_verbose
+  $at_first || $at_verbose echo
 
+  at_group_normalized=$at_group
+
+  eval 'while :; do
+    case $at_group_normalized in #(
+    '"$at_format"'*) break;;
+    esac
+    at_group_normalized=0$at_group_normalized
+  done'
+
+
+  # Create a fresh directory for the next test group, and enter.
+  # If one already exists, the user may have invoked ./run from
+  # within that directory; we remove the contents, but not the
+  # directory itself, so that we aren't pulling the rug out from
+  # under the shell's notion of the current directory.
+  at_group_dir=$at_suite_dir/$at_group_normalized
+  at_group_log=$at_group_dir/$as_me.log
+  if test -d "$at_group_dir"; then
+  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
+  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
+fi ||
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
+$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
+  # Be tolerant if the above `rm' was not able to remove the directory.
+  as_dir="$at_group_dir"; as_fn_mkdir_p
+
+  echo 0 > "$at_status_file"
+
   # In verbose mode, append to the log file *and* show on
-  # the standard output; in quiet mode only write to the log
-  if test $at_verbose = echo; then
-    at_tee_pipe="tee -a $at_group_log"
+  # the standard output; in quiet mode only write to the log.
+  if test -z "$at_verbose"; then
+    at_tee_pipe='tee -a "$at_group_log"'
   else
-    at_tee_pipe="cat >> $at_group_log"
+    at_tee_pipe='cat >> "$at_group_log"'
   fi
+}
 
-  case $at_group in
-  1 ) # 1. copy.at:24: COPY: file not found
-    at_setup_line='copy.at:24'
-    at_desc='COPY: file not found'
-    $at_quiet $ECHO_N "  1: COPY: file not found                         $ECHO_C"
-    at_xfail=no
+# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
+# -------------------------------------------------
+# Declare the test group ORDINAL, located at LINE with group description DESC,
+# and residing under BANNER. Use PAD to align the status column.
+at_fn_group_banner ()
+{
+  at_setup_line="$2"
+  test -n "$5" && at_fn_banner $5
+  at_desc="$3"
+  case $1 in
+    [0-9])      at_desc_line="  $1: ";;
+    [0-9][0-9]) at_desc_line=" $1: " ;;
+    *)          at_desc_line="$1: "  ;;
+  esac
+  as_fn_append at_desc_line "$3$4"
+  $at_quiet $as_echo_n "$at_desc_line"
+  echo "#                             -*- compilation -*-" >> "$at_group_log"
+}
+
+# at_fn_group_postprocess
+# -----------------------
+# Perform cleanup after running a test group.
+at_fn_group_postprocess ()
+{
+  # Be sure to come back to the suite directory, in particular
+  # since below we might `rm' the group directory we are in currently.
+  cd "$at_suite_dir"
+
+  if test ! -f "$at_check_line_file"; then
+    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
+      A failure happened in a test group before any test could be
+      run. This means that test suite is improperly designed.  Please
+      report this failure to <open-cobol-list@lists.sourceforge.net>.
+_ATEOF
+    $as_echo "$at_setup_line" >"$at_check_line_file"
+    at_status=99
+  fi
+  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
+  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
+  case $at_xfail:$at_status in
+    yes:0)
+	at_msg="UNEXPECTED PASS"
+	at_res=xpass
+	at_errexit=$at_errexit_p
+	at_color=$at_red
+	;;
+    no:0)
+	at_msg="ok"
+	at_res=pass
+	at_errexit=false
+	at_color=$at_grn
+	;;
+    *:77)
+	at_msg='skipped ('`cat "$at_check_line_file"`')'
+	at_res=skip
+	at_errexit=false
+	at_color=$at_blu
+	;;
+    no:* | *:99)
+	at_msg='FAILED ('`cat "$at_check_line_file"`')'
+	at_res=fail
+	at_errexit=$at_errexit_p
+	at_color=$at_red
+	;;
+    yes:*)
+	at_msg='expected failure ('`cat "$at_check_line_file"`')'
+	at_res=xfail
+	at_errexit=false
+	at_color=$at_lgn
+	;;
+  esac
+  echo "$at_res" > "$at_job_dir/$at_res"
+  # In parallel mode, output the summary line only afterwards.
+  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
+    $as_echo "$at_desc_line $at_color$at_msg$at_std"
+  else
+    # Make sure there is a separator even with long titles.
+    $as_echo " $at_color$at_msg$at_std"
+  fi
+  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
+  case $at_status in
+    0|77)
+      # $at_times_file is only available if the group succeeded.
+      # We're not including the group log, so the success message
+      # is written in the global log separately.  But we also
+      # write to the group log in case they're using -d.
+      if test -f "$at_times_file"; then
+	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
+	rm -f "$at_times_file"
+      fi
+      $as_echo "$at_log_msg" >> "$at_group_log"
+      $as_echo "$at_log_msg" >&5
+
+      # Cleanup the group directory, unless the user wants the files
+      # or the success was unexpected.
+      if $at_debug_p || test $at_res = xpass; then
+	at_fn_create_debugging_script
+	if test $at_res = xpass && $at_errexit; then
+	  echo stop > "$at_stop_file"
+	fi
+      else
+	if test -d "$at_group_dir"; then
+	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
+	  rm -fr "$at_group_dir"
+	fi
+	rm -f "$at_test_source"
+      fi
+      ;;
+    *)
+      # Upon failure, include the log into the testsuite's global
+      # log.  The failure message is written in the group log.  It
+      # is later included in the global log.
+      $as_echo "$at_log_msg" >> "$at_group_log"
+
+      # Upon failure, keep the group directory for autopsy, and create
+      # the debugging script.  With -e, do not start any further tests.
+      at_fn_create_debugging_script
+      if $at_errexit; then
+	echo stop > "$at_stop_file"
+      fi
+      ;;
+  esac
+}
+
+
+## ------------ ##
+## Driver loop. ##
+## ------------ ##
+
+
+if (set -m && set +m && set +b) >/dev/null 2>&1; then
+  set +b
+  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
+else
+  at_job_control_on=: at_job_control_off=: at_job_group=
+fi
+
+for at_signal in 1 2 15; do
+  trap 'set +x; set +e
+	$at_job_control_off
+	at_signal='"$at_signal"'
+	echo stop > "$at_stop_file"
+	trap "" $at_signal
+	at_pgids=
+	for at_pgid in `jobs -p 2>/dev/null`; do
+	  at_pgids="$at_pgids $at_job_group$at_pgid"
+	done
+	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
+	wait
+	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
+	  echo >&2
+	fi
+	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
+	set x $at_signame
+	test 1 -gt 2 && at_signame=$at_signal
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
+$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
+	as_fn_arith 128 + $at_signal && exit_status=$as_val
+	as_fn_exit $exit_status' $at_signal
+done
+
+rm -f "$at_stop_file"
+at_first=:
+
+if test $at_jobs -ne 1 &&
+     rm -f "$at_job_fifo" &&
+     test -n "$at_job_group" &&
+     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
+then
+  # FIFO job dispatcher.
+
+  trap 'at_pids=
+	for at_pid in `jobs -p`; do
+	  at_pids="$at_pids $at_job_group$at_pid"
+	done
+	if test -n "$at_pids"; then
+	  at_sig=TSTP
+	  test "${TMOUT+set}" = set && at_sig=STOP
+	  kill -$at_sig $at_pids 2>/dev/null
+	fi
+	kill -STOP $$
+	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
+
+  echo
+  # Turn jobs into a list of numbers, starting from 1.
+  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`
+
+  set X $at_joblist
+  shift
+  for at_group in $at_groups; do
+    $at_job_control_on 2>/dev/null
     (
-      echo "1. copy.at:24: testing ..."
-      $at_traceon
+      # Start one test group.
+      $at_job_control_off
+      if $at_first; then
+	exec 7>"$at_job_fifo"
+      else
+	exec 6<&-
+      fi
+      trap 'set +x; set +e
+	    trap "" PIPE
+	    echo stop > "$at_stop_file"
+	    echo >&7
+	    as_fn_exit 141' PIPE
+      at_fn_group_prepare
+      if cd "$at_group_dir" &&
+	 at_fn_test $at_group &&
+	 . "$at_test_source"
+      then :; else
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
+$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
+	at_failed=:
+      fi
+      at_fn_group_postprocess
+      echo >&7
+    ) &
+    $at_job_control_off
+    if $at_first; then
+      at_first=false
+      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
+    fi
+    shift # Consume one token.
+    if test $# -gt 0; then :; else
+      read at_token <&6 || break
+      set x $*
+    fi
+    test -f "$at_stop_file" && break
+  done
+  exec 7>&-
+  # Read back the remaining ($at_jobs - 1) tokens.
+  set X $at_joblist
+  shift
+  if test $# -gt 0; then
+    shift
+    for at_job
+    do
+      read at_token
+    done <&6
+  fi
+  exec 6<&-
+  wait
+else
+  # Run serially, avoid forks and other potential surprises.
+  for at_group in $at_groups; do
+    at_fn_group_prepare
+    if cd "$at_group_dir" &&
+       at_fn_test $at_group &&
+       . "$at_test_source"; then :; else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
+$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
+      at_failed=:
+    fi
+    at_fn_group_postprocess
+    test -f "$at_stop_file" && break
+    at_first=false
+  done
+fi
 
+# Wrap up the test suite with summary statistics.
+cd "$at_helper_dir"
 
+# Use ?..???? when the list must remain sorted, the faster * otherwise.
+at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
+at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
+at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
+at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
+		 echo $f; done | sed '/?/d; s,/xpass,,'`
+at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
+		echo $f; done | sed '/?/d; s,/fail,,'`
 
+set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
+shift; at_group_count=$#
+set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
+set X $at_xfail_list; shift; at_xfail_count=$#
+set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
+set X $at_skip_list; shift; at_skip_count=$#
+
+as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
+as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
+as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
+
+# Back to the top directory.
+cd "$at_dir"
+rm -rf "$at_helper_dir"
+
+# Compute the duration of the suite.
+at_stop_date=`date`
+at_stop_time=`date +%s 2>/dev/null`
+$as_echo "$as_me: ending at: $at_stop_date" >&5
+case $at_start_time,$at_stop_time in
+  [0-9]*,[0-9]*)
+    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
+    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
+    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
+    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
+    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
+    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
+    $as_echo "$as_me: test suite duration: $at_duration" >&5
+    ;;
+esac
+
+echo
+$as_echo "## ------------- ##
+## Test results. ##
+## ------------- ##"
+echo
+{
+  echo
+  $as_echo "## ------------- ##
+## Test results. ##
+## ------------- ##"
+  echo
+} >&5
+
+if test $at_run_count = 1; then
+  at_result="1 test"
+  at_were=was
+else
+  at_result="$at_run_count tests"
+  at_were=were
+fi
+if $at_errexit_p && test $at_unexpected_count != 0; then
+  if test $at_xpass_count = 1; then
+    at_result="$at_result $at_were run, one passed"
+  else
+    at_result="$at_result $at_were run, one failed"
+  fi
+  at_result="$at_result unexpectedly and inhibited subsequent tests."
+  at_color=$at_red
+else
+  # Don't you just love exponential explosion of the number of cases?
+  at_color=$at_red
+  case $at_xpass_count:$at_fail_count:$at_xfail_count in
+    # So far, so good.
+    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
+    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
+
+    # Some unexpected failures
+    0:*:0) at_result="$at_result $at_were run,
+$at_fail_count failed unexpectedly." ;;
+
+    # Some failures, both expected and unexpected
+    0:*:1) at_result="$at_result $at_were run,
+$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
+    0:*:*) at_result="$at_result $at_were run,
+$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
+
+    # No unexpected failures, but some xpasses
+    *:0:*) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly." ;;
+
+    # No expected failures, but failures and xpasses
+    *:1:0) at_result="$at_result $at_were run,
+$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
+    *:*:0) at_result="$at_result $at_were run,
+$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
+
+    # All of them.
+    *:*:1) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly,
+$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
+    *:*:*) at_result="$at_result $at_were run,
+$at_xpass_count passed unexpectedly,
+$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
+  esac
+
+  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
+    at_result="All $at_result"
+  fi
+fi
+
+# Now put skips in the mix.
+case $at_skip_count in
+  0) ;;
+  1) at_result="$at_result
+1 test was skipped." ;;
+  *) at_result="$at_result
+$at_skip_count tests were skipped." ;;
+esac
+
+if test $at_unexpected_count = 0; then
+  echo "$at_color$at_result$at_std"
+  echo "$at_result" >&5
+else
+  echo "${at_color}ERROR: $at_result$at_std" >&2
+  echo "ERROR: $at_result" >&5
+  {
+    echo
+    $as_echo "## ------------------------ ##
+## Summary of the failures. ##
+## ------------------------ ##"
+
+    # Summary of failed and skipped tests.
+    if test $at_fail_count != 0; then
+      echo "Failed tests:"
+      $SHELL "$at_myself" $at_fail_list --list
+      echo
+    fi
+    if test $at_skip_count != 0; then
+      echo "Skipped tests:"
+      $SHELL "$at_myself" $at_skip_list --list
+      echo
+    fi
+    if test $at_xpass_count != 0; then
+      echo "Unexpected passes:"
+      $SHELL "$at_myself" $at_xpass_list --list
+      echo
+    fi
+    if test $at_fail_count != 0; then
+      $as_echo "## ---------------------- ##
+## Detailed failed tests. ##
+## ---------------------- ##"
+      echo
+      for at_group in $at_fail_list
+      do
+	at_group_normalized=$at_group
+
+  eval 'while :; do
+    case $at_group_normalized in #(
+    '"$at_format"'*) break;;
+    esac
+    at_group_normalized=0$at_group_normalized
+  done'
+
+	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
+	echo
+      done
+      echo
+    fi
+    if test -n "$at_top_srcdir"; then
+      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## ${at_top_build_prefix}config.log ##
+_ASBOX
+      sed 's/^/| /' ${at_top_build_prefix}config.log
+      echo
+    fi
+  } >&5
+
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## $as_me.log was created. ##
+_ASBOX
+
+  echo
+  if $at_debug_p; then
+    at_msg='per-test log files'
+  else
+    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
+  fi
+  $as_echo "Please send $at_msg and all information you think might help:
+
+   To: <open-cobol-list@lists.sourceforge.net>
+   Subject: [GNU Cobol 1.1] $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'.
+"
+  exit 1
+fi
+
+exit 0
+
+## ------------- ##
+## Actual tests. ##
+## ------------- ##
+#AT_START_1
+at_fn_group_banner 1 'copy.at:24' \
+  "COPY: file not found" "                           "
+at_xfail=no
+(
+  $as_echo "1. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -872,50 +2125,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "copy.at:39: \${COMPILE_ONLY} prog.cob"
-echo copy.at:39 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:6: Error: copy.inc: No such file or directory
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "copy.at:39: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/copy.at:37: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "copy.at:37"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:6: Error: copy.inc: No such file or directory
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/copy.at:37"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_1
+#AT_START_2
+at_fn_group_banner 2 'copy.at:44' \
+  "COPY: replacement order" "                        "
+at_xfail=no
+(
+  $as_echo "2. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  2 ) # 2. copy.at:44: COPY: replacement order
-    at_setup_line='copy.at:44'
-    at_desc='COPY: replacement order'
-    $at_quiet $ECHO_N "  2: COPY: replacement order                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "2. copy.at:44: testing ..."
-      $at_traceon
-
-
-
 cat >copy.inc <<'_ATEOF'
 
        01 TEST-VAR PIC X(2) VALUE "OK".
@@ -938,74 +2178,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "copy.at:65: \${COMPILE} -o prog prog.cob"
-echo copy.at:65 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "copy.at:65: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/copy.at:65: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "copy.at:65"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/copy.at:65"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/copy.at:66: ./prog"
+at_fn_check_prepare_trace "copy.at:66"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/copy.at:66"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "copy.at:66: ./prog"
-echo copy.at:66 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "copy.at:66: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_2
+#AT_START_3
+at_fn_group_banner 3 'copy.at:71' \
+  "COPY: separators" "                               "
+at_xfail=no
+(
+  $as_echo "3. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  3 ) # 3. copy.at:71: COPY: separators
-    at_setup_line='copy.at:71'
-    at_desc='COPY: separators'
-    $at_quiet $ECHO_N "  3: COPY: separators                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "3. copy.at:71: testing ..."
-      $at_traceon
-
-
-
 cat >copy.inc <<'_ATEOF'
 
        01 TEST-VAR PIC X(2) VALUE "OK".
@@ -1030,74 +2245,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "copy.at:94: \${COMPILE} -o prog prog.cob"
-echo copy.at:94 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "copy.at:94: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/copy.at:94: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "copy.at:94"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/copy.at:94"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/copy.at:95: ./prog"
+at_fn_check_prepare_trace "copy.at:95"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/copy.at:95"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "copy.at:95: ./prog"
-echo copy.at:95 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "copy.at:95: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_3
+#AT_START_4
+at_fn_group_banner 4 'copy.at:100' \
+  "COPY: partial replacement" "                      "
+at_xfail=no
+(
+  $as_echo "4. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  4 ) # 4. copy.at:100: COPY: partial replacement
-    at_setup_line='copy.at:100'
-    at_desc='COPY: partial replacement'
-    $at_quiet $ECHO_N "  4: COPY: partial replacement                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "4. copy.at:100: testing ..."
-      $at_traceon
-
-
-
 cat >copy.inc <<'_ATEOF'
 
        01 :TEST:-VAR PIC X(2) VALUE "OK".
@@ -1123,74 +2313,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "copy.at:124: \${COMPILE} -o prog prog.cob"
-echo copy.at:124 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "copy.at:124: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/copy.at:124: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "copy.at:124"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/copy.at:124"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/copy.at:125: ./prog"
+at_fn_check_prepare_trace "copy.at:125"
+( $at_check_trace; ./prog
+) >>"$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 "OKOK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/copy.at:125"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "copy.at:125: ./prog"
-echo copy.at:125 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OKOK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "copy.at:125: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_4
+#AT_START_5
+at_fn_group_banner 5 'copy.at:130' \
+  "COPY: recursive replacement" "                    "
+at_xfail=no
+(
+  $as_echo "5. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  5 ) # 5. copy.at:130: COPY: recursive replacement
-    at_setup_line='copy.at:130'
-    at_desc='COPY: recursive replacement'
-    $at_quiet $ECHO_N "  5: COPY: recursive replacement                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "5. copy.at:130: testing ..."
-      $at_traceon
-
-
-
 cat >copy-2.inc <<'_ATEOF'
 
        01 TEST-VAR PIC X(2) VALUE "OK".
@@ -1218,74 +2383,49 @@
 _ATEOF
 
 
-$at_traceoff
-echo "copy.at:154: \${COMPILE} -o prog prog.cob"
-echo copy.at:154 >$at_check_line_file
-( $at_traceon; ${COMPILE} -o prog prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "copy.at:154: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/copy.at:154: \${COMPILE} -o prog prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "copy.at:154"
+( $at_check_trace; ${COMPILE} -o prog prog.cob
+) >>"$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/copy.at:154"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
+{ set +x
+$as_echo "$at_srcdir/copy.at:155: ./prog"
+at_fn_check_prepare_trace "copy.at:155"
+( $at_check_trace; ./prog
+) >>"$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 "OK" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/copy.at:155"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-$at_traceon
 
-$at_traceoff
-echo "copy.at:155: ./prog"
-echo copy.at:155 >$at_check_line_file
-( $at_traceon; ./prog ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-echo >>$at_stdout; echo "OK" | $at_diff - $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "copy.at:155: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_5
+#AT_START_6
+at_fn_group_banner 6 'definition.at:27' \
+  "Invalid PROGRAM-ID" "                             "
+at_xfail=no
+(
+  $as_echo "6. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  6 ) # 6. definition.at:27: Invalid PROGRAM-ID
-    at_setup_line='definition.at:27'
-    at_desc='Invalid PROGRAM-ID'
-    $at_quiet $ECHO_N "  6: Invalid PROGRAM-ID                           $ECHO_C"
-    at_xfail=no
-    (
-      echo "6. definition.at:27: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1295,50 +2435,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:39: \${COMPILE_ONLY} prog.cob"
-echo definition.at:39 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:3: Error: PROGRAM-ID 'short' invalid
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:39: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:37: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:37"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:3: Error: PROGRAM-ID 'short' invalid
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:37"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_6
+#AT_START_7
+at_fn_group_banner 7 'definition.at:43' \
+  "Invalid PROGRAM-ID type clause (1)" "             "
+at_xfail=no
+(
+  $as_echo "7. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  7 ) # 7. definition.at:43: Invalid PROGRAM-ID type clause (1)
-    at_setup_line='definition.at:43'
-    at_desc='Invalid PROGRAM-ID type clause (1)'
-    $at_quiet $ECHO_N "  7: Invalid PROGRAM-ID type clause (1)           $ECHO_C"
-    at_xfail=no
-    (
-      echo "7. definition.at:43: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1348,50 +2475,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:55: \${COMPILE_ONLY} prog.cob"
-echo definition.at:55 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:3: Error: COMMON may only be used in a nested program
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:55: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:53: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:53"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:3: Error: COMMON may only be used in a nested program
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:53"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_7
+#AT_START_8
+at_fn_group_banner 8 'definition.at:59' \
+  "Invalid PROGRAM-ID type clause (2)" "             "
+at_xfail=no
+(
+  $as_echo "8. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  8 ) # 8. definition.at:59: Invalid PROGRAM-ID type clause (2)
-    at_setup_line='definition.at:59'
-    at_desc='Invalid PROGRAM-ID type clause (2)'
-    $at_quiet $ECHO_N "  8: Invalid PROGRAM-ID type clause (2)           $ECHO_C"
-    at_xfail=no
-    (
-      echo "8. definition.at:59: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1401,50 +2515,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:71: \${COMPILE_ONLY} prog.cob"
-echo definition.at:71 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:3: Error: syntax error, unexpected RECURSIVE, expecting '.'
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:71: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:69: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:69"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:3: Error: syntax error, unexpected RECURSIVE, expecting '.'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:69"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_8
+#AT_START_9
+at_fn_group_banner 9 'definition.at:81' \
+  "Undefined data name" "                            "
+at_xfail=no
+(
+  $as_echo "9. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  9 ) # 9. definition.at:81: Undefined data name
-    at_setup_line='definition.at:81'
-    at_desc='Undefined data name'
-    $at_quiet $ECHO_N "  9: Undefined data name                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "9. definition.at:81: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1456,50 +2557,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:95: \${COMPILE_ONLY} prog.cob"
-echo definition.at:95 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:5: Error: 'X' undefined
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:95: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:93: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:93"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:5: Error: 'X' undefined
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:93"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_9
+#AT_START_10
+at_fn_group_banner 10 'definition.at:99' \
+  "Undefined group name" "                           "
+at_xfail=no
+(
+  $as_echo "10. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  10 ) # 10. definition.at:99: Undefined group name
-    at_setup_line='definition.at:99'
-    at_desc='Undefined group name'
-    $at_quiet $ECHO_N " 10: Undefined group name                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "10. definition.at:99: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1514,50 +2602,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:116: \${COMPILE_ONLY} prog.cob"
-echo definition.at:116 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Error: 'X' in 'G' undefined
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:116: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:114: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:114"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: 'X' in 'G' undefined
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:114"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_10
+#AT_START_11
+at_fn_group_banner 11 'definition.at:120' \
+  "Undefined data name in group" "                   "
+at_xfail=no
+(
+  $as_echo "11. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  11 ) # 11. definition.at:120: Undefined data name in group
-    at_setup_line='definition.at:120'
-    at_desc='Undefined data name in group'
-    $at_quiet $ECHO_N " 11: Undefined data name in group                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "11. definition.at:120: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1574,50 +2649,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:139: \${COMPILE_ONLY} prog.cob"
-echo definition.at:139 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: 'Y' in 'G' undefined
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:139: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:137: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:137"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'Y' in 'G' undefined
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:137"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_11
+#AT_START_12
+at_fn_group_banner 12 'definition.at:143' \
+  "Reference not a group name" "                     "
+at_xfail=no
+(
+  $as_echo "12. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  12 ) # 12. definition.at:143: Reference not a group name
-    at_setup_line='definition.at:143'
-    at_desc='Reference not a group name'
-    $at_quiet $ECHO_N " 12: Reference not a group name                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "12. definition.at:143: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1632,50 +2694,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:160: \${COMPILE_ONLY} prog.cob"
-echo definition.at:160 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Error: 'X' in 'X' undefined
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:160: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:158: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:158"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: 'X' in 'X' undefined
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:158"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_12
+#AT_START_13
+at_fn_group_banner 13 'definition.at:167' \
+  "Incomplete 01 definition" "                       "
+at_xfail=no
+(
+  $as_echo "13. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  13 ) # 13. definition.at:167: Incomplete 01 definition
-    at_setup_line='definition.at:167'
-    at_desc='Incomplete 01 definition'
-    $at_quiet $ECHO_N " 13: Incomplete 01 definition                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "13. definition.at:167: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1686,50 +2735,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:180: \${COMPILE_ONLY} prog.cob"
-echo definition.at:180 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:6: Error: PICTURE clause required for 'X'
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:180: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:178: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:178"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:6: Error: PICTURE clause required for 'X'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:178"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_13
+#AT_START_14
+at_fn_group_banner 14 'definition.at:187' \
+  "Same labels in different sections" "              "
+at_xfail=no
+(
+  $as_echo "14. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  14 ) # 14. definition.at:187: Same labels in different sections
-    at_setup_line='definition.at:187'
-    at_desc='Same labels in different sections'
-    $at_quiet $ECHO_N " 14: Same labels in different sections            $ECHO_C"
-    at_xfail=no
-    (
-      echo "14. definition.at:187: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1747,49 +2783,35 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:205: \${COMPILE_ONLY} prog.cob"
-echo definition.at:205 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "definition.at:205: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:205: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:205"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$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/definition.at:205"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_14
+#AT_START_15
+at_fn_group_banner 15 'definition.at:212' \
+  "Redefinition of 01 items" "                       "
+at_xfail=no
+(
+  $as_echo "15. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  15 ) # 15. definition.at:212: Redefinition of 01 items
-    at_setup_line='definition.at:212'
-    at_desc='Redefinition of 01 items'
-    $at_quiet $ECHO_N " 15: Redefinition of 01 items                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "15. definition.at:212: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1801,51 +2823,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:227: \${COMPILE_ONLY} prog.cob"
-echo definition.at:227 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:7: Warning: Redefinition of 'X'
+{ set +x
+$as_echo "$at_srcdir/definition.at:224: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:224"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Redefinition of 'X'
 prog.cob:6: Warning: 'X' previously defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "definition.at:227: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/definition.at:224"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_15
+#AT_START_16
+at_fn_group_banner 16 'definition.at:231' \
+  "Redefinition of 01 and 02 items" "                "
+at_xfail=no
+(
+  $as_echo "16. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  16 ) # 16. definition.at:231: Redefinition of 01 and 02 items
-    at_setup_line='definition.at:231'
-    at_desc='Redefinition of 01 and 02 items'
-    $at_quiet $ECHO_N " 16: Redefinition of 01 and 02 items              $ECHO_C"
-    at_xfail=no
-    (
-      echo "16. definition.at:231: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1857,51 +2866,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:246: \${COMPILE_ONLY} prog.cob"
-echo definition.at:246 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:7: Warning: Redefinition of 'X'
+{ set +x
+$as_echo "$at_srcdir/definition.at:243: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:243"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Redefinition of 'X'
 prog.cob:6: Warning: 'X' previously defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "definition.at:246: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/definition.at:243"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_16
+#AT_START_17
+at_fn_group_banner 17 'definition.at:250' \
+  "Redefinition of 02 items" "                       "
+at_xfail=no
+(
+  $as_echo "17. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  17 ) # 17. definition.at:250: Redefinition of 02 items
-    at_setup_line='definition.at:250'
-    at_desc='Redefinition of 02 items'
-    $at_quiet $ECHO_N " 17: Redefinition of 02 items                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "17. definition.at:250: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1914,51 +2910,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:266: \${COMPILE_ONLY} prog.cob"
-echo definition.at:266 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Warning: Redefinition of 'X'
+{ set +x
+$as_echo "$at_srcdir/definition.at:263: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:263"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Warning: Redefinition of 'X'
 prog.cob:7: Warning: 'X' previously defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "definition.at:266: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/definition.at:263"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_17
+#AT_START_18
+at_fn_group_banner 18 'definition.at:270' \
+  "Redefinition of 77 items" "                       "
+at_xfail=no
+(
+  $as_echo "18. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  18 ) # 18. definition.at:270: Redefinition of 77 items
-    at_setup_line='definition.at:270'
-    at_desc='Redefinition of 77 items'
-    $at_quiet $ECHO_N " 18: Redefinition of 77 items                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "18. definition.at:270: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -1970,51 +2953,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:285: \${COMPILE_ONLY} prog.cob"
-echo definition.at:285 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:7: Warning: Redefinition of 'X'
+{ set +x
+$as_echo "$at_srcdir/definition.at:282: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:282"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Redefinition of 'X'
 prog.cob:6: Warning: 'X' previously defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "definition.at:285: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/definition.at:282"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_18
+#AT_START_19
+at_fn_group_banner 19 'definition.at:289' \
+  "Redefinition of 01 and 77 items" "                "
+at_xfail=no
+(
+  $as_echo "19. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  19 ) # 19. definition.at:289: Redefinition of 01 and 77 items
-    at_setup_line='definition.at:289'
-    at_desc='Redefinition of 01 and 77 items'
-    $at_quiet $ECHO_N " 19: Redefinition of 01 and 77 items              $ECHO_C"
-    at_xfail=no
-    (
-      echo "19. definition.at:289: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2026,51 +2996,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:304: \${COMPILE_ONLY} prog.cob"
-echo definition.at:304 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:7: Warning: Redefinition of 'X'
+{ set +x
+$as_echo "$at_srcdir/definition.at:301: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:301"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Redefinition of 'X'
 prog.cob:6: Warning: 'X' previously defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "definition.at:304: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/definition.at:301"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_19
+#AT_START_20
+at_fn_group_banner 20 'definition.at:308' \
+  "Redefinition of 88 items" "                       "
+at_xfail=no
+(
+  $as_echo "20. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  20 ) # 20. definition.at:308: Redefinition of 88 items
-    at_setup_line='definition.at:308'
-    at_desc='Redefinition of 88 items'
-    $at_quiet $ECHO_N " 20: Redefinition of 88 items                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "20. definition.at:308: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2083,51 +3040,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:324: \${COMPILE_ONLY} prog.cob"
-echo definition.at:324 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Warning: Redefinition of 'A'
+{ set +x
+$as_echo "$at_srcdir/definition.at:321: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:321"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Warning: Redefinition of 'A'
 prog.cob:7: Warning: 'A' previously defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "definition.at:324: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/definition.at:321"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_20
+#AT_START_21
+at_fn_group_banner 21 'definition.at:328' \
+  "Ambiguous reference to 02 items" "                "
+at_xfail=no
+(
+  $as_echo "21. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  21 ) # 21. definition.at:328: Ambiguous reference to 02 items
-    at_setup_line='definition.at:328'
-    at_desc='Ambiguous reference to 02 items'
-    $at_quiet $ECHO_N " 21: Ambiguous reference to 02 items              $ECHO_C"
-    at_xfail=no
-    (
-      echo "21. definition.at:328: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2145,52 +3089,39 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:350: \${COMPILE_ONLY} prog.cob"
-echo definition.at:350 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:11: Error: 'X' ambiguous; need qualification
+{ set +x
+$as_echo "$at_srcdir/definition.at:346: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:346"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:11: Error: 'X' ambiguous; need qualification
 prog.cob:7: Error: 'X' in 'G1' defined here
 prog.cob:9: Error: 'X' in 'G2' defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:350: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:346"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_21
+#AT_START_22
+at_fn_group_banner 22 'definition.at:354' \
+  "Ambiguous reference to 02 and 03 items" "         "
+at_xfail=no
+(
+  $as_echo "22. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  22 ) # 22. definition.at:354: Ambiguous reference to 02 and 03 items
-    at_setup_line='definition.at:354'
-    at_desc='Ambiguous reference to 02 and 03 items'
-    $at_quiet $ECHO_N " 22: Ambiguous reference to 02 and 03 items       $ECHO_C"
-    at_xfail=no
-    (
-      echo "22. definition.at:354: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2207,52 +3138,39 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:375: \${COMPILE_ONLY} prog.cob"
-echo definition.at:375 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: 'X' ambiguous; need qualification
+{ set +x
+$as_echo "$at_srcdir/definition.at:371: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:371"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'X' ambiguous; need qualification
 prog.cob:7: Error: 'X' in 'G' defined here
 prog.cob:8: Error: 'X' in 'X' in 'G' defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:375: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:371"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_22
+#AT_START_23
+at_fn_group_banner 23 'definition.at:379' \
+  "Ambiguous reference with qualification" "         "
+at_xfail=no
+(
+  $as_echo "23. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  23 ) # 23. definition.at:379: Ambiguous reference with qualification
-    at_setup_line='definition.at:379'
-    at_desc='Ambiguous reference with qualification'
-    $at_quiet $ECHO_N " 23: Ambiguous reference with qualification       $ECHO_C"
-    at_xfail=no
-    (
-      echo "23. definition.at:379: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2272,52 +3190,39 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:403: \${COMPILE_ONLY} prog.cob"
-echo definition.at:403 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:13: Error: 'Y' in 'X' ambiguous; need qualification
+{ set +x
+$as_echo "$at_srcdir/definition.at:399: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:399"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:13: Error: 'Y' in 'X' ambiguous; need qualification
 prog.cob:8: Error: 'Y' in 'X' in 'G1' defined here
 prog.cob:11: Error: 'Y' in 'X' in 'G2' defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:403: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:399"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_23
+#AT_START_24
+at_fn_group_banner 24 'definition.at:409' \
+  "Unique reference with ambiguous qualifiers" "     "
+at_xfail=no
+(
+  $as_echo "24. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  24 ) # 24. definition.at:409: Unique reference with ambiguous qualifiers
-    at_setup_line='definition.at:409'
-    at_desc='Unique reference with ambiguous qualifiers'
-    $at_quiet $ECHO_N " 24: Unique reference with ambiguous qualifiers   $ECHO_C"
-    at_xfail=no
-    (
-      echo "24. definition.at:409: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2337,49 +3242,35 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:429: \${COMPILE_ONLY} prog.cob"
-echo definition.at:429 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "definition.at:429: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:429: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:429"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$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/definition.at:429"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_24
+#AT_START_25
+at_fn_group_banner 25 'definition.at:445' \
+  "Undefined procedure name" "                       "
+at_xfail=no
+(
+  $as_echo "25. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  25 ) # 25. definition.at:445: Undefined procedure name
-    at_setup_line='definition.at:445'
-    at_desc='Undefined procedure name'
-    $at_quiet $ECHO_N " 25: Undefined procedure name                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "25. definition.at:445: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2390,50 +3281,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:458: \${COMPILE_ONLY} prog.cob"
-echo definition.at:458 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:5: Error: 'END-OF-PROGRAM' undefined
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:458: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:456: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:456"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:5: Error: 'END-OF-PROGRAM' undefined
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:456"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_25
+#AT_START_26
+at_fn_group_banner 26 'definition.at:465' \
+  "Redefinition of section names" "                  "
+at_xfail=no
+(
+  $as_echo "26. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  26 ) # 26. definition.at:465: Redefinition of section names
-    at_setup_line='definition.at:465'
-    at_desc='Redefinition of section names'
-    $at_quiet $ECHO_N " 26: Redefinition of section names                $ECHO_C"
-    at_xfail=no
-    (
-      echo "26. definition.at:465: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2445,52 +3323,39 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:481: \${COMPILE_ONLY} prog.cob"
-echo definition.at:481 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob: In section 'L':
+{ set +x
+$as_echo "$at_srcdir/definition.at:477: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:477"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob: In section 'L':
 prog.cob:6: Error: Redefinition of 'L'
 prog.cob:5: Error: 'L' previously defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:481: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:477"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_26
+#AT_START_27
+at_fn_group_banner 27 'definition.at:485' \
+  "Redefinition of section and paragraph names" "    "
+at_xfail=no
+(
+  $as_echo "27. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  27 ) # 27. definition.at:485: Redefinition of section and paragraph names
-    at_setup_line='definition.at:485'
-    at_desc='Redefinition of section and paragraph names'
-    $at_quiet $ECHO_N " 27: Redefinition of section and paragraph names  $ECHO_C"
-    at_xfail=no
-    (
-      echo "27. definition.at:485: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2502,52 +3367,39 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:501: \${COMPILE_ONLY} prog.cob"
-echo definition.at:501 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob: In section 'L':
+{ set +x
+$as_echo "$at_srcdir/definition.at:497: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:497"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob: In section 'L':
 prog.cob:6: Error: Redefinition of 'L'
 prog.cob:5: Error: 'L' previously defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:501: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:497"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_27
+#AT_START_28
+at_fn_group_banner 28 'definition.at:505' \
+  "Redefinition of paragraph names" "                "
+at_xfail=no
+(
+  $as_echo "28. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  28 ) # 28. definition.at:505: Redefinition of paragraph names
-    at_setup_line='definition.at:505'
-    at_desc='Redefinition of paragraph names'
-    $at_quiet $ECHO_N " 28: Redefinition of paragraph names              $ECHO_C"
-    at_xfail=no
-    (
-      echo "28. definition.at:505: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2559,32 +3411,20 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:518: \${COMPILE_ONLY} prog.cob"
-echo definition.at:518 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "definition.at:518: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:517: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:517"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$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/definition.at:517"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
 ## Change when we DON'T allow this
 ## AT_CHECK([${COMPILE_ONLY} prog.cob], [1], ,
 ## [prog.cob: In paragraph 'L':
@@ -2592,23 +3432,21 @@
 ## prog.cob:5: Error: 'L' previously defined here
 ## ])
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_28
+#AT_START_29
+at_fn_group_banner 29 'definition.at:529' \
+  "Ambiguous reference to paragraph name" "          "
+at_xfail=no
+(
+  $as_echo "29. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  29 ) # 29. definition.at:529: Ambiguous reference to paragraph name
-    at_setup_line='definition.at:529'
-    at_desc='Ambiguous reference to paragraph name'
-    $at_quiet $ECHO_N " 29: Ambiguous reference to paragraph name        $ECHO_C"
-    at_xfail=no
-    (
-      echo "29. definition.at:529: testing ..."
-      $at_traceon
 
 
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2624,53 +3462,40 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:550: \${COMPILE_ONLY} prog.cob"
-echo definition.at:550 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob: In section 'S-3':
+{ set +x
+$as_echo "$at_srcdir/definition.at:545: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:545"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob: In section 'S-3':
 prog.cob:10: Error: 'L' ambiguous; need qualification
 prog.cob:6: Error: 'L' in 'S-1' defined here
 prog.cob:8: Error: 'L' in 'S-2' defined here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "definition.at:550: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/definition.at:545"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_29
+#AT_START_30
+at_fn_group_banner 30 'definition.at:554' \
+  "Non-matching level numbers (extension)" "         "
+at_xfail=no
+(
+  $as_echo "30. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  30 ) # 30. definition.at:554: Non-matching level numbers (extension)
-    at_setup_line='definition.at:554'
-    at_desc='Non-matching level numbers (extension)'
-    $at_quiet $ECHO_N " 30: Non-matching level numbers (extension)       $ECHO_C"
-    at_xfail=no
-    (
-      echo "30. definition.at:554: testing ..."
-      $at_traceon
-
-
-
 cat >test.conf <<'_ATEOF'
 
 include "default.conf"
@@ -2694,50 +3519,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "definition.at:578: \${COMPILE_ONLY} -conf=test.conf prog.cob"
-echo definition.at:578 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} -conf=test.conf prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:9: Warning: No previous data item of level 04
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "definition.at:578: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/definition.at:576: \${COMPILE_ONLY} -conf=test.conf prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "definition.at:576"
+( $at_check_trace; ${COMPILE_ONLY} -conf=test.conf prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:9: Warning: No previous data item of level 04
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/definition.at:576"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_30
+#AT_START_31
+at_fn_group_banner 31 'expression.at:23' \
+  "Ambiguous AND/OR" "                               "
+at_xfail=no
+(
+  $as_echo "31. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  31 ) # 31. expression.at:23: Ambiguous AND/OR
-    at_setup_line='expression.at:23'
-    at_desc='Ambiguous AND/OR'
-    $at_quiet $ECHO_N " 31: Ambiguous AND/OR                             $ECHO_C"
-    at_xfail=no
-    (
-      echo "31. expression.at:23: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2755,51 +3567,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "expression.at:44: \${COMPILE_ONLY} prog.cob"
-echo expression.at:44 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:6: Warning: Suggest parentheses around AND within OR
+{ set +x
+$as_echo "$at_srcdir/expression.at:41: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "expression.at:41"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:6: Warning: Suggest parentheses around AND within OR
 prog.cob:10: Warning: Suggest parentheses around AND within OR
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "expression.at:44: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/expression.at:41"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_31
+#AT_START_32
+at_fn_group_banner 32 'expression.at:48' \
+  "START on SEQUENTIAL file" "                       "
+at_xfail=no
+(
+  $as_echo "32. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  32 ) # 32. expression.at:48: START on SEQUENTIAL file
-    at_setup_line='expression.at:48'
-    at_desc='START on SEQUENTIAL file'
-    $at_quiet $ECHO_N " 32: START on SEQUENTIAL file                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "32. expression.at:48: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2822,50 +3621,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "expression.at:73: \${COMPILE_ONLY} prog.cob"
-echo expression.at:73 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:16: Error: START not allowed on SEQUENTIAL files
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "expression.at:73: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/expression.at:71: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "expression.at:71"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:16: Error: START not allowed on SEQUENTIAL files
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/expression.at:71"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_32
+#AT_START_33
+at_fn_group_banner 33 'subscripts.at:33' \
+  "Subscripted item requires OCCURS clause" "        "
+at_xfail=no
+(
+  $as_echo "33. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  33 ) # 33. subscripts.at:33: Subscripted item requires OCCURS clause
-    at_setup_line='subscripts.at:33'
-    at_desc='Subscripted item requires OCCURS clause'
-    $at_quiet $ECHO_N " 33: Subscripted item requires OCCURS clause      $ECHO_C"
-    at_xfail=no
-    (
-      echo "33. subscripts.at:33: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2883,51 +3669,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:54: \${COMPILE_ONLY} prog.cob"
-echo subscripts.at:54 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:9: Error: 'G' cannot be subscripted
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:51: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:51"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:9: Error: 'G' cannot be subscripted
 prog.cob:11: Error: 'X' cannot be subscripted
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "subscripts.at:54: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:51"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_33
+#AT_START_34
+at_fn_group_banner 34 'subscripts.at:61' \
+  "The number of subscripts" "                       "
+at_xfail=no
+(
+  $as_echo "34. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  34 ) # 34. subscripts.at:61: The number of subscripts
-    at_setup_line='subscripts.at:61'
-    at_desc='The number of subscripts'
-    $at_quiet $ECHO_N " 34: The number of subscripts                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "34. subscripts.at:61: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -2954,53 +3727,40 @@
 _ATEOF
 
 
-$at_traceoff
-echo "subscripts.at:93: \${COMPILE_ONLY} prog.cob"
-echo subscripts.at:93 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: 'X' requires 1 subscript
+{ set +x
+$as_echo "$at_srcdir/subscripts.at:88: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "subscripts.at:88"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'X' requires 1 subscript
 prog.cob:14: Error: 'X' requires 1 subscript
 prog.cob:16: Error: 'Y' requires 2 subscripts
 prog.cob:20: Error: 'Y' requires 2 subscripts
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "subscripts.at:93: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/subscripts.at:88"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_34
+#AT_START_35
+at_fn_group_banner 35 'occurs.at:30' \
+  "OCCURS with level 01, 66, 77, and 88" "           "
+at_xfail=no
+(
+  $as_echo "35. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  35 ) # 35. occurs.at:30: OCCURS with level 01, 66, 77, and 88
-    at_setup_line='occurs.at:30'
-    at_desc='OCCURS with level 01, 66, 77, and 88'
-    $at_quiet $ECHO_N " 35: OCCURS with level 01, 66, 77, and 88         $ECHO_C"
-    at_xfail=no
-    (
-      echo "35. occurs.at:30: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3016,54 +3776,41 @@
 _ATEOF
 
 
-$at_traceoff
-echo "occurs.at:52: \${COMPILE_ONLY} prog.cob"
-echo occurs.at:52 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:11: Error: Level 88 item 'X-88' cannot have other than VALUE clause
+{ set +x
+$as_echo "$at_srcdir/occurs.at:46: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "occurs.at:46"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:11: Error: Level 88 item 'X-88' cannot have other than VALUE clause
 prog.cob:6: Error: Level 01 item 'X-01' cannot have OCCURS clause
 prog.cob:7: Error: Level 01 item 'G' cannot have OCCURS clause
 prog.cob:9: Error: Level 66 item 'X-66' cannot have other than RENAMES clause
 prog.cob:10: Error: Level 77 item 'X-77' cannot have OCCURS clause
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "occurs.at:52: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/occurs.at:46"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_35
+#AT_START_36
+at_fn_group_banner 36 'occurs.at:56' \
+  "OCCURS with variable-occurrence data item" "      "
+at_xfail=no
+(
+  $as_echo "36. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  36 ) # 36. occurs.at:56: OCCURS with variable-occurrence data item
-    at_setup_line='occurs.at:56'
-    at_desc='OCCURS with variable-occurrence data item'
-    $at_quiet $ECHO_N " 36: OCCURS with variable-occurrence data item    $ECHO_C"
-    at_xfail=no
-    (
-      echo "36. occurs.at:56: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3077,50 +3824,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "occurs.at:72: \${COMPILE_ONLY} prog.cob"
-echo occurs.at:72 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:7: Error: 'G-2' cannot have the OCCURS clause due to 'X'
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "occurs.at:72: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/occurs.at:70: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "occurs.at:70"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:7: Error: 'G-2' cannot have the OCCURS clause due to 'X'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/occurs.at:70"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_36
+#AT_START_37
+at_fn_group_banner 37 'occurs.at:94' \
+  "Nested OCCURS clause" "                           "
+at_xfail=no
+(
+  $as_echo "37. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  37 ) # 37. occurs.at:94: Nested OCCURS clause
-    at_setup_line='occurs.at:94'
-    at_desc='Nested OCCURS clause'
-    $at_quiet $ECHO_N " 37: Nested OCCURS clause                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "37. occurs.at:94: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3139,49 +3873,35 @@
 _ATEOF
 
 
-$at_traceoff
-echo "occurs.at:113: \${COMPILE_ONLY} prog.cob"
-echo occurs.at:113 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "occurs.at:113: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/occurs.at:113: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "occurs.at:113"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$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/occurs.at:113"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_37
+#AT_START_38
+at_fn_group_banner 38 'occurs.at:141' \
+  "OCCURS DEPENDING followed by another field" "     "
+at_xfail=no
+(
+  $as_echo "38. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  38 ) # 38. occurs.at:141: OCCURS DEPENDING followed by another field
-    at_setup_line='occurs.at:141'
-    at_desc='OCCURS DEPENDING followed by another field'
-    $at_quiet $ECHO_N " 38: OCCURS DEPENDING followed by another field   $ECHO_C"
-    at_xfail=no
-    (
-      echo "38. occurs.at:141: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3203,52 +3923,39 @@
 _ATEOF
 
 
-$at_traceoff
-echo "occurs.at:167: \${COMPILE_ONLY} prog.cob"
-echo occurs.at:167 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:7: Error: 'X' cannot have OCCURS DEPENDING
+{ set +x
+$as_echo "$at_srcdir/occurs.at:163: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "occurs.at:163"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:7: Error: 'X' cannot have OCCURS DEPENDING
 prog.cob:10: Error: 'G-3' cannot have OCCURS DEPENDING
 prog.cob:15: Error: 'X' cannot have OCCURS DEPENDING
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "occurs.at:167: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/occurs.at:163"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_38
+#AT_START_39
+at_fn_group_banner 39 'occurs.at:180' \
+  "OCCURS DEPENDING without TO clause" "             "
+at_xfail=no
+(
+  $as_echo "39. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  39 ) # 39. occurs.at:180: OCCURS DEPENDING without TO clause
-    at_setup_line='occurs.at:180'
-    at_desc='OCCURS DEPENDING without TO clause'
-    $at_quiet $ECHO_N " 39: OCCURS DEPENDING without TO clause           $ECHO_C"
-    at_xfail=no
-    (
-      echo "39. occurs.at:180: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3261,50 +3968,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "occurs.at:195: \${COMPILE_ONLY} prog.cob"
-echo occurs.at:195 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Error: ODO without TO clause does not conform to COBOL 2002
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "occurs.at:195: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/occurs.at:193: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "occurs.at:193"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: ODO without TO clause does not conform to COBOL 2002
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/occurs.at:193"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_39
+#AT_START_40
+at_fn_group_banner 40 'redefines.at:30' \
+  "REDEFINES: not following entry-name" "            "
+at_xfail=no
+(
+  $as_echo "40. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  40 ) # 40. redefines.at:30: REDEFINES: not following entry-name
-    at_setup_line='redefines.at:30'
-    at_desc='REDEFINES: not following entry-name'
-    $at_quiet $ECHO_N " 40: REDEFINES: not following entry-name          $ECHO_C"
-    at_xfail=no
-    (
-      echo "40. redefines.at:30: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3316,50 +4010,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:44: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:44 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:7: Error: REDEFINES clause must follow entry-name
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:44: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/redefines.at:42: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:42"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:7: Error: REDEFINES clause must follow entry-name
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:42"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_40
+#AT_START_41
+at_fn_group_banner 41 'redefines.at:51' \
+  "REDEFINES: level 02 by 01" "                      "
+at_xfail=no
+(
+  $as_echo "41. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  41 ) # 41. redefines.at:51: REDEFINES: level 02 by 01
-    at_setup_line='redefines.at:51'
-    at_desc='REDEFINES: level 02 by 01'
-    $at_quiet $ECHO_N " 41: REDEFINES: level 02 by 01                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "41. redefines.at:51: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3374,50 +4055,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:68: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:68 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Error: Level number of REDEFINES entries must be identical
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:68: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/redefines.at:66: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:66"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: Level number of REDEFINES entries must be identical
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:66"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_41
+#AT_START_42
+at_fn_group_banner 42 'redefines.at:72' \
+  "REDEFINES: level 03 by 02" "                      "
+at_xfail=no
+(
+  $as_echo "42. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  42 ) # 42. redefines.at:72: REDEFINES: level 03 by 02
-    at_setup_line='redefines.at:72'
-    at_desc='REDEFINES: level 03 by 02'
-    $at_quiet $ECHO_N " 42: REDEFINES: level 03 by 02                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "42. redefines.at:72: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3433,50 +4101,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:90: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:90 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:9: Error: 'X' undefined in 'G1'
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:90: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/redefines.at:88: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:88"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:9: Error: 'X' undefined in 'G1'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:88"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_42
+#AT_START_43
+at_fn_group_banner 43 'redefines.at:94' \
+  "REDEFINES: level 66" "                            "
+at_xfail=no
+(
+  $as_echo "43. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  43 ) # 43. redefines.at:94: REDEFINES: level 66
-    at_setup_line='redefines.at:94'
-    at_desc='REDEFINES: level 66'
-    $at_quiet $ECHO_N " 43: REDEFINES: level 66                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "43. redefines.at:94: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3492,50 +4147,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:112: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:112 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:9: Error: Level number of REDEFINES entry cannot be 66 or 88
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:112: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/redefines.at:110: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:110"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:9: Error: Level number of REDEFINES entry cannot be 66 or 88
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:110"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_43
+#AT_START_44
+at_fn_group_banner 44 'redefines.at:116' \
+  "REDEFINES: level 88" "                            "
+at_xfail=no
+(
+  $as_echo "44. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  44 ) # 44. redefines.at:116: REDEFINES: level 88
-    at_setup_line='redefines.at:116'
-    at_desc='REDEFINES: level 88'
-    $at_quiet $ECHO_N " 44: REDEFINES: level 88                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "44. redefines.at:116: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3550,50 +4192,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:133: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:133 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Error: Level number of REDEFINES entry cannot be 66 or 88
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:133: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/redefines.at:131: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:131"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: Level number of REDEFINES entry cannot be 66 or 88
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:131"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_44
+#AT_START_45
+at_fn_group_banner 45 'redefines.at:145' \
+  "REDEFINES: lower level number" "                  "
+at_xfail=no
+(
+  $as_echo "45. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  45 ) # 45. redefines.at:145: REDEFINES: lower level number
-    at_setup_line='redefines.at:145'
-    at_desc='REDEFINES: lower level number'
-    $at_quiet $ECHO_N " 45: REDEFINES: lower level number                $ECHO_C"
-    at_xfail=no
-    (
-      echo "45. redefines.at:145: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3610,50 +4239,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:164: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:164 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: 'X' undefined in 'G3'
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:164: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/redefines.at:162: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:162"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'X' undefined in 'G3'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:162"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_45
+#AT_START_46
+at_fn_group_banner 46 'redefines.at:171' \
+  "REDEFINES: with OCCURS" "                         "
+at_xfail=no
+(
+  $as_echo "46. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  46 ) # 46. redefines.at:171: REDEFINES: with OCCURS
-    at_setup_line='redefines.at:171'
-    at_desc='REDEFINES: with OCCURS'
-    $at_quiet $ECHO_N " 46: REDEFINES: with OCCURS                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "46. redefines.at:171: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3668,50 +4284,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:188: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:188 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Warning: The original definition 'X' should not have OCCURS
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "redefines.at:188: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/redefines.at:186: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:186"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Warning: The original definition 'X' should not have OCCURS
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/redefines.at:186"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_46
+#AT_START_47
+at_fn_group_banner 47 'redefines.at:192' \
+  "REDEFINES: with subscript" "                      "
+at_xfail=no
+(
+  $as_echo "47. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  47 ) # 47. redefines.at:192: REDEFINES: with subscript
-    at_setup_line='redefines.at:192'
-    at_desc='REDEFINES: with subscript'
-    $at_quiet $ECHO_N " 47: REDEFINES: with subscript                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "47. redefines.at:192: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3727,50 +4330,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:210: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:210 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:9: Error: 'X' cannot be subscripted here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:210: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/redefines.at:208: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:208"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:9: Error: 'X' cannot be subscripted here
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:208"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_47
+#AT_START_48
+at_fn_group_banner 48 'redefines.at:214' \
+  "REDEFINES: with variable occurrence" "            "
+at_xfail=no
+(
+  $as_echo "48. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  48 ) # 48. redefines.at:214: REDEFINES: with variable occurrence
-    at_setup_line='redefines.at:214'
-    at_desc='REDEFINES: with variable occurrence'
-    $at_quiet $ECHO_N " 48: REDEFINES: with variable occurrence          $ECHO_C"
-    at_xfail=no
-    (
-      echo "48. redefines.at:214: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3794,52 +4384,39 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:242: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:242 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Error: 'Y' cannot be variable length
+{ set +x
+$as_echo "$at_srcdir/redefines.at:238: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:238"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: 'Y' cannot be variable length
 prog.cob:11: Error: 'Y' cannot be variable length
 prog.cob:16: Error: The original definition 'X' cannot be variable length
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:242: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:238"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_48
+#AT_START_49
+at_fn_group_banner 49 'redefines.at:249' \
+  "REDEFINES: with qualification" "                  "
+at_xfail=no
+(
+  $as_echo "49. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  49 ) # 49. redefines.at:249: REDEFINES: with qualification
-    at_setup_line='redefines.at:249'
-    at_desc='REDEFINES: with qualification'
-    $at_quiet $ECHO_N " 49: REDEFINES: with qualification                $ECHO_C"
-    at_xfail=no
-    (
-      echo "49. redefines.at:249: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3856,50 +4433,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:268: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:268 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: 'X' cannot be qualified here
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:268: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/redefines.at:266: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:266"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'X' cannot be qualified here
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:266"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_49
+#AT_START_50
+at_fn_group_banner 50 'redefines.at:275' \
+  "REDEFINES: multiple redefinition" "               "
+at_xfail=no
+(
+  $as_echo "50. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  50 ) # 50. redefines.at:275: REDEFINES: multiple redefinition
-    at_setup_line='redefines.at:275'
-    at_desc='REDEFINES: multiple redefinition'
-    $at_quiet $ECHO_N " 50: REDEFINES: multiple redefinition             $ECHO_C"
-    at_xfail=no
-    (
-      echo "50. redefines.at:275: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -3916,76 +4480,51 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:294: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:294 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: 'B' not the original definition
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:294: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/redefines.at:292: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:292"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: 'B' not the original definition
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:292"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+{ set +x
+$as_echo "$at_srcdir/redefines.at:296: \${COMPILE_ONLY} -std=mvs prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:296"
+( $at_check_trace; ${COMPILE_ONLY} -std=mvs prog.cob
+) >>"$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/redefines.at:296"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
 
-$at_traceoff
-echo "redefines.at:296: \${COMPILE_ONLY} -std=mvs prog.cob"
-echo redefines.at:296 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} -std=mvs prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "redefines.at:296: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_50
+#AT_START_51
+at_fn_group_banner 51 'redefines.at:303' \
+  "REDEFINES: size exceeds" "                        "
+at_xfail=no
+(
+  $as_echo "51. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
 
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-  51 ) # 51. redefines.at:303: REDEFINES: size exceeds
-    at_setup_line='redefines.at:303'
-    at_desc='REDEFINES: size exceeds'
-    $at_quiet $ECHO_N " 51: REDEFINES: size exceeds                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "51. redefines.at:303: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4007,52 +4546,39 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:329: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:329 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Error: Size of 'A' larger than size of 'X'
+{ set +x
+$as_echo "$at_srcdir/redefines.at:325: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:325"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: Size of 'A' larger than size of 'X'
 prog.cob:11: Error: Size of 'A' larger than size of 'X'
 prog.cob:15: Error: Size of 'EXT-X-REDEF' larger than size of 'EXT-X'
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:329: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:325"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_51
+#AT_START_52
+at_fn_group_banner 52 'redefines.at:336' \
+  "REDEFINES: with VALUE" "                          "
+at_xfail=no
+(
+  $as_echo "52. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  52 ) # 52. redefines.at:336: REDEFINES: with VALUE
-    at_setup_line='redefines.at:336'
-    at_desc='REDEFINES: with VALUE'
-    $at_quiet $ECHO_N " 52: REDEFINES: with VALUE                        $ECHO_C"
-    at_xfail=no
-    (
-      echo "52. redefines.at:336: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4070,51 +4596,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:357: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:357 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:7: Error: Entries under REDEFINES cannot have VALUE clause
+{ set +x
+$as_echo "$at_srcdir/redefines.at:354: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:354"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:7: Error: Entries under REDEFINES cannot have VALUE clause
 prog.cob:9: Error: Entries under REDEFINES cannot have VALUE clause
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:357: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:354"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_52
+#AT_START_53
+at_fn_group_banner 53 'redefines.at:364' \
+  "REDEFINES: with intervention" "                   "
+at_xfail=no
+(
+  $as_echo "53. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  53 ) # 53. redefines.at:364: REDEFINES: with intervention
-    at_setup_line='redefines.at:364'
-    at_desc='REDEFINES: with intervention'
-    $at_quiet $ECHO_N " 53: REDEFINES: with intervention                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "53. redefines.at:364: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4133,51 +4646,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:386: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:386 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Error: REDEFINES must follow the original definition
+{ set +x
+$as_echo "$at_srcdir/redefines.at:383: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:383"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: REDEFINES must follow the original definition
 prog.cob:12: Error: REDEFINES must follow the original definition
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "redefines.at:386: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/redefines.at:383"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_53
+#AT_START_54
+at_fn_group_banner 54 'redefines.at:393' \
+  "REDEFINES: within REDEFINES" "                    "
+at_xfail=no
+(
+  $as_echo "54. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  54 ) # 54. redefines.at:393: REDEFINES: within REDEFINES
-    at_setup_line='redefines.at:393'
-    at_desc='REDEFINES: within REDEFINES'
-    $at_quiet $ECHO_N " 54: REDEFINES: within REDEFINES                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "54. redefines.at:393: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4193,49 +4693,35 @@
 _ATEOF
 
 
-$at_traceoff
-echo "redefines.at:409: \${COMPILE_ONLY} prog.cob"
-echo redefines.at:409 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "redefines.at:409: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/redefines.at:409: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "redefines.at:409"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$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/redefines.at:409"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_54
+#AT_START_55
+at_fn_group_banner 55 'value.at:45' \
+  "Numeric item (integer)" "                         "
+at_xfail=no
+(
+  $as_echo "55. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  55 ) # 55. value.at:45: Numeric item (integer)
-    at_setup_line='value.at:45'
-    at_desc='Numeric item (integer)'
-    $at_quiet $ECHO_N " 55: Numeric item (integer)                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "55. value.at:45: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4252,53 +4738,40 @@
 _ATEOF
 
 
-$at_traceoff
-echo "value.at:67: \${COMPILE_ONLY} prog.cob"
-echo value.at:67 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:6: Error: Invalid VALUE clause
+{ set +x
+$as_echo "$at_srcdir/value.at:62: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:62"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:6: Error: Invalid VALUE clause
 prog.cob:7: Warning: Numeric value is expected
 prog.cob:8: Warning: Value size exceeds data size
 prog.cob:10: Warning: Value size exceeds data size
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "value.at:67: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/value.at:62"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_55
+#AT_START_56
+at_fn_group_banner 56 'value.at:71' \
+  "Numeric item (non-integer)" "                     "
+at_xfail=no
+(
+  $as_echo "56. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  56 ) # 56. value.at:71: Numeric item (non-integer)
-    at_setup_line='value.at:71'
-    at_desc='Numeric item (non-integer)'
-    $at_quiet $ECHO_N " 56: Numeric item (non-integer)                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "56. value.at:71: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4314,51 +4787,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "value.at:90: \${COMPILE_ONLY} prog.cob"
-echo value.at:90 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:7: Warning: Value size exceeds data size
+{ set +x
+$as_echo "$at_srcdir/value.at:87: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:87"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Value size exceeds data size
 prog.cob:9: Warning: Value size exceeds data size
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "value.at:90: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/value.at:87"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_56
+#AT_START_57
+at_fn_group_banner 57 'value.at:94' \
+  "Numeric item with picture P" "                    "
+at_xfail=no
+(
+  $as_echo "57. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  57 ) # 57. value.at:94: Numeric item with picture P
-    at_setup_line='value.at:94'
-    at_desc='Numeric item with picture P'
-    $at_quiet $ECHO_N " 57: Numeric item with picture P                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "57. value.at:94: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4378,53 +4838,40 @@
 _ATEOF
 
 
-$at_traceoff
-echo "value.at:119: \${COMPILE_ONLY} prog.cob"
-echo value.at:119 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Warning: Value does not fit the picture string
+{ set +x
+$as_echo "$at_srcdir/value.at:114: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:114"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Warning: Value does not fit the picture string
 prog.cob:9: Warning: Value size exceeds data size
 prog.cob:12: Warning: Value does not fit the picture string
 prog.cob:13: Warning: Value size exceeds data size
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "value.at:119: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/value.at:114"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_57
+#AT_START_58
+at_fn_group_banner 58 'value.at:126' \
+  "Signed numeric literal" "                         "
+at_xfail=no
+(
+  $as_echo "58. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  58 ) # 58. value.at:126: Signed numeric literal
-    at_setup_line='value.at:126'
-    at_desc='Signed numeric literal'
-    $at_quiet $ECHO_N " 58: Signed numeric literal                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "58. value.at:126: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4440,51 +4887,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "value.at:145: \${COMPILE_ONLY} prog.cob"
-echo value.at:145 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:6: Error: Data item not signed
+{ set +x
+$as_echo "$at_srcdir/value.at:142: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:142"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:6: Error: Data item not signed
 prog.cob:7: Error: Data item not signed
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "value.at:145: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/value.at:142"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_58
+#AT_START_59
+at_fn_group_banner 59 'value.at:152' \
+  "Alphabetic item" "                                "
+at_xfail=no
+(
+  $as_echo "59. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  59 ) # 59. value.at:152: Alphabetic item
-    at_setup_line='value.at:152'
-    at_desc='Alphabetic item'
-    $at_quiet $ECHO_N " 59: Alphabetic item                              $ECHO_C"
-    at_xfail=no
-    (
-      echo "59. value.at:152: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4501,53 +4935,40 @@
 _ATEOF
 
 
-$at_traceoff
-echo "value.at:174: \${COMPILE_ONLY} prog.cob"
-echo value.at:174 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:6: Warning: Alphanumeric value is expected
+{ set +x
+$as_echo "$at_srcdir/value.at:169: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:169"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:6: Warning: Alphanumeric value is expected
 prog.cob:7: Error: Invalid VALUE clause
 prog.cob:8: Warning: Value does not fit the picture string
 prog.cob:10: Warning: Value size exceeds data size
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "value.at:174: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/value.at:169"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_59
+#AT_START_60
+at_fn_group_banner 60 'value.at:178' \
+  "Alphanumeric item" "                              "
+at_xfail=no
+(
+  $as_echo "60. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  60 ) # 60. value.at:178: Alphanumeric item
-    at_setup_line='value.at:178'
-    at_desc='Alphanumeric item'
-    $at_quiet $ECHO_N " 60: Alphanumeric item                            $ECHO_C"
-    at_xfail=no
-    (
-      echo "60. value.at:178: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4562,51 +4983,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "value.at:196: \${COMPILE_ONLY} prog.cob"
-echo value.at:196 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:6: Warning: Alphanumeric value is expected
+{ set +x
+$as_echo "$at_srcdir/value.at:193: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:193"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:6: Warning: Alphanumeric value is expected
 prog.cob:8: Warning: Value size exceeds data size
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "value.at:196: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/value.at:193"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_60
+#AT_START_61
+at_fn_group_banner 61 'value.at:200' \
+  "Alphanumeric group item" "                        "
+at_xfail=no
+(
+  $as_echo "61. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  61 ) # 61. value.at:200: Alphanumeric group item
-    at_setup_line='value.at:200'
-    at_desc='Alphanumeric group item'
-    $at_quiet $ECHO_N " 61: Alphanumeric group item                      $ECHO_C"
-    at_xfail=no
-    (
-      echo "61. value.at:200: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4624,51 +5032,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "value.at:221: \${COMPILE_ONLY} prog.cob"
-echo value.at:221 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:6: Warning: Alphanumeric value is expected
+{ set +x
+$as_echo "$at_srcdir/value.at:218: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:218"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:6: Warning: Alphanumeric value is expected
 prog.cob:10: Warning: Value size exceeds data size
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "value.at:221: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/value.at:218"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_61
+#AT_START_62
+at_fn_group_banner 62 'value.at:235' \
+  "Numeric-edited item" "                            "
+at_xfail=no
+(
+  $as_echo "62. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  62 ) # 62. value.at:235: Numeric-edited item
-    at_setup_line='value.at:235'
-    at_desc='Numeric-edited item'
-    $at_quiet $ECHO_N " 62: Numeric-edited item                          $ECHO_C"
-    at_xfail=no
-    (
-      echo "62. value.at:235: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4685,51 +5080,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "value.at:255: \${COMPILE_ONLY} prog.cob"
-echo value.at:255 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:7: Warning: Alphanumeric value is expected
+{ set +x
+$as_echo "$at_srcdir/value.at:252: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:252"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:7: Warning: Alphanumeric value is expected
 prog.cob:10: Warning: Value size exceeds data size
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "value.at:255: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/value.at:252"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_62
+#AT_START_63
+at_fn_group_banner 63 'value.at:259' \
+  "Alphanumeric-edited item" "                       "
+at_xfail=no
+(
+  $as_echo "63. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  63 ) # 63. value.at:259: Alphanumeric-edited item
-    at_setup_line='value.at:259'
-    at_desc='Alphanumeric-edited item'
-    $at_quiet $ECHO_N " 63: Alphanumeric-edited item                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "63. value.at:259: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4745,51 +5127,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "value.at:278: \${COMPILE_ONLY} prog.cob"
-echo value.at:278 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:6: Warning: Alphanumeric value is expected
+{ set +x
+$as_echo "$at_srcdir/value.at:275: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "value.at:275"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:6: Warning: Alphanumeric value is expected
 prog.cob:9: Warning: Value size exceeds data size
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "value.at:278: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/value.at:275"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_63
+#AT_START_64
+at_fn_group_banner 64 'move.at:39' \
+  "MOVE SPACE TO numeric or numeric-edited item" "   "
+at_xfail=no
+(
+  $as_echo "64. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  64 ) # 64. move.at:39: MOVE SPACE TO numeric or numeric-edited item
-    at_setup_line='move.at:39'
-    at_desc='MOVE SPACE TO numeric or numeric-edited item'
-    $at_quiet $ECHO_N " 64: MOVE SPACE TO numeric or numeric-edited item $ECHO_C"
-    at_xfail=no
-    (
-      echo "64. move.at:39: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4805,51 +5174,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "move.at:58: \${COMPILE_ONLY} prog.cob"
-echo move.at:58 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:9: Error: Invalid MOVE statement
+{ set +x
+$as_echo "$at_srcdir/move.at:55: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:55"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:9: Error: Invalid MOVE statement
 prog.cob:10: Error: Invalid MOVE statement
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "move.at:58: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/move.at:55"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_64
+#AT_START_65
+at_fn_group_banner 65 'move.at:65' \
+  "MOVE ZERO TO alphabetic item" "                   "
+at_xfail=no
+(
+  $as_echo "65. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  65 ) # 65. move.at:65: MOVE ZERO TO alphabetic item
-    at_setup_line='move.at:65'
-    at_desc='MOVE ZERO TO alphabetic item'
-    $at_quiet $ECHO_N " 65: MOVE ZERO TO alphabetic item                 $ECHO_C"
-    at_xfail=no
-    (
-      echo "65. move.at:65: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4863,50 +5219,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "move.at:81: \${COMPILE_ONLY} prog.cob"
-echo move.at:81 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Error: Invalid MOVE statement
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "move.at:81: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/move.at:79: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:79"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: Invalid MOVE statement
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/move.at:79"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_65
+#AT_START_66
+at_fn_group_banner 66 'move.at:91' \
+  "MOVE alphabetic TO x" "                           "
+at_xfail=no
+(
+  $as_echo "66. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  66 ) # 66. move.at:91: MOVE alphabetic TO x
-    at_setup_line='move.at:91'
-    at_desc='MOVE alphabetic TO x'
-    $at_quiet $ECHO_N " 66: MOVE alphabetic TO x                         $ECHO_C"
-    at_xfail=no
-    (
-      echo "66. move.at:91: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4929,51 +5272,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "move.at:117: \${COMPILE_ONLY} prog.cob"
-echo move.at:117 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:16: Error: Invalid MOVE statement
+{ set +x
+$as_echo "$at_srcdir/move.at:114: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:114"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:16: Error: Invalid MOVE statement
 prog.cob:17: Error: Invalid MOVE statement
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "move.at:117: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/move.at:114"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_66
+#AT_START_67
+at_fn_group_banner 67 'move.at:121' \
+  "MOVE alphanumeric TO x" "                         "
+at_xfail=no
+(
+  $as_echo "67. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  67 ) # 67. move.at:121: MOVE alphanumeric TO x
-    at_setup_line='move.at:121'
-    at_desc='MOVE alphanumeric TO x'
-    $at_quiet $ECHO_N " 67: MOVE alphanumeric TO x                       $ECHO_C"
-    at_xfail=no
-    (
-      echo "67. move.at:121: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -4996,49 +5326,35 @@
 _ATEOF
 
 
-$at_traceoff
-echo "move.at:144: \${COMPILE_ONLY} prog.cob"
-echo move.at:144 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-$at_diff $at_devnull $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   0) ;;
-   *) echo "move.at:144: exit code was $at_status, expected 0"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/move.at:144: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:144"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$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/move.at:144"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_67
+#AT_START_68
+at_fn_group_banner 68 'move.at:148' \
+  "MOVE alphanumeric-edited TO x" "                  "
+at_xfail=no
+(
+  $as_echo "68. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  68 ) # 68. move.at:148: MOVE alphanumeric-edited TO x
-    at_setup_line='move.at:148'
-    at_desc='MOVE alphanumeric-edited TO x'
-    $at_quiet $ECHO_N " 68: MOVE alphanumeric-edited TO x                $ECHO_C"
-    at_xfail=no
-    (
-      echo "68. move.at:148: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5061,51 +5377,38 @@
 _ATEOF
 
 
-$at_traceoff
-echo "move.at:174: \${COMPILE_ONLY} prog.cob"
-echo move.at:174 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:16: Error: Invalid MOVE statement
+{ set +x
+$as_echo "$at_srcdir/move.at:171: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:171"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:16: Error: Invalid MOVE statement
 prog.cob:17: Error: Invalid MOVE statement
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "move.at:174: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/move.at:171"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_68
+#AT_START_69
+at_fn_group_banner 69 'move.at:178' \
+  "MOVE numeric (integer) TO x" "                    "
+at_xfail=no
+(
+  $as_echo "69. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  69 ) # 69. move.at:178: MOVE numeric (integer) TO x
-    at_setup_line='move.at:178'
-    at_desc='MOVE numeric (integer) TO x'
-    $at_quiet $ECHO_N " 69: MOVE numeric (integer) TO x                  $ECHO_C"
-    at_xfail=no
-    (
-      echo "69. move.at:178: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5128,50 +5431,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "move.at:203: \${COMPILE_ONLY} prog.cob"
-echo move.at:203 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:13: Error: Invalid MOVE statement
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "move.at:203: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/move.at:201: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:201"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:13: Error: Invalid MOVE statement
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/move.at:201"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_69
+#AT_START_70
+at_fn_group_banner 70 'move.at:207' \
+  "MOVE numeric (non-integer) TO x" "                "
+at_xfail=no
+(
+  $as_echo "70. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  70 ) # 70. move.at:207: MOVE numeric (non-integer) TO x
-    at_setup_line='move.at:207'
-    at_desc='MOVE numeric (non-integer) TO x'
-    $at_quiet $ECHO_N " 70: MOVE numeric (non-integer) TO x              $ECHO_C"
-    at_xfail=no
-    (
-      echo "70. move.at:207: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5194,52 +5484,39 @@
 _ATEOF
 
 
-$at_traceoff
-echo "move.at:234: \${COMPILE_ONLY} prog.cob"
-echo move.at:234 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:13: Error: Invalid MOVE statement
+{ set +x
+$as_echo "$at_srcdir/move.at:230: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:230"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:13: Error: Invalid MOVE statement
 prog.cob:14: Error: Invalid MOVE statement
 prog.cob:15: Error: Invalid MOVE statement
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "move.at:234: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/move.at:230"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_70
+#AT_START_71
+at_fn_group_banner 71 'move.at:238' \
+  "MOVE numeric-edited TO x" "                       "
+at_xfail=no
+(
+  $as_echo "71. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  71 ) # 71. move.at:238: MOVE numeric-edited TO x
-    at_setup_line='move.at:238'
-    at_desc='MOVE numeric-edited TO x'
-    $at_quiet $ECHO_N " 71: MOVE numeric-edited TO x                     $ECHO_C"
-    at_xfail=no
-    (
-      echo "71. move.at:238: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5262,50 +5539,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "move.at:263: \${COMPILE_ONLY} prog.cob"
-echo move.at:263 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:13: Error: Invalid MOVE statement
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "move.at:263: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/move.at:261: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:261"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:13: Error: Invalid MOVE statement
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/move.at:261"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_71
+#AT_START_72
+at_fn_group_banner 72 'move.at:273' \
+  "CORRESPONDING - Operands must be groups" "        "
+at_xfail=no
+(
+  $as_echo "72. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  72 ) # 72. move.at:273: CORRESPONDING - Operands must be groups
-    at_setup_line='move.at:273'
-    at_desc='CORRESPONDING - Operands must be groups'
-    $at_quiet $ECHO_N " 72: CORRESPONDING - Operands must be groups      $ECHO_C"
-    at_xfail=no
-    (
-      echo "72. move.at:273: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5325,53 +5589,40 @@
 _ATEOF
 
 
-$at_traceoff
-echo "move.at:298: \${COMPILE_ONLY} prog.cob"
-echo move.at:298 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:11: Error: 'X' is not group name
+{ set +x
+$as_echo "$at_srcdir/move.at:293: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:293"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:11: Error: 'X' is not group name
 prog.cob:12: Error: 'X' is not group name
 prog.cob:13: Error: 'G-1 (1:1)' is not group name
 prog.cob:14: Error: 'G-2 (1:1)' is not group name
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "move.at:298: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/move.at:293"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_72
+#AT_START_73
+at_fn_group_banner 73 'move.at:306' \
+  "MOVE: misc" "                                     "
+at_xfail=no
+(
+  $as_echo "73. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  73 ) # 73. move.at:306: MOVE: misc
-    at_setup_line='move.at:306'
-    at_desc='MOVE: misc'
-    $at_quiet $ECHO_N " 73: MOVE: misc                                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "73. move.at:306: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5387,50 +5638,37 @@
 _ATEOF
 
 
-$at_traceoff
-echo "move.at:324: \${COMPILE_ONLY} prog.cob"
-echo move.at:324 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:6: Error: PICTURE clause required for 'INVALID-ITEM'
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "move.at:324: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/move.at:322: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "move.at:322"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:6: Error: PICTURE clause required for 'INVALID-ITEM'
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/move.at:322"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_73
+#AT_START_74
+at_fn_group_banner 74 'multiply.at:30' \
+  "Category check of Format 1" "                     "
+at_xfail=no
+(
+  $as_echo "74. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  74 ) # 74. multiply.at:30: Category check of Format 1
-    at_setup_line='multiply.at:30'
-    at_desc='Category check of Format 1'
-    $at_quiet $ECHO_N " 74: Category check of Format 1                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "74. multiply.at:30: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5455,15 +5693,14 @@
 _ATEOF
 
 
-$at_traceoff
-echo "multiply.at:63: \${COMPILE_ONLY} prog.cob"
-echo multiply.at:63 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: '456' is not a numeric name
+{ set +x
+$as_echo "$at_srcdir/multiply.at:55: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiply.at:55"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: '456' is not a numeric name
 prog.cob:12: Error: '\"a\"' is not a numeric value
 prog.cob:12: Error: '\"b\"' is not a numeric name
 prog.cob:14: Error: 'X-X' is not a numeric value
@@ -5470,41 +5707,29 @@
 prog.cob:16: Error: 'X-09' is not a numeric name
 prog.cob:18: Error: 'X-09' is not a numeric value
 prog.cob:18: Error: 'X-X' is not a numeric name
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "multiply.at:63: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/multiply.at:55"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_74
+#AT_START_75
+at_fn_group_banner 75 'multiply.at:69' \
+  "Category check of Format 2" "                     "
+at_xfail=no
+(
+  $as_echo "75. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  75 ) # 75. multiply.at:69: Category check of Format 2
-    at_setup_line='multiply.at:69'
-    at_desc='Category check of Format 2'
-    $at_quiet $ECHO_N " 75: Category check of Format 2                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "75. multiply.at:69: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5529,15 +5754,14 @@
 _ATEOF
 
 
-$at_traceoff
-echo "multiply.at:104: \${COMPILE_ONLY} prog.cob"
-echo multiply.at:104 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: '789' is not numeric or numeric-edited name
+{ set +x
+$as_echo "$at_srcdir/multiply.at:94: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiply.at:94"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: '789' is not numeric or numeric-edited name
 prog.cob:12: Error: '\"a\"' is not a numeric value
 prog.cob:12: Error: '\"b\"' is not a numeric value
 prog.cob:12: Error: '\"c\"' is not numeric or numeric-edited name
@@ -5546,41 +5770,29 @@
 prog.cob:16: Error: 'X-X' is not numeric or numeric-edited name
 prog.cob:18: Error: 'X-09' is not a numeric value
 prog.cob:18: Error: 'X-X' is not a numeric value
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "multiply.at:104: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/multiply.at:94"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_75
+#AT_START_76
+at_fn_group_banner 76 'multiply.at:110' \
+  "Category check of literals" "                     "
+at_xfail=no
+(
+  $as_echo "76. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  76 ) # 76. multiply.at:110: Category check of literals
-    at_setup_line='multiply.at:110'
-    at_desc='Category check of literals'
-    $at_quiet $ECHO_N " 76: Category check of literals                   $ECHO_C"
-    at_xfail=no
-    (
-      echo "76. multiply.at:110: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5601,52 +5813,39 @@
 _ATEOF
 
 
-$at_traceoff
-echo "multiply.at:135: \${COMPILE_ONLY} prog.cob"
-echo multiply.at:135 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:10: Error: '\"a\"' is not a numeric value
+{ set +x
+$as_echo "$at_srcdir/multiply.at:131: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiply.at:131"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:10: Error: '\"a\"' is not a numeric value
 prog.cob:14: Error: '\"a\"' is not a numeric value
 prog.cob:14: Error: '\"b\"' is not a numeric value
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "multiply.at:135: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/multiply.at:131"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_76
+#AT_START_77
+at_fn_group_banner 77 'set.at:26' \
+  "SET: misc" "                                      "
+at_xfail=no
+(
+  $as_echo "77. $at_setup_line: testing $at_desc ..."
+  $at_traceon
 
 
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
 
-  77 ) # 77. set.at:26: SET: misc
-    at_setup_line='set.at:26'
-    at_desc='SET: misc'
-    $at_quiet $ECHO_N " 77: SET: misc                                    $ECHO_C"
-    at_xfail=no
-    (
-      echo "77. set.at:26: testing ..."
-      $at_traceon
-
-
-
 cat >prog.cob <<'_ATEOF'
 
        IDENTIFICATION   DIVISION.
@@ -5660,318 +5859,24 @@
 _ATEOF
 
 
-$at_traceoff
-echo "set.at:42: \${COMPILE_ONLY} prog.cob"
-echo set.at:42 >$at_check_line_file
-( $at_traceon; ${COMPILE_ONLY} prog.cob ) >$at_stdout 2>$at_stder1
-at_status=$?
-grep '^ *+' $at_stder1 >&2
-grep -v '^ *+' $at_stder1 >$at_stderr
-at_failed=false
-echo >>$at_stderr; echo "prog.cob:8: Error: The address of 'X' cannot be changed
-" | $at_diff - $at_stderr || at_failed=:
-$at_diff $at_devnull $at_stdout || at_failed=:
-case $at_status in
-   77) echo 77 > $at_status_file
-            exit 77;;
-   1) ;;
-   *) echo "set.at:42: exit code was $at_status, expected 1"
-      at_failed=:;;
-esac
-if $at_failed; then
+{ set +x
+$as_echo "$at_srcdir/set.at:40: \${COMPILE_ONLY} prog.cob"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "set.at:40"
+( $at_check_trace; ${COMPILE_ONLY} prog.cob
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "prog.cob:8: Error: The address of 'X' cannot be changed
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 1 $at_status "$at_srcdir/set.at:40"
+$at_failed && at_fn_log_failure
+$at_traceon; }
 
-  echo 1 > $at_status_file
-  exit 1
-fi
 
-$at_traceon
-
-
-      $at_traceoff
-      $at_times_p && times >$at_times_file
-    ) 5>&1 2>&1 | eval $at_tee_pipe
-    at_status=`cat $at_status_file`
-    ;;
-
-
-  * )
-    echo "$as_me: no such test group: $at_group" >&2
-    continue
-    ;;
-  esac
-
-  # Be sure to come back to the suite directory, in particular
-  # since below we might `rm' the group directory we are in currently.
-  cd $at_suite_dir
-
-  case $at_group in
-    banner-*) ;;
-    *)
-      if test ! -f $at_check_line_file; then
-	sed "s/^ */$as_me: warning: /" <<_ATEOF
-	A failure happened in a test group before any test could be
-	run. This means that test suite is improperly designed.  Please
-	report this failure to <open-cobol-list@lists.sourceforge.net>.
-_ATEOF
-    	echo "$at_setup_line" >$at_check_line_file
-      fi
-      at_group_count=`expr 1 + $at_group_count`
-      $at_verbose $ECHO_N "$at_group. $at_setup_line: $ECHO_C"
-      echo $ECHO_N "$at_group. $at_setup_line: $ECHO_C" >> $at_group_log
-      case $at_xfail:$at_status in
-	yes:0)
-	    at_msg="UNEXPECTED PASS"
-	    at_xpass_list="$at_xpass_list $at_group"
-	    at_errexit=$at_errexit_p
-	    ;;
-	no:0)
-	    at_msg="ok"
-	    at_pass_list="$at_pass_list $at_group"
-	    at_errexit=false
-	    ;;
-	*:77)
-	    at_msg="skipped (`cat $at_check_line_file`)"
-	    at_skip_list="$at_skip_list $at_group"
-	    at_errexit=false
-	    ;;
-	yes:*)
-	    at_msg="expected failure (`cat $at_check_line_file`)"
-	    at_xfail_list="$at_xfail_list $at_group"
-	    at_errexit=false
-	    ;;
-	no:*)
-	    at_msg="FAILED (`cat $at_check_line_file`)"
-	    at_fail_list="$at_fail_list $at_group"
-	    at_errexit=$at_errexit_p
-	    ;;
-      esac
-      echo $at_msg
-      at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
-      case $at_status in
-	0|77)
-	  # $at_times_file is only available if the group succeeded.
-	  # We're not including the group log, so the success message
-	  # is written in the global log separately.  But we also
-	  # write to the group log in case they're using -d.
-	  if test -f $at_times_file; then
-	    at_log_msg="$at_log_msg	(`sed 1d $at_times_file`)"
-	    rm -f $at_times_file
-          fi
-	  echo "$at_log_msg" >> $at_group_log
-	  echo "$at_log_msg" >&5
-
-	  # Cleanup the group directory, unless the user wants the files.
-	  $at_debug_p || rm -rf $at_group_dir
-	  ;;
-	*)
-	  # Upon failure, include the log into the testsuite's global
-	  # log.  The failure message is written in the group log.  It
-	  # is later included in the global log.
-	  echo "$at_log_msg" >> $at_group_log
-
-	  # Upon failure, keep the group directory for autopsy, and
-	  # create the debugging script.
-	  {
-	    echo "#! /bin/sh"
-	    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\'''
-	    echo "cd $at_dir"
-	    echo 'exec ${CONFIG_SHELL-'"$SHELL"'}' "$0" \
-	         '-v -d' "$at_debug_args" "$at_group" '${1+"$@"}'
-	    echo 'exit 1'
-	  } >$at_group_dir/run
-	  chmod +x $at_group_dir/run
-	  $at_errexit && break
-	  ;;
-      esac
-      ;;
-  esac
-done
-
-# Back to the top directory.
-cd $at_dir
-
-# Compute the duration of the suite.
-at_stop_date=`date`
-at_stop_time=`(date +%s) 2>/dev/null`
-echo "$as_me: ending at: $at_stop_date" >&5
-at_duration_s=`(expr $at_stop_time - $at_start_time) 2>/dev/null`
-at_duration_m=`(expr $at_duration_s / 60) 2>/dev/null`
-at_duration_h=`(expr $at_duration_m / 60) 2>/dev/null`
-at_duration_s=`(expr $at_duration_s % 60) 2>/dev/null`
-at_duration_m=`(expr $at_duration_m % 60) 2>/dev/null`
-at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
-if test "$at_duration" != "h m s"; then
-  echo "$as_me: test suite duration: $at_duration" >&5
-fi
-
-# Wrap up the test suite with summary statistics.
-at_skip_count=`set dummy $at_skip_list; shift; echo $#`
-at_fail_count=`set dummy $at_fail_list; shift; echo $#`
-at_xpass_count=`set dummy $at_xpass_list; shift; echo $#`
-at_xfail_count=`set dummy $at_xfail_list; shift; echo $#`
-
-at_run_count=`expr $at_group_count - $at_skip_count`
-at_unexpected_count=`expr $at_xpass_count + $at_fail_count`
-at_total_fail_count=`expr $at_xfail_count + $at_fail_count`
-
-echo
-cat <<\_ASBOX
-## ------------- ##
-## Test results. ##
-## ------------- ##
-_ASBOX
-echo
-{
-  echo
-  cat <<\_ASBOX
-## ------------- ##
-## Test results. ##
-## ------------- ##
-_ASBOX
-  echo
-} >&5
-
-if test $at_run_count = 1; then
-  at_result="1 test"
-  at_were=was
-else
-  at_result="$at_run_count tests"
-  at_were=were
-fi
-if $at_errexit_p && test $at_unexpected_count != 0; then
-  if test $at_xpass_count = 1; then
-    at_result="$at_result $at_were run, one passed"
-  else
-    at_result="$at_result $at_were run, one failed"
-  fi
-  at_result="$at_result unexpectedly and inhibited subsequent tests."
-else
-  # Don't you just love exponential explosion of the number of cases?
-  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." ;;
-
-    # Some unexpected failures
-    0:*:0) at_result="$at_result $at_were run,
-$at_fail_count failed unexpectedly." ;;
-
-    # Some failures, both expected and unexpected
-    0:*:1) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    0:*:*) at_result="$at_result $at_were run,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-
-    # No unexpected failures, but some xpasses
-    *:0:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly." ;;
-
-    # No expected failures, but failures and xpasses
-    *:1:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
-    *:*:0) at_result="$at_result $at_were run,
-$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
-
-    # All of them.
-    *:*:1) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
-    *:*:*) at_result="$at_result $at_were run,
-$at_xpass_count passed unexpectedly,
-$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
-  esac
-
-  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
-    at_result="All $at_result"
-  fi
-fi
-
-# Now put skips in the mix.
-case $at_skip_count in
-  0) ;;
-  1) at_result="$at_result
-1 test was skipped." ;;
-  *) at_result="$at_result
-$at_skip_count tests were skipped." ;;
-esac
-
-if test $at_unexpected_count = 0; then
-  echo "$at_result"
-  echo "$at_result" >&5
-else
-  echo "ERROR: $at_result" >&2
-  echo "ERROR: $at_result" >&5
-  {
-    echo
-    cat <<\_ASBOX
-## ------------------------ ##
-## Summary of the failures. ##
-## ------------------------ ##
-_ASBOX
-
-    # Summary of failed and skipped tests.
-    if test $at_fail_count != 0; then
-      echo "Failed tests:"
-      $SHELL $0 $at_fail_list --list
-      echo
-    fi
-    if test $at_skip_count != 0; then
-      echo "Skipped tests:"
-      $SHELL $0 $at_skip_list --list
-      echo
-    fi
-    if test $at_xpass_count != 0; then
-      echo "Unexpected passes:"
-      $SHELL $0 $at_xpass_list --list
-      echo
-    fi
-    if test $at_fail_count != 0; then
-      cat <<\_ASBOX
-## ---------------------- ##
-## Detailed failed tests. ##
-## ---------------------- ##
-_ASBOX
-      echo
-      for at_group in $at_fail_list
-      do
-        # Normalize the test group number.
-        at_group_normalized=`expr "00000$at_group" : ".*\($at_format\)"`
-        # Create a fresh directory for the next test group, and enter.
-        at_group_dir=$at_suite_dir/$at_group_normalized
-        at_group_log=$at_group_dir/$as_me.log
-        cat $at_group_log
-        echo
-      done
-      echo
-    fi
-    if test -n "$at_top_srcdir"; then
-      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## $at_top_builddir/config.log ##
-_ASBOX
-      sed 's/^/| /' $at_top_builddir/config.log
-      echo
-    fi
-  } >&5
-
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## $as_me.log was created. ##
-_ASBOX
-
-  echo
-  echo "Please send \`$as_me.log' and all information you think might help:"
-  echo
-  echo "   To: <open-cobol-list@lists.sourceforge.net>"
-  echo "   Subject: [GNU Cobol 1.1] $as_me:$at_fail_list${at_fail_list:+ failed${at_xpass_list:+,}}$at_xpass_list${at_xpass_list:+ passed unexpectedly}"
-  echo
-  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.'
-    echo
-  fi
-    exit 1
-fi
-
-exit 0
-
-
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_77
