#! /bin/sh
# Generated from testsuite.at by GNU Autoconf 2.69.
#
# Test cases Copyright (C) 2020 Free Software Foundation, Inc.
#
# Written by Keisuke Nishida, Roger While, Simon Sobisch, Edward Hart,
# Ron Norman, Brian Tiffin, Dave Pitts
#
# Copyright (C) 2009-2012 Free Software Foundation, Inc.
#
# This test suite is free software; the Free Software Foundation gives
# unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##

# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh
  NULLCMD=:
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '${1+"$@"}'='"$@"'
  setopt NO_GLOB_SUBST
else
  case `(set -o) 2>/dev/null` in #(
  *posix*) :
    set -o posix ;; #(
  *) :
     ;;
esac
fi


as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='print -r --'
  as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
  as_echo='printf %s\n'
  as_echo_n='printf %s'
else
  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
    as_echo_n='/usr/ucb/echo -n'
  else
    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
    as_echo_n_body='eval
      arg=$1;
      case $arg in #(
      *"$as_nl"*)
	expr "X$arg" : "X\\(.*\\)$as_nl";
	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
      esac;
      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
    '
    export as_echo_n_body
    as_echo_n='sh -c $as_echo_n_body as_echo'
  fi
  export as_echo_body
  as_echo='sh -c $as_echo_body as_echo'
fi

# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
  PATH_SEPARATOR=:
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
      PATH_SEPARATOR=';'
  }
fi


# IFS
# We need space, tab and new line, in precisely that order.  Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" ""	$as_nl"

# Find who we are.  Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
  *[\\/]* ) as_myself=$0 ;;
  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
  done
IFS=$as_save_IFS

     ;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
  as_myself=$0
fi
if test ! -f "$as_myself"; then
  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
  exit 1
fi

# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there.  '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '

# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE

# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH

if test "x$CONFIG_SHELL" = x; then
  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh
  NULLCMD=:
  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
  # is contrary to our usage.  Disable this feature.
  alias -g '\${1+\"\$@\"}'='\"\$@\"'
  setopt NO_GLOB_SUBST
else
  case \`(set -o) 2>/dev/null\` in #(
  *posix*) :
    set -o posix ;; #(
  *) :
     ;;
esac
fi
"
  as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }

exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :

else
  exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
test -x / || exit 1"
  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
test \$(( 1 + 1 )) = 2 || exit 1"
  if (eval "$as_required") 2>/dev/null; then :
  as_have_required=yes
else
  as_have_required=no
fi
  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :

else
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
  as_found=:
  case $as_dir in #(
	 /*)
	   for as_base in sh bash ksh sh5; do
	     # Try only shells that exist, to save several forks.
	     as_shell=$as_dir/$as_base
	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
  CONFIG_SHELL=$as_shell as_have_required=yes
		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
  break 2
fi
fi
	   done;;
       esac
  as_found=false
done
$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
  CONFIG_SHELL=$SHELL as_have_required=yes
fi; }
IFS=$as_save_IFS


      if test "x$CONFIG_SHELL" != x; then :
  export CONFIG_SHELL
             # We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
  *v*x* | *x*v* ) as_opts=-vx ;;
  *v* ) as_opts=-v ;;
  *x* ) as_opts=-x ;;
  * ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi

    if test x$as_have_required = xno; then :
  $as_echo "$0: This script requires a shell more modern than all"
  $as_echo "$0: the shells that I found on your system."
  if test x${ZSH_VERSION+set} = xset ; then
    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
  else
    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
$0: including any error possibly output before this
$0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one."
  fi
  exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS

## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
  { eval $1=; unset $1;}
}
as_unset=as_fn_unset

# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
  return $1
} # as_fn_set_status

# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
  set +e
  as_fn_set_status $1
  exit $1
} # as_fn_exit

# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{

  case $as_dir in #(
  -*) as_dir=./$as_dir;;
  esac
  test -d "$as_dir" || eval $as_mkdir_p || {
    as_dirs=
    while :; do
      case $as_dir in #(
      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
      *) as_qdir=$as_dir;;
      esac
      as_dirs="'$as_qdir' $as_dirs"
      as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$as_dir" : 'X\(//\)[^/]' \| \
	 X"$as_dir" : 'X\(//\)$' \| \
	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
      test -d "$as_dir" && break
    done
    test -z "$as_dirs" || eval "mkdir $as_dirs"
  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"


} # as_fn_mkdir_p

# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
  test -f "$1" && test -x "$1"
} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
  eval 'as_fn_append ()
  {
    eval $1+=\$2
  }'
else
  as_fn_append ()
  {
    eval $1=\$$1\$2
  }
fi # as_fn_append

# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
  eval 'as_fn_arith ()
  {
    as_val=$(( $* ))
  }'
else
  as_fn_arith ()
  {
    as_val=`expr "$@" || test $? -eq 1`
  }
fi # as_fn_arith


# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
  as_status=$1; test $as_status -eq 0 && as_status=1
  if test "$4"; then
    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
  fi
  $as_echo "$as_me: error: $2" >&2
  as_fn_exit $as_status
} # as_fn_error

if expr a : '\(a\)' >/dev/null 2>&1 &&
   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  as_expr=expr
else
  as_expr=false
fi

if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
  as_basename=basename
else
  as_basename=false
fi

as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
	 X"$0" : 'X\(//\)$' \| \
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
    sed '/^.*\/\([^/][^/]*\)\/*$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`

if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
  as_dirname=dirname
else
  as_dirname=false
fi

# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits


  as_lineno_1=$LINENO as_lineno_1a=$LINENO
  as_lineno_2=$LINENO as_lineno_2a=$LINENO
  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
  sed -n '
    p
    /[$]LINENO/=
  ' <$as_myself |
    sed '
      s/[$]LINENO.*/&-/
      t lineno
      b
      :lineno
      N
      :loop
      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
      t loop
      s/-\n.*//
    ' >$as_me.lineno &&
  chmod +x "$as_me.lineno" ||
    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }

  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
  # already done that, so ensure we don't try to do so again and fall
  # in an infinite loop.  This has already happened in practice.
  _as_can_reexec=no; export _as_can_reexec
  # Don't try to exec as it changes $[0], causing all sort of problems
  # (the dirname of $[0] is not the place where we might find the
  # original and so on.  Autoconf is especially sensitive to this).
  . "./$as_me.lineno"
  # Exit status is that of the last command.
  exit
}

ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
  case `echo 'xy\c'` in
  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
  xy)  ECHO_C='\c';;
  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
       ECHO_T='	';;
  esac;;
*)
  ECHO_N='-n';;
esac

rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
  rm -f conf$$.dir/conf$$.file
else
  rm -f conf$$.dir
  mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
  if ln -s conf$$.file conf$$ 2>/dev/null; then
    as_ln_s='ln -s'
    # ... but there are two gotchas:
    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
    # In both cases, we have to default to `cp -pR'.
    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
      as_ln_s='cp -pR'
  elif ln conf$$.file conf$$ 2>/dev/null; then
    as_ln_s=ln
  else
    as_ln_s='cp -pR'
  fi
else
  as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null

if mkdir -p . 2>/dev/null; then
  as_mkdir_p='mkdir -p "$as_dir"'
else
  test -d ./-p && rmdir ./-p
  as_mkdir_p=false
fi

as_test_x='test -x'
as_executable_p=as_fn_executable_p

# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"

# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"





SHELL=${CONFIG_SHELL-/bin/sh}

# How were we run?
at_cli_args="$@"


# Not all shells have the 'times' builtin; the subshell is needed to make
# sure we discard the 'times: not found' message from the shell.
at_times_p=false
(times) >/dev/null 2>&1 && at_times_p=:

# CLI Arguments to pass to the debugging scripts.
at_debug_args=
# -e sets to true
at_errexit_p=false
# Shall we be verbose?  ':' means no, empty means yes.
at_verbose=:
at_quiet=
# Running several jobs in parallel, 0 means as many as test groups.
at_jobs=1
at_traceon=:
at_trace_echo=:
at_check_filter_trace=:

# Shall we keep the debug scripts?  Must be `:' when the suite is
# run by a debug script, so that the script doesn't remove itself.
at_debug_p=false
# Display help message?
at_help_p=false
# Display the version message?
at_version_p=false
# List test groups?
at_list_p=false
# --clean
at_clean=false
# Test groups to run
at_groups=
# Whether to rerun failed tests.
at_recheck=
# Whether a write failure occurred
at_write_fail=0

# The directory we run the suite in.  Default to . if no -C option.
at_dir=`pwd`
# An absolute reference to this testsuite script.
case $as_myself in
  [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
  * ) at_myself=$at_dir/$as_myself ;;
esac
# Whether -C is in effect.
at_change_dir=false

# Whether to enable colored test results.
at_color=auto
# List of the tested programs.
at_tested='cobc
cobcrun'
# As many question marks as there are digits in the last test group number.
# Used to normalize the test group numbers so that `ls' lists them in
# numerical order.
at_format='????'
# Description of all the test groups.
at_help_all="1;used_binaries.at:27;compiler help and information;runmisc cobc;
2;used_binaries.at:50;compiler warnings;runmisc cobc warning;
3;used_binaries.at:178;compiler outputs (general);runmisc cobc;
4;used_binaries.at:218;compiler outputs (file specified);runmisc cobc gen-c-line-directives gen-c-labels gen line labels;
5;used_binaries.at:263;compiler outputs (path specified);runmisc cobc;
6;used_binaries.at:292;compiler outputs (assembler);runmisc cobc;
7;used_binaries.at:327;source file not found;cobc runmisc;
8;used_binaries.at:337;temporary path invalid;cobc runmisc;
9;used_binaries.at:372;use of full path for cobc;runmisc;
10;used_binaries.at:390;C Compiler optimizations;runmisc cobc optimization;
11;used_binaries.at:427;invalid cobc option;runmisc cobc;
12;used_binaries.at:447;cobcrun help and information;runmisc cobcrun;
13;used_binaries.at:462;cobcrun validation;runmisc;
14;used_binaries.at:502;cobcrun -M DSO entry argument;runmisc;
15;used_binaries.at:562;cobcrun -M directory/ default;runmisc;
16;used_binaries.at:601;cobcrun -M directory/dso alternate;runmisc;
17;used_binaries.at:652;cobcrun -M DSO entry multiple arguments;runmisc;
18;used_binaries.at:698;cobcrun error messages;runmisc;
19;used_binaries.at:721;run job after compilation;runmisc cobcrun;
20;used_binaries.at:740;run job after compilation (path specified);runmisc cobcrun;
21;used_binaries.at:760;run job with optional arguments;runmisc cobcrun;
22;used_binaries.at:782;compile from stdin;runmisc cobc cobcrun;
23;used_binaries.at:812;run job after compilation from stdin;runmisc cobc cobcrun;
24;configuration.at:22;cobc with standard configuration file;configuration misc;
25;configuration.at:43;cobc dialect features for all -std;configuration misc;
26;configuration.at:101;cobc with configuration file via -std;configuration misc;
27;configuration.at:122;cobc with standard configuration file via -conf;configuration misc;
28;configuration.at:143;cobc with own configuration file via -conf;configuration misc;
29;configuration.at:172;cobc configuration: recursive include;configuration misc;
30;configuration.at:210;cobc with -std and -conf;configuration misc;
31;configuration.at:237;cobc compiler flag on command line;configuration misc;
32;configuration.at:256;cobc compiler flag on command line (priority);configuration misc;
33;configuration.at:289;cobc configuration: entries;configuration misc;
34;configuration.at:336;cobc configuration: conf missing;configuration misc;
35;configuration.at:364;cobc configuration: conf optional;configuration misc;
36;configuration.at:400;cobc configuration: incomplete;configuration misc;
37;configuration.at:524;runtime configuration;configuration misc;
38;configuration.at:543;runtime configuration file;configuration misc;
39;configuration.at:586;runtime configuration: recursive include;configuration misc;
40;configuration.at:615;runtime configuration: environment priority;configuration misc;
41;configuration.at:628;runtime configuration: entries;configuration misc;
42;configuration.at:709;runtime configuration: conf missing;configuration misc;
43;configuration.at:738;runtime configuration: conf optional;configuration misc;
44;configuration.at:751;runtime configuration: strings and environment;configuration environment variable;
45;configuration.at:765;validation of COB_CONFIG_DIR;runtime configuration environment variable;
46;syn_copy.at:21;COPY: IN / OF / -I;copy cobc;
47;syn_copy.at:123;COPY: relative copybooks;copy cobc;
48;syn_copy.at:168;COPY: extension;copy cobc in of -i;
49;syn_copy.at:255;COPY: within comment;copy;
50;syn_copy.at:284;COPY: file not found;copy case fold-copy;
51;syn_copy.at:340;COPY: recursive;copy;
52;syn_copy.at:380;COPY: replacement order;copy;
53;syn_copy.at:407;COPY: separators;copy;
54;syn_copy.at:436;COPY: partial replacement;copy;
55;syn_copy.at:466;COPY: LEADING replacement;copy;
56;syn_copy.at:496;COPY: TRAILING replacement;copy;
57;syn_copy.at:526;COPY: recursive replacement;copy;
58;syn_copy.at:556;COPY: fixed/free format;copy;
59;syn_definition.at:25;Invalid source name;definition;
60;syn_definition.at:37;Invalid PROGRAM-ID;definition;
61;syn_definition.at:54;Invalid PROGRAM-ID type clause (1);definition;
62;syn_definition.at:71;invalid PROGRAM-ID type clause (2);definition;
63;syn_definition.at:88;INITIAL / RECURSIVE before COMMON;program-id definition;
64;syn_definition.at:120;Undefined data name;definition;
65;syn_definition.at:139;Undefined group name;definition;
66;syn_definition.at:161;Undefined data name in group;definition;
67;syn_definition.at:185;Reference not a group name;definition;
68;syn_definition.at:207;Incomplete 01 definition;definition;
69;syn_definition.at:225;error handling in conditions;definition;
70;syn_definition.at:298;Same labels in different sections;definition;
71;syn_definition.at:322;Redefinition of 01 items;definition;
72;syn_definition.at:351;Redefinition of 01 and 02 items;definition;
73;syn_definition.at:371;Redefinition of 02 items;definition;
74;syn_definition.at:392;Redefinition of 77 items;definition;
75;syn_definition.at:412;Redefinition of 01 and 77 items;definition;
76;syn_definition.at:432;Redefinition of 88 items;definition;
77;syn_definition.at:453;Redefinition of program-name by other programs;definition;
78;syn_definition.at:533;Redefinition of program-name within program;definition;
79;syn_definition.at:563;Redefinition of function-prototype name;definition;
80;syn_definition.at:588;PROCEDURE DIVISION RETURNING OMITTED: main;runmisc;
81;syn_definition.at:608;PROCEDURE DIVISION RETURNING OMITTED: FUNCTION;runmisc;
82;syn_definition.at:627;PROCEDURE DIVISION RETURNING item;runmisc;
83;syn_definition.at:722;Data item with same name as program-name;definition;
84;syn_definition.at:749;Ambiguous reference to 02 items;definition;
85;syn_definition.at:776;Ambiguous reference to 02 and 03 items;definition;
86;syn_definition.at:802;Ambiguous reference with qualification;definition;
87;syn_definition.at:831;Unique reference with ambiguous qualifiers;definition;
88;syn_definition.at:867;Undefined procedure name;definition;
89;syn_definition.at:887;Redefinition of section names;definition;
90;syn_definition.at:912;Redefinition of section and paragraph names;definition;
91;syn_definition.at:938;Redefinition of label and variable names;definition;
92;syn_definition.at:975;Redefinition of paragraph names;definition;
93;syn_definition.at:1001;Ambiguous reference to paragraph name;definition;
94;syn_definition.at:1027;Non-matching level numbers (extension);definition;
95;syn_definition.at:1051;CALL BY VALUE alphanumeric item (extension);definition content;
96;syn_definition.at:1073;CALL BY VALUE national item (extension);definition content;
97;syn_definition.at:1096;CALL BY VALUE figurative constants;definition;
98;syn_definition.at:1130;Duplicate identification division header;definition;
99;syn_definition.at:1145;RETURNING in STOP RUN / GOBACK / EXIT PROGRAM;definition return-code;
100;syn_definition.at:1196;Invalid ENVIRONMENT DIVISION order;definition;
101;syn_definition.at:1221;Function without END FUNCTION;definition functions;
102;syn_definition.at:1235;Nested programs without END PROGRAM;definition;
103;syn_definition.at:1257;Nested programs not in procedure division;definition;
104;syn_definition.at:1276;Screen section starts with 78-level;screen definition;
105;syn_definition.at:1292;Invalid PICTURE strings;definition usage;
106;syn_definition.at:1552;PICTURE string with control character;definition;
107;syn_definition.at:1570;PICTURE strings invalid with BLANK WHEN ZERO;definition;
108;syn_definition.at:1593;PICTURE strings invalid with USAGE;definition;
109;syn_definition.at:1613;ALPHABET definition;definition;
110;syn_definition.at:1636;PROGRAM COLLATING SEQUENCE;definition alphabet;
111;syn_definition.at:1819;RENAMES item;definition 66;
112;syn_definition.at:1893;RENAMES of 01-, 66- and 77-level items;definition 66 extensions;
113;syn_definition.at:1919;SAME AS clause;definition external global;
114;syn_definition.at:1983;TYPEDEF clause;definition external global type usage listing symbols;
115;syn_definition.at:2214;LIKE clause;definition external global;
116;syn_definition.at:2272;APPLY COMMIT clause;definition i-o-control rollback;
117;syn_subscripts.at:23;Non-numeric subscript;subscripts;
118;syn_subscripts.at:50;Subscript range check;subscripts;
119;syn_subscripts.at:98;Subscript bounds with OCCURS DEPENDING ON;runsubscripts subscripts odo;
120;syn_subscripts.at:125;Subscripted item requires OCCURS clause;subscripts;
121;syn_subscripts.at:151;Number of subscripts;subscripts;
122;syn_subscripts.at:195;SET SSRANGE syntax;subscripts directive extensions;
123;syn_occurs.at:29;OCCURS with level 01 and 77;;
124;syn_occurs.at:84;OCCURS with level 66;renames;
125;syn_occurs.at:103;OCCURS with level 78;;
126;syn_occurs.at:121;OCCURS with level 88;;
127;syn_occurs.at:141;OCCURS with variable-occurrence data item;nested depending extensions odo;
128;syn_occurs.at:189;OCCURS data-items for INDEXED and KEY;ascending descending;
129;syn_occurs.at:229;Nested OCCURS clause;;
130;syn_occurs.at:266;OCCURS DEPENDING with wrong size;range;
131;syn_occurs.at:305;OCCURS DEPENDING followed by another field;extensions;
132;syn_occurs.at:347;OCCURS with unmatched DEPENDING / TO phrases;odo;
133;syn_occurs.at:390;OCCURS INDEXED before KEY;ascending descending;
134;syn_occurs.at:428;OCCURS size check;limit;
135;syn_redefines.at:28;REDEFINES: not following entry-name;redefines;
136;syn_redefines.at:53;REDEFINES: level 02 by 01;redefines;
137;syn_redefines.at:74;REDEFINES: level 03 by 02;redefines;
138;syn_redefines.at:96;REDEFINES: level 66;redefines;
139;syn_redefines.at:118;REDEFINES: level 88;redefines;
140;syn_redefines.at:147;REDEFINES: lower level number;redefines;
141;syn_redefines.at:173;REDEFINES: with OCCURS;redefines;
142;syn_redefines.at:194;REDEFINES: with subscript;redefines;
143;syn_redefines.at:216;REDEFINES: with variable occurrence;redefines;
144;syn_redefines.at:251;REDEFINES: with qualification;redefines;
145;syn_redefines.at:277;REDEFINES: multiple redefinition;redefines;
146;syn_redefines.at:305;REDEFINES: size exceeds;redefines;
147;syn_redefines.at:338;REDEFINES: with VALUE;redefines;
148;syn_redefines.at:370;REDEFINES: with intervention;redefines;
149;syn_redefines.at:399;REDEFINES: within REDEFINES;redefines;
150;syn_redefines.at:420;REDEFINES: non-referenced ambiguous item;redefines extensions;
151;syn_value.at:43;Numeric item (integer);value size;
152;syn_value.at:70;Numeric item (non-integer);value size;
153;syn_value.at:94;Numeric item with picture P;value size;
154;syn_value.at:126;Signed numeric literal;value;
155;syn_value.at:152;Alphabetic item;value size;
156;syn_value.at:179;Alphanumeric item;value size;
157;syn_value.at:204;Alphanumeric group item;value size;
158;syn_value.at:239;Numeric-edited item;value editing size;
159;syn_value.at:272;Alphanumeric-edited item;value editing size;
160;syn_value.at:340;Implicit picture from value;value;
161;syn_file.at:23;Missing SELECT;file;
162;syn_file.at:50;Duplicated SELECT;file;
163;syn_file.at:82;Missing FD;file;
164;syn_file.at:108;Duplicated FD;file;
165;syn_file.at:137;ASSIGN to device-name;file disk device;
166;syn_file.at:204;ASSIGN to printer-name;file printer print device;
167;syn_file.at:271;ASSIGN to lsq-device-name;file printer device;
168;syn_file.at:326;ASSIGN to variable;file;
169;syn_file.at:431;SELECT without ASSIGN;file;
170;syn_file.at:459;START on SEQUENTIAL file;file;
171;syn_file.at:496;OPEN SEQUENTIAL file REVERSED;file;
172;syn_file.at:544;OPEN SEQUENTIAL file NO REWIND;file;
173;syn_file.at:583;valid key items;file record alternate;
174;syn_file.at:633;INDEXED file invalid key items;record alternate split;
175;syn_file.at:697;variable record length;file;
176;syn_file.at:808;variable record length DEPENDING item;file;
177;syn_file.at:882;DECLARATIVES invalid procedure reference (1);file;
178;syn_file.at:971;DECLARATIVES invalid procedure reference (2);file;
179;syn_file.at:1012;EXTERNAL file;file;
180;syn_file.at:1040;RECORDING MODE;file extensions;
181;syn_file.at:1069;CODE-SET clause;file;
182;syn_file.at:1103;CODE-SET FOR clause;file extensions;
183;syn_file.at:1137;WRITE / REWRITE FROM clause and FILE;file record condition-name level-88 88;
184;syn_file.at:1198;Clauses following invalid ACCESS clause;file;
185;syn_file.at:1223;RELATIVE KEY type checks;relative file;
186;syn_file.at:1283;Mismatched KEY clause;file relative indexed;
187;syn_file.at:1310;RECORD DELIMITER;file;
188;syn_file.at:1418;FILE STATUS;file status;
189;syn_file.at:1517;VSAM status;file status extensions;
190;syn_file.at:1563;INDEXED file PASSWORD clause;file external split key;
191;syn_file.at:1614;RECORD clause equal limits;file;
192;syn_file.at:1654;FILE ... FROM literal;file;
193;syn_file.at:1713;WRITE / REWRITE on LINE SEQUENTIAL files;file;
194;syn_file.at:1748;WRITE / REWRITE on REPORT files;file;
195;syn_file.at:1785;SELECT without fd-name;file;
196;syn_file.at:1805;Undeclared FILE-ID variable;file;
197;syn_file.at:1830;OPEN I-O with LINE SEQUENTIAL;file;
198;syn_file.at:1855;ACCESS RANDOM with ORG SEQUENTIAL;file;
199;syn_file.at:1882;ALTERNATE RECORD KEY SUPPRESS WHEN;file;
200;syn_file.at:1927;RECORD definition with SOURCE IS / =;file;
201;syn_file.at:1978;ALTERNATE RECORD definition WITH NO DUPLICATES;file;
202;syn_file.at:2008;ALTERNATE RECORD definition omitting RECORD;file;
203;syn_file.at:2037;SELECT/OPEN syntax extensions;file select open mass-update bulk-addition lock;
204;syn_file.at:2132;GLOBAL FD nested progam;global-fd;
205;syn_file.at:2170;Invalid file name in SELECT;file;
206;syn_reportwriter.at:23;REPORT error/warning;report;
207;syn_reportwriter.at:124;REPORT not positive integers in COL / LINE PLUS;lines cols columns;
208;syn_reportwriter.at:177;Missing DETAIL line;report;
209;syn_reportwriter.at:220;REPORT LINE PLUS ZERO;report;
210;syn_reportwriter.at:270;Incorrect REPORT NAME;report;
211;syn_reportwriter.at:387;REPORT with PLUS RIGHT/CENTER;report;
212;syn_reportwriter.at:480;PAGE LIMITS clause;report;
213;syn_reportwriter.at:515;Report FD without period;report;
214;syn_reportwriter.at:548;REPORT with unreferenced control field;report;
215;syn_reportwriter.at:576;Incorrect USAGE clause;report;
216;syn_refmod.at:25;valid reference modification;refmod;
217;syn_refmod.at:51;Static out of bounds;refmod;
218;syn_refmod.at:95;constant-folding out of bounds;refmod expression;
219;syn_misc.at:23;ambiguous AND/OR;misc expression;
220;syn_misc.at:54;warn constant expressions;misc expression;
221;syn_misc.at:87;warn literal size;misc numeric constant expression;
222;syn_misc.at:352;warn literal size in constant expr. (level 88);misc numeric constant expression;
223;syn_misc.at:402;Invalid conditional expression (1);misc;
224;syn_misc.at:515;Invalid conditional expression (2);misc;
225;syn_misc.at:571;Invalid conditional expression (3);expression condition;
226;syn_misc.at:635;Valid conditional expression;misc;
227;syn_misc.at:668;missing headers;misc;
228;syn_misc.at:718;one line program;misc;
229;syn_misc.at:737;empty program;misc;
230;syn_misc.at:783;INITIALIZE constant;misc;
231;syn_misc.at:810;CLASS duplicate values;misc;
232;syn_misc.at:843;INSPECT invalid size;misc refmod;
233;syn_misc.at:884;INSPECT invalid target;misc;
234;syn_misc.at:907;INSPECT missing keyword;misc;
235;syn_misc.at:928;INSPECT repeated keywords;misc;
236;syn_misc.at:964;INSPECT incomplete clause;misc;
237;syn_misc.at:986;INSPECT multiple BEFORE/AFTER clauses;misc;
238;syn_misc.at:1009;maximum data size;misc;
239;syn_misc.at:1038;unreachable statement;misc extensions;
240;syn_misc.at:1088;CRT STATUS;special-names misc;
241;syn_misc.at:1130;SPECIAL-NAMES clause;misc extensions cursor crt status;
242;syn_misc.at:1219;CURRENCY SIGN;special-names misc;
243;syn_misc.at:1331;SWITCHES;runmisc extensions;
244;syn_misc.at:1457;unexpected mnemonic-name location;misc;
245;syn_misc.at:1484;wrong device for mnemonic-name;misc accept display special-names;
246;syn_misc.at:1509;missing mnemonic-name declaration;misc accept special-names;
247;syn_misc.at:1530;unknown device in dialect;misc accept display special-names;
248;syn_misc.at:1560;ACCEPT WITH ( NO ) UPDATE / DEFAULT;misc extensions;
249;syn_misc.at:1585;ACCEPT WITH AUTO / TAB;auto-skip autoterminate misc extensions screen;
250;syn_misc.at:1610;ACCEPT WITH LOWER / UPPER;misc extensions screen;
251;syn_misc.at:1632;ACCEPT WITH SIZE;protected size misc extensions screen;
252;syn_misc.at:1661;DISPLAY WITH SIZE;size misc extensions screen;
253;syn_misc.at:1686;source text after program-text area;misc fixed;
254;syn_misc.at:1707;line overflow in fixed-form / free-form;misc;
255;syn_misc.at:1755;missing newline in fixed-form / free-form;misc;
256;syn_misc.at:1788;continuation Indicator - too many lines;misc fixed literals listing;
257;syn_misc.at:2345;continuation of COBOL words;misc fixed literals;
258;syn_misc.at:2366;literal too long;misc literals literal-length continuation listing;
259;syn_misc.at:2601;line and floating comments;misc extensions indicator;
260;syn_misc.at:2766;word length;misc word-length;
261;syn_misc.at:2929;Segmentation Module;misc;
262;syn_misc.at:3021;ACCEPT FROM ESCAPE KEY;misc;
263;syn_misc.at:3046;Numeric literals;misc numeric-literal-length;
264;syn_misc.at:3225;floating-point literals;misc;
265;syn_misc.at:3332;X literals;misc;
266;syn_misc.at:3359;national literals;misc;
267;syn_misc.at:3397;NX literals;misc;
268;syn_misc.at:3435;binary literals;misc extensions;
269;syn_misc.at:3471;binary-hexadecimal literals;misc extensions;
270;syn_misc.at:3500;HP COBOL octal literals;misc extensions;
271;syn_misc.at:3536;ACUCOBOL literals;misc acu extensions binary octal hexadecimal;
272;syn_misc.at:3598;ACUCOBOL 32bit literal size;extensions literals;
273;syn_misc.at:3629;ACUCOBOL USAGE FLOAT / DOUBLE;misc acu extensions reserved;
274;syn_misc.at:3658;ACUCOBOL USAGE HANDLE;misc acu extensions reserved call destroy;
275;syn_misc.at:3766;ACUCOBOL WINDOW statements;misc acu extensions screen;
276;syn_misc.at:3851;ACUCOBOL GRAPHICAL controls;misc acu extensions screen modify inquire;
277;syn_misc.at:3930;DISPLAY MESSAGE BOX;misc acu extensions screen;
278;syn_misc.at:3973;DISPLAY OMITTED;misc extensions screen;
279;syn_misc.at:3994;CGI: EXTERNAL-FORM;misc acu extensions accept display;
280;syn_misc.at:4049;adding/removing reserved words;misc extensions configuration;
281;syn_misc.at:4079;adding aliases;misc extensions configuration reserved;
282;syn_misc.at:4113;overriding default words;misc extensions configuration reserved;
283;syn_misc.at:4143;complete specified word list;misc extensions configuration reserved;
284;syn_misc.at:4163;ANY LENGTH item as formal parameter;misc;
285;syn_misc.at:4198;ANY LENGTH item as BY VALUE formal parameter;misc by value;
286;syn_misc.at:4221;swapped SOURCE- and OBJECT-COMPUTER;misc extensions;
287;syn_misc.at:4243;CONF. SECTION paragraphs in wrong order;misc extensions;
288;syn_misc.at:4315;NOT ON EXCEPTION with STATIC CALL convention;misc call-convention;
289;syn_misc.at:4363;NOT ON EXCEPTION phrases before ON EXCEPTION;misc;
290;syn_misc.at:4427;wrong dialect hints;misc configuration reserved;
291;syn_misc.at:4451;redundant periods;misc;
292;syn_misc.at:4481;IF-ELSE statement list with invalid syntax;misc;
293;syn_misc.at:4514;EVALUATE statement with invalid syntax;misc expression;
294;syn_misc.at:4564;MF reserved word directives;extensions addrsv addsyn makesyn override remove;
295;syn_misc.at:4620;TURN directive;misc;
296;syn_misc.at:4653;STRING / UNSTRING with invalid syntax;misc;
297;syn_misc.at:4718;UNSTRING COUNT clause;misc;
298;syn_misc.at:4766;use of program-prototypes;misc;
299;syn_misc.at:4793;invalid INSPECT/TRANSFORM operands;misc inspect transform;
300;syn_misc.at:4837;SIGN clause checks;misc;
301;syn_misc.at:4862;conflicting entry conventions;misc entry-convention call-convention linkage;
302;syn_misc.at:4931;conflicting call conventions;misc call-convention linkage;
303;syn_misc.at:4960;dangling LINKAGE items;misc;
304;syn_misc.at:5016;duplicate PROCEDURE DIVISION/ENTRY USING items;misc division entry reference;
305;syn_misc.at:5037;duplicate CALL USING BY REFERENCE items;misc;
306;syn_misc.at:5063;ADD / SUBTRACT TABLE;misc;
307;syn_misc.at:5106;USE FOR DEBUGGING invalid ref-mod / subscripts;misc;
308;syn_misc.at:5151;USE FOR DEBUGGING duplicate targets;misc;
309;syn_misc.at:5204;USE FOR DEBUGGING syntax-checks;misc;
310;syn_misc.at:5275;Empty PERFORM with DEBUGGING MODE;misc;
311;syn_misc.at:5303;whitespace handling;misc;
312;syn_misc.at:5391;STOP identifier;misc extensions;
313;syn_misc.at:5417;01 CONSTANT;mirc reserved;
314;syn_misc.at:5465;78 VALUE;constant;
315;syn_misc.at:5512;level 78 NEXT / START OF;extensions constant length;
316;syn_misc.at:5571;SYMBOLIC CONSTANT;misc special-names;
317;syn_misc.at:5620;Constant Expressions (1);condition expression refmod if evaluate;
318;syn_misc.at:5745;Constant Expressions (2);condition expression unreachable 78;
319;syn_misc.at:5801;Constant Expressions (3);condition expression refmod undefined;
320;syn_misc.at:5892;Constant Expressions (4);condition expression refmod;
321;syn_misc.at:5925;Constant Expressions (5);condition expression unreachable;
322;syn_misc.at:6025;Missing imperative statements;condition expression if evaluate when perform;
323;syn_misc.at:6117;Fall-Through to WHEN OTHER;condition expression evaluate when;
324;syn_misc.at:6155;CONSTANT LENGTH / BYTE-LENGTH;misc;
325;syn_misc.at:6179;ANY LENGTH/NUMERIC with incorrect PIC;misc;
326;syn_misc.at:6225;VOLATILE clause;extensions;
327;syn_misc.at:6268;SET SOURCEFORMAT syntax checks;misc extensions directives;
328;syn_misc.at:6301;WHEN-COMPILED register in dialect;misc extensions;
329;syn_misc.at:6327;LIN / COL register;misc extensions;
330;syn_misc.at:6359;tokens consisting of multiple words;misc;
331;syn_misc.at:6386;zero-length literals;misc;
332;syn_misc.at:6447;@OPTIONS parsing;misc options;
333;syn_misc.at:6489;system routines with wrong number of parameters;misc call 91 c\$toupper cbl_gc_fork;
334;syn_misc.at:6518;invalid use of condition-name;misc move string unstring compute;
335;syn_misc.at:6582;XML GENERATE syntax checks;extensions;
336;syn_misc.at:6800;BASED clause, ALLOCATE / FREE statements;based;
337;syn_misc.at:6858;CONTINUE statement;based;
338;syn_misc.at:6902;conflict markers;;
339;syn_misc.at:6961;SORT syntax;misc fundamental key;
340;syn_misc.at:7015;OSVS I/O extensions;ibm file extensions;
341;syn_misc.at:7082;long literal in error message;misc literals;
342;syn_misc.at:7114;literal missing terminating character;misc literals terminator;
343;syn_misc.at:7135;EQUALS in expressions;misc;
344;syn_misc.at:7161;Invalid parentheses around condition;misc;
345;syn_misc.at:7184;DISPLAY directive (1);misc directive;
346;syn_misc.at:7207;DISPLAY directive (2);misc extension directive;
347;syn_misc.at:7227;DISPLAY directive (3);misc extension directive;
348;syn_misc.at:7246;conditional / define directives (1);misc directive;
349;syn_misc.at:7271;conditional / define directives (2);misc directive;
350;syn_misc.at:7299;conditional / define directives (3);misc directive;
351;syn_misc.at:7329;conditional / define directives (4);misc directive;
352;syn_misc.at:7351;error handling in conditional directives;misc directive;
353;syn_misc.at:7377;conditional directives with lvl 78 (1);misc extensions directive;
354;syn_misc.at:7412;conditional directives with lvl 78 (2);misc extensions directive;
355;syn_move.at:37;MOVE SPACE TO numeric or numeric-edited item;move editing;
356;syn_move.at:63;MOVE ZERO TO alphabetic item;move;
357;syn_move.at:89;MOVE alphabetic TO x;move;
358;syn_move.at:120;MOVE alphanumeric TO x;move;
359;syn_move.at:148;MOVE alphanumeric-edited TO x;move editing;
360;syn_move.at:179;MOVE numeric (integer) TO x;move;
361;syn_move.at:209;MOVE numeric (non-integer) TO x;move;
362;syn_move.at:241;MOVE numeric-edited TO x;move editing;
363;syn_move.at:276;CORRESPONDING - Operands must be groups;move;
364;syn_move.at:306;CORRESPONDING - Target has no matching items;move;
365;syn_move.at:332;MOVE to erroneous field;move;
366;syn_move.at:355;Overlapping MOVE;move;
367;syn_move.at:454;invalid source for MOVE;move label program-prototype;
368;syn_move.at:484;invalid target for MOVE;move constant label program-prototype;
369;syn_move.at:520;SET error;set-move;
370;syn_move.at:552;MOVE FIGURATIVE to NUMERIC;move;
371;syn_multiply.at:28;Category check of Format 1;multiply;
372;syn_multiply.at:64;Category check of Format 2;multiply;
373;syn_multiply.at:102;Category check of literals;multiply;
374;syn_screen.at:24;Flexible ACCEPT/DISPLAY syntax;screen accept display;
375;syn_screen.at:92;Duplicate ACCEPT/DISPLAY clauses;screen accept display;
376;syn_screen.at:121;AT clause;screen extensions;
377;syn_screen.at:165;ACCEPT/DISPLAY extensions detection;at line column accept display screen extensions;
378;syn_screen.at:211;FROM clause;screen;
379;syn_screen.at:237;Incorrect USAGE clause;screen;
380;syn_screen.at:268;SCREEN SECTION clause numbers;screen;
381;syn_screen.at:300;Screen clauses;screen;
382;syn_screen.at:326;ACCEPT ON EXCEPTION/ESCAPE;screen;
383;syn_screen.at:356;Referencing 88-level;screen;
384;syn_screen.at:387;Conflicting screen clauses;screen;
385;syn_screen.at:448;Redundant screen clauses;screen;
386;syn_screen.at:481;Screen item OCCURS w-/wo relative LINE/COL;occurs;
387;syn_screen.at:541;VALUE clause missing;screen;
388;syn_screen.at:565;FULL on numeric item;screen;
389;syn_screen.at:589;Compiler-specific SCREEN SECTION clause rules;screen;
390;syn_screen.at:747;MS-COBOL position-spec;screen position lin col;
391;syn_screen.at:795;Screen with invalid FROM clause;screen constant;
392;syn_set.at:24;SET ADDRESS OF item;set;
393;syn_set.at:53;SET item TO 88-level;set;
394;syn_functions.at:22;ANY LENGTH / NUMERIC as function RETURNING item;functions extensions;
395;syn_functions.at:64;REPOSITORY INTRINSIC phrase;functions;
396;syn_functions.at:87;REPOSITORY FUNCTION phrase;functions;
397;syn_functions.at:135;Redundant REPOSITORY entries;functions;
398;syn_functions.at:174;Missing prototype/definition;functions programs prototypes;
399;syn_functions.at:205;Empty function;functions;
400;syn_functions.at:232;Function definition inside program;functions;
401;syn_functions.at:255;Intrinsic functions: dialect;functions;
402;syn_functions.at:280;Intrinsic functions: replaced;functions substitute;
403;syn_functions.at:324;Intrinsic functions: number of arguments;functions;
404;syn_functions.at:364;Intrinsic functions: reference modification;functions refmod;
405;syn_functions.at:412;Intrinsic functions: argument type;functions;
406;syn_functions.at:435;invalid formatted date/time args;functions formatted-date formatted-current-date formatted-time formatted-datetime integer-of-formatted-date seconds-from-formatted-time;
407;syn_functions.at:516;invalid formats w/ DECIMAL-POINT IS COMMA;functions formatted-time formatted-datetime;
408;syn_functions.at:550;Specified offset and SYSTEM-OFFSET;functions formatted-time formatted-datetime;
409;syn_functions.at:574;FUNCTION LENGTH / BYTE-LENGTH;functions prefixed;
410;listings.at:21;Minimal lines per listing pages;listing symbols options;
411;listings.at:85;COPY within comment;listing;
412;listings.at:161;Replacement w/o strings;listing symbols;
413;listings.at:224;COPY replacement order;listing symbols;
414;listings.at:327;COPY separators;listing symbols;
415;listings.at:393;COPY partial replacement;listing symbols;
416;listings.at:609;COPY LEADING replacement;listing symbols;
417;listings.at:679;COPY TRAILING replacement;listing symbols;
418;listings.at:750;COPY recursive replacement;listing symbols;
419;listings.at:816;COPY multiple files;listing symbols based external global;
420;listings.at:1037;Error/Warning messages;listing error warning warnings symbols;
421;listings.at:1423;Two source files;listing;
422;listings.at:1491;Multiple programs in one file;listing symbols;
423;listings.at:1710;Multiple programs in one compilation group;listing;
424;listings.at:1898;Wide listing;listing;
425;listings.at:1986;Symbols: simple;listing comp;
426;listings.at:2140;Symbols: pointer;listing 64bit;
427;listings.at:2420;Symbols: multiple programs/functions;listing program function;
428;listings.at:2547;Symbols: OCCURS/REDEFINES;listing;
429;listings.at:2660;Conditional compilation;listing;
430;listings.at:2771;File descriptions;listing;
431;listings.at:3127;Invalid PICTURE strings;listing;
432;listings.at:3631;Variable format;listing;
433;listings.at:3675;LISTING directive;listing;
434;listings.at:3776;Listing-directive statements;listing directive eject skip1 skip2 skip3 title;
435;listings.at:3845;Eject page;listing directive;
436;listings.at:4043;Cross reference;listing xref;
437;listings.at:5570;Report Writer;listing;
438;listings.at:5879;huge REPLACE;listing;
439;listings.at:6801;Long concatenated literal;;
440;run_fundamental.at:24;DISPLAY literals;fundamental;
441;run_fundamental.at:86;DISPLAY literals, DECIMAL-POINT is COMMA;fundamental;
442;run_fundamental.at:125;Hexadecimal literal;fundamental;
443;run_fundamental.at:166;DISPLAY data items with VALUE clause;fundamental;
444;run_fundamental.at:213;DISPLAY data items with MOVE statement;fundamental;
445;run_fundamental.at:267;MOVE to edited item (1);fundamental editing;
446;run_fundamental.at:316;MOVE to edited item (2);fundamental editing;
447;run_fundamental.at:365;MOVE to item with simple and floating insertion;fundamental edited editing;
448;run_fundamental.at:400;MOVE to JUSTIFIED item;fundamental;
449;run_fundamental.at:445;MOVE integer literal to alphanumeric;fundamental;
450;run_fundamental.at:470;Compare FLOAT-LONG with floating-point literal;fundamental literal exponent;
451;run_fundamental.at:523;Check for equality of FLOAT-SHORT / FLOAT-LONG;fundamental;
452;run_fundamental.at:646;Overlapping MOVE;fundamental;
453;run_fundamental.at:747;Overlapping MOVE;fundamental;
454;run_fundamental.at:789;IBM MOVE;fundamental;
455;run_fundamental.at:828;ALPHABETIC test;fundamental;
456;run_fundamental.at:860;ALPHABETIC-UPPER test;fundamental;
457;run_fundamental.at:892;ALPHABETIC-LOWER test;fundamental;
458;run_fundamental.at:924;GLOBAL at same level;fundamental;
459;run_fundamental.at:973;GLOBAL at lower level;fundamental;
460;run_fundamental.at:1022;GLOBAL CONSTANT;fundamental;
461;run_fundamental.at:1107;GLOBAL identifiers from ENVIRONMENT DIVISION;fundamental function currency sign returning;
462;run_fundamental.at:1188;function with variable-length RETURNING item;fundamental udf;
463;run_fundamental.at:1271;Entry point visibility (1);fundamental call;
464;run_fundamental.at:1303;Entry point visibility (2);fundamental call;
465;run_fundamental.at:1337;Contained program visibility (1);fundamental call;
466;run_fundamental.at:1392;Contained program visibility (2);fundamental call;
467;run_fundamental.at:1445;Contained program visibility (3);fundamental call;
468;run_fundamental.at:1496;Contained program visibility (4);fundamental call;
469;run_fundamental.at:1551;CALL/CANCEL with program-prototype-name;fundamental;
470;run_fundamental.at:1624;GLOBAL FD (1);fundamental;
471;run_fundamental.at:1674;GLOBAL FD (2);fundamental;
472;run_fundamental.at:1724;GLOBAL FD (3);fundamental;
473;run_fundamental.at:1774;GLOBAL FD (4);fundamental;
474;run_fundamental.at:1824;CANCEL test (1);fundamental;
475;run_fundamental.at:1851;CANCEL test (2);fundamental;
476;run_fundamental.at:1891;CANCEL test (3);fundamental;
477;run_fundamental.at:1934;Separate sign positions (1);fundamental;
478;run_fundamental.at:1958;Separate sign positions (2);fundamental;
479;run_fundamental.at:1991;Context sensitive words (1);fundamental byte-length;
480;run_fundamental.at:2014;Context sensitive words (2);fundamental yyyymmdd;
481;run_fundamental.at:2038;Context sensitive words (3);fundamental yyyyddd;
482;run_fundamental.at:2062;Context sensitive words (4);fundamental intrinsic;
483;run_fundamental.at:2087;Context sensitive words (5);fundamental recursive;
484;run_fundamental.at:2110;Context sensitive words (6);fundamental normal;
485;run_fundamental.at:2132;Context sensitive words (7);fundamental compute away-from-zero;
486;run_fundamental.at:2159;Context sensitive words (8);fundamental ibm unbounded attributes;
487;run_fundamental.at:2186;ROUNDED AWAY-FROM-ZERO;fundamental compute;
488;run_fundamental.at:2249;ROUNDED NEAREST-AWAY-FROM-ZERO;fundamental compute;
489;run_fundamental.at:2312;ROUNDED NEAREST-EVEN;fundamental compute;
490;run_fundamental.at:2375;ROUNDED NEAREST-TOWARD-ZERO;fundamental compute;
491;run_fundamental.at:2438;ROUNDED TOWARD-GREATER;fundamental compute;
492;run_fundamental.at:2501;ROUNDED TOWARD-LESSER;fundamental compute;
493;run_fundamental.at:2564;ROUNDED TRUNCATION;fundamental compute;
494;run_fundamental.at:2627;Numeric operations (1);fundamental add subtract;
495;run_fundamental.at:2671;Numeric operations (2);fundamental add subtract;
496;run_fundamental.at:2977;Numeric operations (3);fundamental add subtract;
497;run_fundamental.at:3283;Numeric operations (4);fundamental add subtract;
498;run_fundamental.at:3589;Numeric operations (5);fundamental add subtract;
499;run_fundamental.at:3895;Numeric operations (6);fundamental add;
500;run_fundamental.at:3964;Numeric operations (7);fundamental add compute literal;
501;run_fundamental.at:4256;Numeric operations (8);fundamental compute literal;
502;run_fundamental.at:4306;ADD CORRESPONDING;fundamental corresponding;
503;run_fundamental.at:4354;ADD CORRESPONDING no match;fundamental corresponding;
504;run_fundamental.at:4404;SYNC in OCCURS;fundamental synchronize;
505;run_fundamental.at:4444;88 level with THRU;runmisc;
506;run_fundamental.at:4539;88 level with FILLER;runmisc;
507;run_fundamental.at:4568;88 level with FALSE IS clause;runmisc;
508;run_fundamental.at:4596;BLANK WHEN ZERO;fundamental;
509;run_fundamental.at:4626;MULTIPLY BY literal in INITIAL program;decimal constants fundamental;
510;run_fundamental.at:4650;debugging lines (not active);fundamental;
511;run_fundamental.at:4673;debugging lines (-fdebugging-line);fundamental;
512;run_fundamental.at:4696;debugging lines (WITH DEBUGGING MODE);fundamental extensions;
513;run_fundamental.at:4722;debugging lines, free format (not active);fundamental extensions;
514;run_fundamental.at:4745;debugging lines, free format (-fdebugging-line);fundamental extensions;
515;run_fundamental.at:4768;USE FOR DEBUGGING (no DEBUGGING MODE);fundamental;
516;run_fundamental.at:4813;USE FOR DEBUGGING (COB_SET_DEBUG deactivated);fundamental;
517;run_fundamental.at:4858;USE FOR DEBUGGING ON ALL PROCEDURES;fundamental;
518;run_fundamental.at:4909;USE FOR DEBUGGING ON procedure;fundamental;
519;run_fundamental.at:4957;USE FOR DEBUGGING (COB_SET_DEBUG switched);fundamental;
520;run_fundamental.at:5006;USE FOR DEBUGGING ON [ALL] REFERENCES OF field;fundamental;
521;run_fundamental.at:5074;USE FOR DEBUGGING, reference within DEBUGGING;fundamental;
522;run_fundamental.at:5115;USE FOR DEBUGGING, time of execution;fundamental debugging;
523;run_fundamental.at:5165;USE FOR DEBUGGING, reference with OCCURS;fundamental debugging;
524;run_fundamental.at:5198;USE FOR DEBUGGING, referencing BASED item;fundamental debugging free allocate;
525;run_fundamental.at:5235;USE FOR DEBUGGING file;fundamental open write read close;
526;run_fundamental.at:5278;Abbreviated Expressions;expression conditional;
527;run_fundamental.at:5384;integer arithmetic on floating-point var;fundamental literal;
528;run_fundamental.at:5426;TYPEDEF application;fundamental external;
529;run_subscripts.at:26;Subscript out of bounds;runsubscripts subscripts;
530;run_subscripts.at:71;Value of DEPENDING ON N out of bounds;runsubscripts subscripts;
531;run_subscripts.at:122;Subscript bounds with OCCURS DEPENDING ON (1);runsubscripts subscripts odo;
532;run_subscripts.at:148;Subscript bounds with OCCURS DEPENDING ON (2);runsubscripts subscripts odo if;
533;run_subscripts.at:176;Subscript bounds with OCCURS DEPENDING ON (3);runsubscripts subscripts odo evaluate when;
534;run_subscripts.at:211;Subscript by arithmetic expression;runsubscripts subscripts;
535;run_subscripts.at:242;length of ODO w/- reference modification;runsubscripts subscripts;
536;run_subscripts.at:298;SEARCH ALL with OCCURS DEPENDING ON;runsubscripts subscripts odo;
537;run_subscripts.at:351;enable / disable subscript check;runsubscripts subscripts debug exception-name turn bound nobound;
538;run_subscripts.at:396;BOUND and NOBOUND directives;runsubscripts subscripts extensions directive;
539;run_subscripts.at:465;SSRANGE and NOSSRANGE directives;runsubscripts subscripts extensions directive;
540;run_subscripts.at:501;CALL with OCCURS DEPENDING ON;runsubscripts subscripts odo;
541;run_refmod.at:25;Static reference modification;refmod;
542;run_refmod.at:57;Dynamic reference modification;refmod;
543;run_refmod.at:94;Offset underflow;refmod;
544;run_refmod.at:118;Offset overflow;refmod;
545;run_refmod.at:145;Length underflow;refmod;
546;run_refmod.at:189;Length overflow;refmod;
547;run_refmod.at:231;Length overflow with offset (1);refmod;
548;run_refmod.at:254;Length overflow with offset (2);refmod if;
549;run_refmod.at:280;Length overflow with offset (3);refmod evaluate when;
550;run_refmod.at:313;enable / disable ref-mod check;refmod debug exception-name;
551;run_refmod.at:388;MF SSRANGE and NOSSRANGE directives;refmod extensions directive;
552;run_accept.at:28;ACCEPT OMITTED (simple);extensions;
553;run_accept.at:50;ACCEPT FROM TIME / DATE / DAY / DAY-OF-WEEK (1);inspect converting;
554;run_accept.at:117;ACCEPT FROM TIME / DATE / DAY / DAY-OF-WEEK (2);configuration cob_current_date;
555;run_accept.at:200;ACCEPT DATE / DAY and intrinsic functions (1);function integer-of-date day-of-integer;
556;run_accept.at:237;ACCEPT DATE / DAY and intrinsic functions (2);configuration function integer-of-date day-of-integer cob_current_date;
557;run_accept.at:284;ACCEPT OMITTED (SCREEN);extensions;
558;run_initialize.at:27;INITIALIZE group entry with OCCURS;initialize;
559;run_initialize.at:55;INITIALIZE OCCURS with numeric edited;initialize editing;
560;run_initialize.at:88;INITIALIZE OCCURS with SIGN LEADING / TRAILING;initialize display;
561;run_initialize.at:159;INITIALIZE complex group (1);initialize;
562;run_initialize.at:187;INITIALIZE complex group (2);initialize;
563;run_initialize.at:215;INITIALIZE with REDEFINES;initialize;
564;run_initialize.at:242;INITIALIZE with FILLER;initialize;
565;run_initialize.at:309;INITIALIZE of EXTERNAL data items;initialize;
566;run_initialize.at:360;INITIALIZE with reference modification;initialize;
567;run_misc.at:23;Comma separator without space;runmisc;
568;run_misc.at:44;DECIMAL-POINT is COMMA (1);misc extensions;
569;run_misc.at:72;DECIMAL-POINT is COMMA (2);misc extensions;
570;run_misc.at:100;DECIMAL-POINT is COMMA (3);misc extensions;
571;run_misc.at:128;DECIMAL-POINT is COMMA (4);misc extensions;
572;run_misc.at:156;DECIMAL-POINT is COMMA (5);misc extensions;
573;run_misc.at:190;CURRENCY SIGN;misc fundamental;
574;run_misc.at:221;CURRENCY SIGN WITH PICTURE SYMBOL;misc fundamental;
575;run_misc.at:268;LOCAL-STORAGE (1);runmisc;
576;run_misc.at:304;LOCAL-STORAGE (2);runmisc;
577;run_misc.at:352;EXTERNAL data item;runmisc;
578;run_misc.at:394;EXTERNAL AS data item;runmisc;
579;run_misc.at:443;EXTERNAL data item size mismatch;runmisc;
580;run_misc.at:528;MOVE to itself;runmisc;
581;run_misc.at:554;MOVE with refmod;runmisc;
582;run_misc.at:578;MOVE with refmod (variable);runmisc;
583;run_misc.at:604;MOVE with group refmod;runmisc;
584;run_misc.at:629;MOVE indexes;runmisc;
585;run_misc.at:655;MOVE X'00';runmisc;
586;run_misc.at:690;MOVE Z'literal';runmisc literal;
587;run_misc.at:732;Floating continuation indicator;runmisc;
588;run_misc.at:754;Fixed continuation indicator;;
589;run_misc.at:796;Concatenation operator;runmisc;
590;run_misc.at:820;SOURCE FIXED/FREE directives;runmisc sourceformat fixed free;
591;run_misc.at:856;TURN directive;runmisc bound nobound directives;
592;run_misc.at:897;Level 01 subscripts;runmisc;
593;run_misc.at:919;Class check with reference modification;runmisc;
594;run_misc.at:943;Index and parenthesized expression;runmisc;
595;run_misc.at:967;Alphanumeric and binary numeric;runmisc;
596;run_misc.at:992;Non-numeric data in numeric items;runmisc;
597;run_misc.at:1066;Dynamic call with static linking;runmisc;
598;run_misc.at:1095;Static call with static linking;runmisc;
599;run_misc.at:1126;Dynamic CALL with ON EXCEPTION;runmisc;
600;run_misc.at:1158;Static CALL with ON EXCEPTION;runmisc;
601;run_misc.at:1198;CALL m1. CALL m2. CALL m1.;runmisc;
602;run_misc.at:1253;Recursive CALL of RECURSIVE program;runmisc cancel external;
603;run_misc.at:1310;Recursive CALL of INITIAL program;runmisc;
604;run_misc.at:1361;Recursive CALL with RECURSIVE assumed;runmisc;
605;run_misc.at:1407;Recursive CALL with ON EXCEPTION;runmisc exception-status;
606;run_misc.at:1464;Multiple calls of INITIAL program;runmisc call;
607;run_misc.at:1521;CALL binary literal parameter/LENGTH OF;runmisc;
608;run_misc.at:1575;INSPECT REPLACING LEADING ZEROS BY SPACES;runmisc;
609;run_misc.at:1597;INSPECT No repeat conversion check;runmisc;
610;run_misc.at:1623;INSPECT CONVERTING alphabet;runmisc ascii ebcdic;
611;run_misc.at:1658;INSPECT CONVERTING TO figurative constant;runmisc;
612;run_misc.at:1682;INSPECT CONVERTING NULL;runmisc;
613;run_misc.at:1706;INSPECT CONVERTING TO NULL;runmisc;
614;run_misc.at:1730;INSPECT REPLACING figurative constant;runmisc;
615;run_misc.at:1754;INSPECT TALLYING BEFORE;runmisc;
616;run_misc.at:1789;INSPECT TALLYING AFTER;runmisc;
617;run_misc.at:1824;INSPECT REPLACING TRAILING ZEROS BY SPACES;runmisc;
618;run_misc.at:1848;INSPECT REPLACING complex;runmisc;
619;run_misc.at:1874;SWITCHES (environment COB_SWITCH_n and SET);runmisc;
620;run_misc.at:1971;Nested PERFORM;runmisc;
621;run_misc.at:1995;PERFORM VARYING BY -0.2;runmisc;
622;run_misc.at:2022;PERFORM VARYING BY phrase omitted;runmisc;
623;run_misc.at:2053;EXIT PERFORM;runmisc;
624;run_misc.at:2078;EXIT PERFORM CYCLE;runmisc;
625;run_misc.at:2103;EXIT PARAGRAPH;runmisc;
626;run_misc.at:2135;EXIT SECTION;runmisc;
627;run_misc.at:2169;PERFORM FOREVER / PERFORM UNTIL EXIT;runmisc extension;
628;run_misc.at:2210;PERFORM inline (1);runmisc;
629;run_misc.at:2237;PERFORM inline (2);runmisc;
630;run_misc.at:2262;Non-overflow after overflow;runmisc;
631;run_misc.at:2292;PERFORM ... CONTINUE;runmisc;
632;run_misc.at:2309;STRING with subscript reference;runmisc;
633;run_misc.at:2336;STRING / UNSTRING NOT ON OVERFLOW;runmisc exceptions;
634;run_misc.at:2453;UNSTRING DELIMITED ALL LOW-VALUE;runmisc;
635;run_misc.at:2488;UNSTRING DELIMITED ALL SPACE-2;runmisc;
636;run_misc.at:2553;UNSTRING DELIMITED POINTER;runmisc;
637;run_misc.at:2607;UNSTRING DELIMITER IN;runmisc;
638;run_misc.at:2649;UNSTRING with FUNCTION / literal;runmisc;
639;run_misc.at:2719;SORT: table sort;runmisc;
640;run_misc.at:2761;SORT: table sort (2);runmisc;
641;run_misc.at:2886;SORT: table sort (3);runmisc;
642;run_misc.at:2979;SORT: EBCDIC table sort;runmisc alphabet object-computer;
643;run_misc.at:3046;PIC ZZZ-, ZZZ+;runmisc editing;
644;run_misc.at:3099;PERFORM type OSVS;runmisc;
645;run_misc.at:3136;Sticky LINKAGE;runmisc;
646;run_misc.at:3183;COB_PRE_LOAD;runmisc;
647;run_misc.at:3209;COB_PRE_LOAD with entry points;runmisc;
648;run_misc.at:3280;Lookup ENTRY from main executable;runmisc;
649;run_misc.at:3321;COB_LOAD_CASE=UPPER test;runmisc;
650;run_misc.at:3347;ALLOCATE / FREE with BASED item (1);runmisc;
651;run_misc.at:3374;ALLOCATE / FREE with BASED item (2);runmisc;
652;run_misc.at:3421;ALLOCATE CHARACTERS INITIALIZED TO;runmisc;
653;run_misc.at:3462;Initialized value with defaultbyte;runmisc;
654;run_misc.at:3487;CALL with OMITTED parameter;runmisc;
655;run_misc.at:3526;CALL in from C, cob_call_params explicitly set;runmisc;
656;run_misc.at:3587;CALL in from C, cob_call_params unknown;runmisc;
657;run_misc.at:3645;CALL C with callback, PROCEDURE DIVISION EXTERN;runmisc extensions call-convention;
658;run_misc.at:3712;CALL C with callback, ENTRY-CONVENTION EXTERN;runmisc call-convention linkage;
659;run_misc.at:3863;CALL in from C with init missing / implicit;runmisc implicit-init;
660;run_misc.at:3915;CALL STATIC C from COBOL;runmisc;
661;run_misc.at:3971;ANY LENGTH (1);runmisc call;
662;run_misc.at:4014;ANY LENGTH (2);runmisc call;
663;run_misc.at:4058;ANY LENGTH (3);runmisc call;
664;run_misc.at:4101;ANY LENGTH (4);runmisc if call;
665;run_misc.at:4144;ANY LENGTH (5);runmisc;
666;run_misc.at:4169;access to BASED item without allocation;runmisc;
667;run_misc.at:4210;access to OPTIONAL LINKAGE item not passed;runmisc;
668;run_misc.at:4252;STOP RUN WITH NORMAL STATUS;runmisc;
669;run_misc.at:4270;STOP RUN WITH ERROR STATUS;runmisc;
670;run_misc.at:4288;SYMBOLIC clause;runmisc alphabet;
671;run_misc.at:4325;OCCURS clause with 1 entry;runmisc;
672;run_misc.at:4374;Computing of different USAGEs w/o decimal point;runmisc binary-c-long binary-char binary-double binary-long comp comp-1 comp-2 comp-3 comp-5 comp-6 comp-x comp-n float-decimal-16 float-decimal-34 float-long float-short;
673;run_misc.at:5010;Computing of different USAGEs w/- decimal point;runmisc binary-c-long binary-char binary-double binary-long comp comp-1 comp-2 comp-3 comp-5 comp-6 comp-n comp-x float-decimal-16 float-decimal-34 float-long float-short;
674;run_misc.at:5645;C/C++ reserved words/predefined identifiers;runmisc;
675;run_misc.at:6105;ON EXCEPTION clause of DISPLAY;runmisc exceptions screen;
676;run_misc.at:6130;EC-SCREEN-LINE-NUMBER and -STARTING-COLUMN;runmisc exceptions screen;
677;run_misc.at:6171;LINE/COLUMN 0 exceptions;line column runmisc exceptions extensions screen;
678;run_misc.at:6209;SET LAST EXCEPTION TO OFF;runmisc exceptions exception-status exception-location;
679;run_misc.at:6245;void PROCEDURE;runmisc;
680;run_misc.at:6274;Figurative constants to numeric field;numeric;
681;run_misc.at:6336;MF FIGURATIVE to NUMERIC;move;
682;run_misc.at:6471;CALL RETURNING;runmisc giving return-code;
683;run_misc.at:6510;void PROCEDURE, NOTHING return;runmisc procedure using returning omitted call giving;
684;run_misc.at:6545;READY TRACE / RESET TRACE;runmisc -ftrace -ftraceall -fsource-location call recursive return-code cob_physical_cancel cob_pre_load;
685;run_misc.at:6907;Trace feature with subroutine;trace;
686;run_misc.at:8976;stack and dump feature;;
687;run_misc.at:9699;Test dump feature (2);;
688;run_misc.at:9964;CALL with program prototypes;runmisc;
689;run_misc.at:10020;REDEFINES values on FILLER and INITIALIZE;runmisc initialize;
690;run_misc.at:10075;PICTURE with constant-name;runmisc;
691;run_misc.at:10103;Quote marks in comment paragraphs;runmisc;
692;run_misc.at:10129;Numeric MOVE with/without -fbinary-truncate;runmisc size;
693;run_misc.at:10189;Alphanumeric MOVE with truncation;misc fundamental size;
694;run_misc.at:10240;PROGRAM-ID / CALL literal/variable with spaces;call;
695;run_misc.at:10308;C API Test (param based);call;
696;run_misc.at:10542;C API Test (field based);call;
697;run_misc.at:10768;DEFAULT ROUNDED MODE;runmisc;
698;run_misc.at:10798;OCCURS INDEXED ASCENDING;occurs extension;
699;run_misc.at:10896;ZERO unsigned and negative binary subscript;runmisc;
700;run_misc.at:10960;Default Arithmetic (1);runmisc;
701;run_misc.at:11064;Default Arithmetic Test (2);runmisc;
702;run_misc.at:11115;OSVS Arithmetic (1);runmisc;
703;run_misc.at:11232;OSVS Arithmetic Test (2);runmisc;
704;run_misc.at:11289;SET CONSTANT directive;misc directives extensions;
705;run_misc.at:11392;DEFINE OVERRIDE;cdf directive;
706;run_misc.at:11458;DEFINE Defaults;cdf directive;
707;run_misc.at:11524;78 VALUE;constant misc;
708;run_misc.at:11592;01 CONSTANT;misc;
709;run_misc.at:11672;DISPLAY UPON;chaining printer pipe console syserr syspch syspunch cob_display_print_pipe cob_display_print_file cob_display_punch_file;
710;run_misc.at:11764;FLOAT-DECIMAL w/o SIZE ERROR;numeric runmisc float-decimal-16 float-decimal-34 display compute;
711;run_misc.at:11938;FLOAT-SHORT / FLOAT-LONG w/o SIZE ERROR;numeric runmisc comp-1 comp-2 display compute;
712;run_misc.at:12137;FLOAT-SHORT with SIZE ERROR;comp-1;
713;run_misc.at:12188;FLOAT-LONG with SIZE ERROR;comp-2;
714;run_misc.at:12245;EC-SIZE-ZERO-DIVIDE;misc fundamental exceptions divide compute exception-status;
715;run_misc.at:12288;EC-SIZE-OVERFLOW;misc fundamental exceptions;
716;run_misc.at:12319;Constant Expressions;runmisc condition expression;
717;run_misc.at:12405;ENTRY FOR GO TO / GO TO ENTRY;runmisc condition expression;
718;run_misc.at:12495;runtime checks within conditions;runmisc condition expression;
719;run_misc.at:12609;libcob version check;runmisc;
720;run_file.at:23;OPEN EXTEND and CLOSE, SEQUENTIAL;runfile empty close optional write read;
721;run_file.at:89;DELETE FILE, SEQUENTIAL;runfile file open i-o optional;
722;run_file.at:159;OUTPUT on SEQUENTIAL file to missing directory;runfile open assign;
723;run_file.at:195;OPEN EXTEND and CLOSE, INDEXED;runfile empty close optional write read;
724;run_file.at:267;DELETE FILE, INDEXED;runfile file open i-o optional;
725;run_file.at:340;OUTPUT on INDEXED file to missing directory;runfile open assign;
726;run_file.at:379;READ INTO data item AT-END sequence;runfile;
727;run_file.at:416;First READ on empty SEQUENTIAL INDEXED file;runfile;
728;run_file.at:456;READ NEXT without previous START;runfile write indexed;
729;run_file.at:534;REWRITE a RELATIVE file with RANDOM access;runfile;
730;run_file.at:601;File SORT, SEQUENTIAL;runfile using giving;
731;run_file.at:651;File SORT, SEQUENTIAL variable records;runfile;
732;run_file.at:733;File SORT, LINE SEQUENTIAL;runfile using giving;
733;run_file.at:792;LINAGE and LINAGE-COUNTER sample;runfile optional file status read write end-of-page line sequential configuration cob_current_date;
734;run_file.at:1078;File SORT, LINE SEQUENTIAL same file;runfile using giving;
735;run_file.at:1125;File SORT, LINE SEQUENTIAL variable records;runfile;
736;run_file.at:1189;File MERGE, LINE SEQUENTIAL variable records;runfile;
737;run_file.at:1280;SORT nonexistent file;runfile;
738;run_file.at:1315;SORT with INPUT/OUTPUT PROCEDUREs;runfile;
739;run_file.at:1405;SORT with key1 ASCENDING, key2 DESCENDING;runfile;
740;run_file.at:1469;ASSIGN with LOCAL-STORAGE item;runfile;
741;run_file.at:1506;ASSIGN with LOCAL-STORAGE item and INITIAL prog;runfile;
742;run_file.at:1546;ASSIGN with BASED data item;runfile status;
743;run_file.at:1630;ASSIGN with data item in LINKAGE;runfile-control file status;
744;run_file.at:1802;ASSIGN with empty data item;runfile status;
745;run_file.at:1843;INDEXED file key-name;runfile split key;
746;run_file.at:1885;INDEXED file sparse/split keys;runfile split key sparse suppress;
747;run_file.at:2405;INDEXED file split keys WITH DUPLICATES;runfile key;
748;run_file.at:2563;INDEXED file variable length record;runfile optional suppress write start read;
749;run_file.at:2839;INDEXED sample;runfile optional file status read write duplicates start;
750;run_file.at:3242;WRITE + REWRITE FILE name;runfile;
751;run_file.at:3395;START RELATIVE (1);fundamental runfile delete file;
752;run_file.at:3444;START RELATIVE (2);fundamental runfile;
753;run_file.at:3520;START RELATIVE (3);runfile;
754;run_file.at:3596;READ on OPTIONAL missing RELATIVE / SEQUENTIAL;runfile;
755;run_file.at:3718;READ on OPTIONAL missing INDEXED file;runfile;
756;run_file.at:3768;EXTERNAL RELATIVE file;runfile;
757;run_file.at:3804;DECLARATIVES procedure referencing;runfile;
758;run_file.at:3844;DECLARATIVES procedure referencing (multiple);runfile;
759;run_file.at:3888;System routines for directories (1);extensions runfile cbl_create_dir cbl_change_dir cbl_delete_dir;
760;run_file.at:3930;System routines for directories (2);runfile extensions cbl_create_dir cbl_create_file cbl_close_file cbl_check_file_exist cbl_delete_dir cbl_purge_dir;
761;run_file.at:4027;System routines for files;extensions runfile cbl_create_file cbl_write_file cbl_flush_file cbl_open_file cbl_read_file cbl_close_file cbl_rename_file cbl_delete_file c\$delete;
762;run_file.at:4301;System routine CBL_COPY_FILE;extensions runfile;
763;run_file.at:4336;Default file external name;runfile;
764;run_file.at:4410;SEQUENTIAL basic I/O;runfile;
765;run_file.at:4444;LINE SEQUENTIAL basic I/O;runfile;
766;run_file.at:4510;LINE SEQUENTIAL record truncation;runfile;
767;run_file.at:4557;SEQUENTIAL file I/O with variable records;runfile;
768;run_file.at:4632;LINE SEQUENTIAL file I/O with variable records;runfile;
769;run_file.at:4706;SEQUENTIAL file REWRITE;runfile;
770;run_file.at:4818;SEQUENTIAL file with LOCK MODE EXCLUSIVE;runfile;
771;run_file.at:4886;SEQUENTIAL file with OPEN WITH LOCK;runfile;
772;run_file.at:4952;SEQUENTIAL file with SHARING NO;runfile;
773;run_file.at:5020;SEQUENTIAL file with SHARING READ ONLY;runfile;
774;run_file.at:5093;SEQUENTIAL file with blocked lock;runfile;
775;run_file.at:5164;RELATIVE SEQUENTIAL basic I/O;runfile;
776;run_file.at:5198;RELATIVE RANDOM basic I/O;runfile;
777;run_file.at:5248;RELATIVE SEQUENTIAL with variable records;runfile;
778;run_file.at:5322;INDEXED SEQUENTIAL basic I/O;runfile;
779;run_file.at:5360;INDEXED SEQUENTIAL with variable records;runfile;
780;run_file.at:5442;INDEXED file with LOCK MODE EXCLUSIVE;runfile;
781;run_file.at:5519;INDEXED file with OPEN WITH LOCK;runfile;
782;run_file.at:5595;INDEXED file with SHARING NO;runfile;
783;run_file.at:5672;INDEXED file with SHARING READ ONLY;runfile;
784;run_file.at:5756;INDEXED file with blocked lock;runfile;
785;run_file.at:5836;INDEXED file with LOCK AUTOMATIC (1);runfile;
786;run_file.at:5925;INDEXED file with LOCK AUTOMATIC (2);runfile;
787;run_file.at:6015;INDEXED file with LOCK MANUAL;runfile;
788;run_file.at:6103;START INDEXED;runfile;
789;run_file.at:6182;INDEXED partial keys;runfile;
790;run_file.at:6329;INDEXED undeclared keys;runfile;
791;run_file.at:6500;READ INPUT pipe & WRITE OUTPUT pipe;runfile;
792;run_file.at:6598;EXTFH: using ISAM callback;runfile extfh;
793;run_file.at:7298;EXTFH: SEQUENTIAL files;runfile extfh;
794;run_file.at:7708;EXTFH: LINE SEQUENTIAL files, direct EXTFH;runfile;
795;run_file.at:7890;INDEXED File READ/DELETE/READ;runfile read delete;
796;run_file.at:8686;TURN EC-I-O;runfile directive;
797;run_reportwriter.at:23;Report Line Order;report file mapping;
798;run_reportwriter.at:120;REPORT COL PLUS;report runfile;
799;run_reportwriter.at:189;Report Overlapping Fields;report runfile;
800;run_reportwriter.at:258;EMPTY REPORT;report runfile;
801;run_reportwriter.at:327;PAGE LIMIT REPORT;report runfile;
802;run_reportwriter.at:389;PAGE LIMIT REPORT 2;report runfile;
803;run_reportwriter.at:461;Sample Customer Report;report runfile;
804;run_reportwriter.at:776;Sample Charge Report;report runfile;
805;run_reportwriter.at:1129;Sample Charge Report 2;report runfile;
806;run_reportwriter.at:1499;Sample Charge Report 3;report runfile;
807;run_reportwriter.at:1799;Sample Charge Report 4;report runfile;
808;run_reportwriter.at:2215;Sample Payroll Report;report runfile;
809;run_reportwriter.at:2900;Sample REPORT with RIGHT/CENTER;report runfile;
810;run_reportwriter.at:3068;STUDENT REPORT with INITIAL;report runfile;
811;run_reportwriter.at:3220;ORDER REPORT; Test substring;report runfile;
812;run_reportwriter.at:3568;Sample Control Break;report runfile;
813;run_reportwriter.at:3797;Sample Inventory Report;report runfile;
814;run_reportwriter.at:3990;Duplicate Detail Line;report runfile;
815;run_reportwriter.at:4118;Report with OCCURS;report runfile;
816;run_reportwriter.at:4223;Report CODE and LIMIT COLUMNS;report runfile dump occurs;
817;run_reportwriter.at:4444;Duplicate INITIATE;report runfile;
818;run_reportwriter.at:4511;Missing INITIATE and GENERATE;report runfile;
819;run_reportwriter.at:4571;Missing INITIATE and TERMINATE;report runfile;
820;run_reportwriter.at:4625;Next Group Next Page;report runfile;
821;run_reportwriter.at:8948;Report PRESENT AFTER;report runfile;
822;run_returncode.at:23;RETURN-CODE moving;returncode;
823;run_returncode.at:49;RETURN-CODE passing;returncode;
824;run_returncode.at:101;RETURN-CODE nested;returncode;
825;run_functions.at:24;FUNCTION ABS;functions;
826;run_functions.at:46;FUNCTION ACOS;functions;
827;run_functions.at:70;FUNCTION ANNUITY;functions;
828;run_functions.at:94;FUNCTION ASIN;functions;
829;run_functions.at:118;FUNCTION ATAN;functions;
830;run_functions.at:142;FUNCTION BYTE-LENGTH;functions length;
831;run_functions.at:212;FUNCTION CHAR;functions;
832;run_functions.at:250;FUNCTION COMBINED-DATETIME;functions;
833;run_functions.at:275;FUNCTION CONCAT / CONCATENATE;functions;
834;run_functions.at:322;FUNCTION CONCATENATE with reference modding;functions;
835;run_functions.at:350;FUNCTION CONTENT-LENGTH;functions length;
836;run_functions.at:384;FUNCTION CONTENT-OF;functions pointer literal based allocate free exception-status;
837;run_functions.at:459;FUNCTION as CALL parameter BY CONTENT;functions;
838;run_functions.at:495;FUNCTION COS;functions;
839;run_functions.at:519;FUNCTION CURRENCY-SYMBOL;functions;
840;run_functions.at:542;FUNCTION CURRENT-DATE;functions;
841;run_functions.at:613;FUNCTION DATE-OF-INTEGER;functions;
842;run_functions.at:638;FUNCTION DATE-TO-YYYYMMDD;functions;
843;run_functions.at:663;FUNCTION DAY-OF-INTEGER;functions;
844;run_functions.at:688;FUNCTION DAY-TO-YYYYDDD;functions;
845;run_functions.at:713;FUNCTION E;functions;
846;run_functions.at:737;FUNCTION EXCEPTION-FILE;functions exceptions;
847;run_functions.at:772;FUNCTION EXCEPTION-LOCATION;functions exceptions;
848;run_functions.at:811;FUNCTION EXCEPTION-STATEMENT;functions exceptions;
849;run_functions.at:846;FUNCTION EXCEPTION-STATUS;functions exceptions;
850;run_functions.at:881;FUNCTION EXP;functions;
851;run_functions.at:905;FUNCTION EXP10;functions;
852;run_functions.at:930;FUNCTION FACTORIAL;functions;
853;run_functions.at:955;FUNCTION FORMATTED-CURRENT-DATE;functions;
854;run_functions.at:983;FUNCTION FORMATTED-DATE;functions;
855;run_functions.at:1046;FUNCTION FORMATTED-DATE with ref modding;functions;
856;run_functions.at:1071;FUNCTION FORMATTED-DATETIME;functions;
857;run_functions.at:1128;FUNCTION FORMATTED-DATETIME with ref modding;functions;
858;run_functions.at:1154;FUNCTION FORMATTED-TIME;functions;
859;run_functions.at:1241;FUNCTION FORMATTED-TIME DP.COMMA;functions;
860;run_functions.at:1272;FUNCTION FORMATTED-TIME with ref modding;functions;
861;run_functions.at:1297;FUNCTION FRACTION-PART;functions;
862;run_functions.at:1328;FUNCTION HIGHEST-ALGEBRAIC;functions;
863;run_functions.at:1396;FUNCTION INTEGER;functions;
864;run_functions.at:1429;FUNCTION INTEGER-OF-DATE;functions;
865;run_functions.at:1454;FUNCTION INTEGER-OF-DAY;functions;
866;run_functions.at:1479;FUNCTION INTEGER-OF-FORMATTED-DATE;functions;
867;run_functions.at:1529;FUNCTION INTEGER-PART;functions;
868;run_functions.at:1555;FUNCTION LENGTH;functions;
869;run_functions.at:1623;FUNCTION LOCALE-COMPARE;functions;
870;run_functions.at:1653;FUNCTION LOCALE-DATE;functions;
871;run_functions.at:1679;FUNCTION LOCALE-TIME;functions;
872;run_functions.at:1705;FUNCTION LOCALE-TIME-FROM-SECONDS;functions;
873;run_functions.at:1731;FUNCTION LOG;functions;
874;run_functions.at:1755;FUNCTION LOG10;functions;
875;run_functions.at:1779;FUNCTION LOWER-CASE;functions;
876;run_functions.at:1807;FUNCTION LOWER-CASE with reference modding;functions;
877;run_functions.at:1833;FUNCTION LOWEST-ALGEBRAIC;functions;
878;run_functions.at:1886;FUNCTION MAX;functions;
879;run_functions.at:1908;FUNCTION MEAN;functions;
880;run_functions.at:1930;FUNCTION MEDIAN;functions;
881;run_functions.at:1952;FUNCTION MIDRANGE;functions;
882;run_functions.at:1974;FUNCTION MIN;functions;
883;run_functions.at:1996;FUNCTION MOD (valid);functions;
884;run_functions.at:2026;FUNCTION MOD (invalid);functions exceptions;
885;run_functions.at:2057;FUNCTION MODULE-CALLER-ID;functions;
886;run_functions.at:2091;FUNCTION MODULE-DATE;functions;
887;run_functions.at:2116;FUNCTION MODULE-FORMATTED-DATE;functions;
888;run_functions.at:2141;FUNCTION MODULE-ID;functions;
889;run_functions.at:2162;FUNCTION MODULE-PATH;functions;
890;run_functions.at:2187;FUNCTION MODULE-SOURCE;functions;
891;run_functions.at:2208;FUNCTION MODULE-TIME;functions;
892;run_functions.at:2233;FUNCTION MONETARY-DECIMAL-POINT;functions;
893;run_functions.at:2256;FUNCTION MONETARY-THOUSANDS-SEPARATOR;functions;
894;run_functions.at:2279;FUNCTION NUMERIC-DECIMAL-POINT;functions;
895;run_functions.at:2302;FUNCTION NUMERIC-THOUSANDS-SEPARATOR;functions;
896;run_functions.at:2325;FUNCTION NUMVAL;functions;
897;run_functions.at:2356;FUNCTION NUMVAL-C;functions;
898;run_functions.at:2387;FUNCTION NUMVAL-C DP.COMMA;functions;
899;run_functions.at:2417;FUNCTION NUMVAL-F;functions;
900;run_functions.at:2440;FUNCTION ORD;functions;
901;run_functions.at:2462;FUNCTION ORD-MAX;functions;
902;run_functions.at:2484;FUNCTION ORD-MIN;functions;
903;run_functions.at:2506;FUNCTION PI;functions;
904;run_functions.at:2530;FUNCTION PRESENT-VALUE;functions;
905;run_functions.at:2552;FUNCTION RANDOM;functions;
906;run_functions.at:2576;FUNCTION RANGE;functions;
907;run_functions.at:2600;FUNCTION REM (valid);functions;
908;run_functions.at:2623;FUNCTION REM (invalid);functions exceptions;
909;run_functions.at:2654;FUNCTION REVERSE;functions;
910;run_functions.at:2679;FUNCTION REVERSE with reference modding;functions;
911;run_functions.at:2704;FUNCTION SECONDS-FROM-FORMATTED-TIME;functions;
912;run_functions.at:2771;FUNCTION SECONDS-PAST-MIDNIGHT;functions;
913;run_functions.at:2795;FUNCTION SIGN;functions;
914;run_functions.at:2834;FUNCTION SIN;functions;
915;run_functions.at:2858;FUNCTION SQRT;functions;
916;run_functions.at:2882;FUNCTION STANDARD-DEVIATION;functions;
917;run_functions.at:2906;FUNCTION STORED-CHAR-LENGTH;functions;
918;run_functions.at:2932;FUNCTION SUBSTITUTE;functions;
919;run_functions.at:2961;FUNCTION SUBSTITUTE with reference modding;functions;
920;run_functions.at:2989;FUNCTION SUBSTITUTE-CASE;functions;
921;run_functions.at:3016;FUNCTION SUBSTITUTE-CASE with reference mod;functions;
922;run_functions.at:3044;FUNCTION SUM;functions;
923;run_functions.at:3068;FUNCTION TAN;functions;
924;run_functions.at:3092;FUNCTION TEST-DATE-YYYYMMDD;functions;
925;run_functions.at:3114;FUNCTION TEST-DAY-YYYYDDD;functions;
926;run_functions.at:3136;FUNCTION TEST-FORMATTED-DATETIME with dates;functions;
927;run_functions.at:3263;FUNCTION TEST-FORMATTED-DATETIME with times;functions;
928;run_functions.at:3344;FUNCTION TEST-FORMATTED-DATETIME with datetimes;functions;
929;run_functions.at:3397;FUNCTION TEST-FORMATTED-DATETIME DP.COMMA;functions;
930;run_functions.at:3438;FUNCTION TEST-NUMVAL;functions;
931;run_functions.at:3536;FUNCTION TEST-NUMVAL-C;functions;
932;run_functions.at:3634;FUNCTION TEST-NUMVAL-F;functions;
933;run_functions.at:3732;FUNCTION TRIM;functions;
934;run_functions.at:3758;FUNCTION TRIM with reference modding;functions;
935;run_functions.at:3784;FUNCTION TRIM zero length;functions;
936;run_functions.at:3811;FUNCTION UPPER-CASE;functions;
937;run_functions.at:3836;FUNCTION UPPER-CASE with reference modding;functions;
938;run_functions.at:3861;FUNCTION VARIANCE;functions;
939;run_functions.at:3885;FUNCTION WHEN-COMPILED;functions;
940;run_functions.at:3939;FUNCTION YEAR-TO-YYYY;functions;
941;run_functions.at:3963;Formatted funcs w/ invalid variable format;functions formatted-current-date formatted-date formatted-time formatted-datetime;
942;run_functions.at:4044;FORMATTED-(DATE)TIME with SYSTEM-OFFSET;functions formatted-time formatted-datetime extensions;
943;run_functions.at:4082;Intrinsics without FUNCTION keyword (1);functions;
944;run_functions.at:4103;Intrinsics without FUNCTION keyword (2);functions;
945;run_functions.at:4126;User-Defined FUNCTION with/without parameter;functions;
946;run_functions.at:4177;UDF in COMPUTE;functions;
947;run_functions.at:4220;UDF replacing intrinsic function;functions substitute;
948;run_functions.at:4263;UDF with recursion;functions local-storage;
949;run_extensions.at:25;CALL BY CONTENT binary and literal;extensions literals;
950;run_extensions.at:72;Numeric Boolean literals;extensions;
951;run_extensions.at:101;ACUCOBOL literals;extensions acu binary octal hexadecimal;
952;run_extensions.at:127;HP COBOL octal literals;extensions;
953;run_extensions.at:188;Hexadecimal numeric literals;extensions;
954;run_extensions.at:217;Semi-parenthesized condition;extensions;
955;run_extensions.at:237;ADDRESS OF;extensions;
956;run_extensions.at:287;LENGTH OF;extensions value renames;
957;run_extensions.at:451;SET TO SIZE OF;extensions acu length;
958;run_extensions.at:488;WHEN-COMPILED;extensions;
959;run_extensions.at:517;Complex OCCURS DEPENDING ON (1);extensions;
960;run_extensions.at:546;Complex OCCURS DEPENDING ON (2);extensions;
961;run_extensions.at:609;Complex OCCURS DEPENDING ON (3);extensions;
962;run_extensions.at:672;Complex OCCURS DEPENDING ON (4);extensions;
963;run_extensions.at:738;Complex OCCURS DEPENDING ON (5);extensions;
964;run_extensions.at:804;Complex OCCURS DEPENDING ON (6);extensions runsubscripts nested subscripts;
965;run_extensions.at:845;OCCURS UNBOUNDED (1);extensions runsubscripts subscripts;
966;run_extensions.at:906;OCCURS UNBOUNDED (2);extensions runsubscripts depending odo subscripts;
967;run_extensions.at:1060;INITIALIZE OCCURS UNBOUNDED;extensions runsubscripts subscripts refmod;
968;run_extensions.at:1134;INITIALIZE OCCURS ODOSLIDE;extensions runsubscripts subscripts;
969;run_extensions.at:1231;DEPENDING ON with ODOSLIDE;nested odo;
970;run_extensions.at:1446;DEPENDING ON with ODOSLIDE for IBM;occurs odo;
971;run_extensions.at:1551;INITIALIZE level 01;initialize;
972;run_extensions.at:1603;MOVE of non-integer to alphanumeric;extensions;
973;run_extensions.at:1693;CALL USING file-name;extensions;
974;run_extensions.at:1738;CALL unusual PROGRAM-ID.;extensions;
975;run_extensions.at:1802;CALL / GOBACK with LOCAL-STORAGE;extensions;
976;run_extensions.at:1852;CALL BY VALUE alphanumeric item;extensions;
977;run_extensions.at:1889;CALL BY VALUE numeric literal WITH SIZE;extensions;
978;run_extensions.at:1993;Case-sensitive PROGRAM-ID;extensions;
979;run_extensions.at:2018;Quoted PROGRAM-ID;extensions;
980;run_extensions.at:2041;PROGRAM-ID AS clause;extensions;
981;run_extensions.at:2065;ASSIGN DYNAMIC and EXTERNAL;extensions runfile;
982;run_extensions.at:2114;ASSIGN DYNAMIC implicit variable;extensions runfile;
983;run_extensions.at:2146;ASSIGN EXTERNAL parsing;extensions runfile;
984;run_extensions.at:2180;ASSIGN directive;extensions runfile;
985;run_extensions.at:2225;ASSIGN expansion;extensions runfile;
986;run_extensions.at:2251;ASSIGN mapping;extensions runfile optional;
987;run_extensions.at:2423;ASSIGN with COB_FILE_PATH;extensions runfile;
988;run_extensions.at:2460;NUMBER-OF-CALL-PARAMETERS;extensions;
989;run_extensions.at:2515;TALLY register;extensions;
990;run_extensions.at:2549;Redefining TALLY;extensions register;
991;run_extensions.at:2585;PROCEDURE DIVISION USING BY ...;extensions;
992;run_extensions.at:2638;PROCEDURE DIVISION CHAINING;extensions call initialize;
993;run_extensions.at:2761;STOP RUN RETURNING/GIVING;extensions;
994;run_extensions.at:2817;GOBACK/EXIT PROGRAM RETURNING/GIVING;extensions;
995;run_extensions.at:2867;ENTRY;extensions;
996;run_extensions.at:2913;LINE SEQUENTIAL write;extensions;
997;run_extensions.at:2959;LINE SEQUENTIAL read;extensions;
998;run_extensions.at:3026;ASSIGN to KEYBOARD/DISPLAY;extensions;
999;run_extensions.at:3084;SORT ASSIGN KEYBOARD to ASSIGN DISPLAY;extensions;
1000;run_extensions.at:3146;Environment/Argument variable;extensions;
1001;run_extensions.at:3192;78 Level (1);extensions;
1002;run_extensions.at:3215;78 Level (2);extensions;
1003;run_extensions.at:3241;78 Level (3);extensions;
1004;run_extensions.at:3265;SWITCHES with non-standard names;runmisc extensions;
1005;run_extensions.at:3378;Larger REDEFINES lengths;extensions;
1006;run_extensions.at:3462;REDEFINES: non-referenced ambiguous item;extensions redefines;
1007;run_extensions.at:3488;Obsolete 2002 keywords with COBOL2014;extensions;
1008;run_extensions.at:3518;System routine with wrong number of parameters;extensions narg;
1009;run_extensions.at:3561;System routine C\$NARG;extensions narg;
1010;run_extensions.at:3638;System routine C\$PARAMSIZE;extensions;
1011;run_extensions.at:3680;System routine C\$CALLEDBY;extensions;
1012;run_extensions.at:3726;System routine C\$JUSTIFY;extensions;
1013;run_extensions.at:3751;System routine C\$PRINTABLE;extensions;
1014;run_extensions.at:3780;System routine C\$MAKEDIR;extensions;
1015;run_extensions.at:3801;System routine C\$GETPID;extensions;
1016;run_extensions.at:3826;System routine C\$TOUPPER;extensions;
1017;run_extensions.at:3851;System routine C\$TOLOWER;extensions;
1018;run_extensions.at:3876;System routine CBL_OR;extensions;
1019;run_extensions.at:3903;System routine CBL_NOR;extensions;
1020;run_extensions.at:3930;System routine CBL_AND;extensions;
1021;run_extensions.at:3957;System routine CBL_XOR;extensions;
1022;run_extensions.at:3984;System routine CBL_IMP;extensions;
1023;run_extensions.at:4011;System routine CBL_NIMP;extensions;
1024;run_extensions.at:4038;System routine CBL_NOT;extensions;
1025;run_extensions.at:4064;System routine CBL_EQ;extensions;
1026;run_extensions.at:4091;System routine CBL_GC_GETOPT;extensions;
1027;run_extensions.at:4528;System routine CBL_GC_FORK;extensions c\$getpid;
1028;run_extensions.at:4596;System routine CBL_GC_WAITPID;extensions cbl_gc_fork;
1029;run_extensions.at:4648;System routine CBL_GC_HOSTED;extensions errno external based pointer;
1030;run_extensions.at:4778;System routine SYSTEM, parameter handling;chaining trim;
1031;run_extensions.at:4889;System routine CBL_ERROR_PROC (1);extensions exceptions error exception-location exception-statement exception-file exception-status;
1032;run_extensions.at:4988;System routine CBL_ERROR_PROC (2);extensions exceptions error local-storage exception-location exception-statement exception-file exception-status;
1033;run_extensions.at:5069;DISPLAY DIRECTIVE and \$DISPLAY;extensions;
1034;run_extensions.at:5102;Conditional / define directives (1);extensions directive;
1035;run_extensions.at:5127;Conditional / define directives (2);extensions directive;
1036;run_extensions.at:5152;Conditional / define directives (3);extensions directive;
1037;run_extensions.at:5180;Conditional / define directives (4);extensions directive;
1038;run_extensions.at:5206;Variable format;extensions runmisc;
1039;run_extensions.at:5228;Binary COMP-1 (1);extensions;
1040;run_extensions.at:5259;Binary COMP-1 (2);extensions directives;
1041;run_extensions.at:5295;EXHIBIT statement;extensions osvs;
1042;run_ml.at:19;XML GENERATE general;extensions;
1043;run_ml.at:127;XML GENERATE SUPPRESS;extensions;
1044;run_ml.at:204;XML GENERATE exceptions;extensions xml-code;
1045;run_ml.at:300;XML GENERATE record selection;extensions;
1046;run_ml.at:344;XML GENERATE trimming;extensions;
1047;run_ml.at:441;XML DPC-IN-DATA directive;extensions;
1048;run_ml.at:472;XML dpc-in-data config option;extensions;
1049;run_ml.at:516;JSON GENERATE general;extensions;
1050;run_ml.at:566;JSON GENERATE SUPPRESS;extensions;
1051;run_ml.at:605;JSON GENERATE exceptions;extensions json-code;
1052;run_ml.at:670;JSON GENERATE record selection;extensions;
1053;run_ml.at:714;JSON GENERATE trimming;extensions;
1054;run_ml.at:814;JSON DPC-IN-DATA directive;extensions;
1055;run_ml.at:845;JSON dpc-in-data config option;extensions;
1056;data_binary.at:23;BINARY: 2-4-8 big-endian;binary;
1057;data_binary.at:205;BINARY: 2-4-8 native;binary;
1058;data_binary.at:393;BINARY: 1-2-4-8 big-endian;binary;
1059;data_binary.at:575;BINARY: 1-2-4-8 native;binary;
1060;data_binary.at:763;BINARY: 1--8 big-endian;binary;
1061;data_binary.at:945;BINARY: 1--8 native;binary;
1062;data_binary.at:1133;BINARY: full-print;binary;
1063;data_binary.at:1185;BINARY: 64bit unsigned compare;binary;
1064;data_binary.at:1210;BINARY: 64bit unsigned arithmetic notrunc;binary;
1065;data_binary.at:1240;BINARY: 64bit signed negative constant range;binary;
1066;data_binary.at:1261;COMP-4 Truncate;numeric;
1067;data_binary.at:1322;COMP-4 No Truncate;numeric;
1068;data_display.at:21;DISPLAY: Sign ASCII;display;
1069;data_display.at:80;DISPLAY: Sign ASCII (2);display;
1070;data_display.at:126;DISPLAY: Sign EBCDIC;display;
1071;data_display.at:171;DISPLAY: unsigned;display;
1072;data_packed.at:25;PACKED-DECIMAL dump;packed;
1073;data_packed.at:161;PACKED-DECIMAL used with DISPLAY;packed;
1074;data_packed.at:216;PACKED-DECIMAL used with MOVE;packed;
1075;data_packed.at:273;PACKED-DECIMAL used with INITIALIZE;packed;
1076;data_packed.at:312;PACKED-DECIMAL arithmetic;packed;
1077;data_packed.at:348;PACKED-DECIMAL numeric test (1);packed;
1078;data_packed.at:490;PACKED-DECIMAL numeric test (2);packed;
1079;data_packed.at:606;COMP-6 used with DISPLAY;packed;
1080;data_packed.at:643;COMP-6 used with MOVE;packed;
1081;data_packed.at:690;COMP-6 arithmetic;packed;
1082;data_packed.at:722;COMP-6 numeric test;packed;
1083;data_pointer.at:21;POINTER: display;pointer 64bit;
"
# List of the all the test groups.
at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`

# at_fn_validate_ranges NAME...
# -----------------------------
# Validate and normalize the test group number contained in each variable
# NAME. Leading zeroes are treated as decimal.
at_fn_validate_ranges ()
{
  for at_grp
  do
    eval at_value=\$$at_grp
    if test $at_value -lt 1 || test $at_value -gt 1083; then
      $as_echo "invalid test group: $at_value" >&2
      exit 1
    fi
    case $at_value in
      0*) # We want to treat leading 0 as decimal, like expr and test, but
	  # AS_VAR_ARITH treats it as octal if it uses $(( )).
	  # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
	  # expr fork, but it is not worth the effort to determine if the
	  # shell supports XSI when the user can just avoid leading 0.
	  eval $at_grp='`expr $at_value + 0`' ;;
    esac
  done
}

at_prev=
for at_option
do
  # If the previous option needs an argument, assign it.
  if test -n "$at_prev"; then
    at_option=$at_prev=$at_option
    at_prev=
  fi

  case $at_option in
  *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
  *)    at_optarg= ;;
  esac

  # Accept the important Cygnus configure options, so we can diagnose typos.

  case $at_option in
    --help | -h )
	at_help_p=:
	;;

    --list | -l )
	at_list_p=:
	;;

    --version | -V )
	at_version_p=:
	;;

    --clean | -c )
	at_clean=:
	;;

    --color )
	at_color=always
	;;
    --color=* )
	case $at_optarg in
	no | never | none) at_color=never ;;
	auto | tty | if-tty) at_color=auto ;;
	always | yes | force) at_color=always ;;
	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
	esac
	;;

    --debug | -d )
	at_debug_p=:
	;;

    --errexit | -e )
	at_debug_p=:
	at_errexit_p=:
	;;

    --verbose | -v )
	at_verbose=; at_quiet=:
	;;

    --trace | -x )
	at_traceon='set -x'
	at_trace_echo=echo
	at_check_filter_trace=at_fn_filter_trace
	;;

    [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
	at_fn_validate_ranges at_option
	as_fn_append at_groups "$at_option$as_nl"
	;;

    # Ranges
    [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
	at_range_start=`echo $at_option |tr -d X-`
	at_fn_validate_ranges at_range_start
	at_range=`$as_echo "$at_groups_all" | \
	  sed -ne '/^'$at_range_start'$/,$p'`
	as_fn_append at_groups "$at_range$as_nl"
	;;

    -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
	at_range_end=`echo $at_option |tr -d X-`
	at_fn_validate_ranges at_range_end
	at_range=`$as_echo "$at_groups_all" | \
	  sed -ne '1,/^'$at_range_end'$/p'`
	as_fn_append at_groups "$at_range$as_nl"
	;;

    [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
    [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
    [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
    [0-9][0-9][0-9]-[0-9][0-9][0-9] | \
    [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
    [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
	at_range_start=`expr $at_option : '\(.*\)-'`
	at_range_end=`expr $at_option : '.*-\(.*\)'`
	if test $at_range_start -gt $at_range_end; then
	  at_tmp=$at_range_end
	  at_range_end=$at_range_start
	  at_range_start=$at_tmp
	fi
	at_fn_validate_ranges at_range_start at_range_end
	at_range=`$as_echo "$at_groups_all" | \
	  sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
	as_fn_append at_groups "$at_range$as_nl"
	;;

    # Directory selection.
    --directory | -C )
	at_prev=--directory
	;;
    --directory=* )
	at_change_dir=:
	at_dir=$at_optarg
	if test x- = "x$at_dir" ; then
	  at_dir=./-
	fi
	;;

    # Parallel execution.
    --jobs | -j )
	at_jobs=0
	;;
    --jobs=* | -j[0-9]* )
	if test -n "$at_optarg"; then
	  at_jobs=$at_optarg
	else
	  at_jobs=`expr X$at_option : 'X-j\(.*\)'`
	fi
	case $at_jobs in *[!0-9]*)
	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
	esac
	;;

    # Keywords.
    --keywords | -k )
	at_prev=--keywords
	;;
    --keywords=* )
	at_groups_selected=$at_help_all
	at_save_IFS=$IFS
	IFS=,
	set X $at_optarg
	shift
	IFS=$at_save_IFS
	for at_keyword
	do
	  at_invert=
	  case $at_keyword in
	  '!'*)
	    at_invert="-v"
	    at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
	    ;;
	  esac
	  # It is on purpose that we match the test group titles too.
	  at_groups_selected=`$as_echo "$at_groups_selected" |
	      grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
	done
	# Smash the keywords.
	at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'`
	as_fn_append at_groups "$at_groups_selected$as_nl"
	;;
    --recheck)
	at_recheck=:
	;;

    *=*)
	at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
	# Reject names that are not valid shell variable names.
	case $at_envvar in
	  '' | [0-9]* | *[!_$as_cr_alnum]* )
	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
	esac
	at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
	# Export now, but save eval for later and for debug scripts.
	export $at_envvar
	as_fn_append at_debug_args " $at_envvar='$at_value'"
	;;

     *) $as_echo "$as_me: invalid option: $at_option" >&2
	$as_echo "Try \`$0 --help' for more information." >&2
	exit 1
	;;
  esac
done

# Verify our last option didn't require an argument
if test -n "$at_prev"; then :
  as_fn_error $? "\`$at_prev' requires an argument"
fi

# The file containing the suite.
at_suite_log=$at_dir/$as_me.log

# Selected test groups.
if test -z "$at_groups$at_recheck"; then
  at_groups=$at_groups_all
else
  if test -n "$at_recheck" && test -r "$at_suite_log"; then
    at_oldfails=`sed -n '
      /^Failed tests:$/,/^Skipped tests:$/{
	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
      }
      /^Unexpected passes:$/,/^## Detailed failed tests/{
	s/^[ ]*\([1-9][0-9]*\):.*/\1/p
      }
      /^## Detailed failed tests/q
      ' "$at_suite_log"`
    as_fn_append at_groups "$at_oldfails$as_nl"
  fi
  # Sort the tests, removing duplicates.
  at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'`
fi

if test x"$at_color" = xalways \
   || { test x"$at_color" = xauto && test -t 1; }; then
  at_red=`printf '\033[0;31m'`
  at_grn=`printf '\033[0;32m'`
  at_lgn=`printf '\033[1;32m'`
  at_blu=`printf '\033[1;34m'`
  at_std=`printf '\033[m'`
else
  at_red= at_grn= at_lgn= at_blu= at_std=
fi

# Help message.
if $at_help_p; then
  cat <<_ATEOF || at_write_fail=1
Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]

Run all the tests, or the selected TESTS, given by numeric ranges, and
save a detailed log file.  Upon failure, create debugging scripts.

Do not change environment variables directly.  Instead, set them via
command line arguments.  Set \`AUTOTEST_PATH' to select the executables
to exercise.  Each relative directory is expanded as build and source
directories relative to the top level of this distribution.
E.g., from within the build directory /tmp/foo-1.0, invoking this:

  $ $0 AUTOTEST_PATH=bin

is equivalent to the following, assuming the source directory is /src/foo-1.0:

  PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
_ATEOF
cat <<_ATEOF || at_write_fail=1

Operation modes:
  -h, --help     print the help message, then exit
  -V, --version  print version number, then exit
  -c, --clean    remove all the files this test suite might create and exit
  -l, --list     describes all the tests, or the selected TESTS
_ATEOF
cat <<_ATEOF || at_write_fail=1

Execution tuning:
  -C, --directory=DIR
                 change to directory DIR before starting
      --color[=never|auto|always]
                 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
                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
      --recheck  select all tests that failed or passed unexpectedly last time
  -e, --errexit  abort as soon as a test fails; implies --debug
  -v, --verbose  force more detailed output
                 default for debugging scripts
  -d, --debug    inhibit clean up and top-level logging
                 default for debugging scripts
  -x, --trace    enable tests shell tracing
_ATEOF
cat <<_ATEOF || at_write_fail=1

Report bugs to <bug-gnucobol@gnu.org>.
GnuCOBOL home page: <https://www.gnu.org/software/gnucobol/>.
_ATEOF
  exit $at_write_fail
fi

# List of tests.
if $at_list_p; then
  cat <<_ATEOF || at_write_fail=1
GnuCOBOL 3.1.1 test suite: GnuCOBOL Tests test groups:

 NUM: FILE-NAME:LINE     TEST-GROUP-NAME
      KEYWORDS

_ATEOF
  # Pass an empty line as separator between selected groups and help.
  $as_echo "$at_groups$as_nl$as_nl$at_help_all" |
    awk 'NF == 1 && FS != ";" {
	   selected[$ 1] = 1
	   next
	 }
	 /^$/ { FS = ";" }
	 NF > 0 {
	   if (selected[$ 1]) {
	     printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
	     if ($ 4) {
	       lmax = 79
	       indent = "     "
	       line = indent
	       len = length (line)
	       n = split ($ 4, a, " ")
	       for (i = 1; i <= n; i++) {
		 l = length (a[i]) + 1
		 if (i > 1 && len + l > lmax) {
		   print line
		   line = indent " " a[i]
		   len = length (line)
		 } else {
		   line = line " " a[i]
		   len += l
		 }
	       }
	       if (n)
		 print line
	     }
	   }
	 }' || at_write_fail=1
  exit $at_write_fail
fi
if $at_version_p; then
  $as_echo "$as_me (GnuCOBOL 3.1.1)" &&
  cat <<\_ATEOF || at_write_fail=1

Test cases Copyright (C) 2020 Free Software Foundation, Inc.

Written by Keisuke Nishida, Roger While, Simon Sobisch, Edward Hart,
Ron Norman, Brian Tiffin, Dave Pitts

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.
# Banner 1. testsuite.at:32
# Category starts at test group 1.
at_banner_text_1="General tests of used binaries"
# Banner 2. testsuite.at:37
# Category starts at test group 46.
at_banner_text_2="Syntax tests"
# Banner 3. testsuite.at:56
# Category starts at test group 410.
at_banner_text_3="Listing tests"
# Banner 4. testsuite.at:61
# Category starts at test group 440.
at_banner_text_4="Run tests"
# Banner 5. testsuite.at:77
# Category starts at test group 1056.
at_banner_text_5="Data Representation"

# Take any -C into account.
if $at_change_dir ; then
  test x != "x$at_dir" && cd "$at_dir" \
    || as_fn_error $? "unable to change directory"
  at_dir=`pwd`
fi

# Load the config files for any default variable assignments.
for at_file in atconfig atlocal
do
  test -r $at_file || continue
  . ./$at_file || as_fn_error $? "invalid content: $at_file"
done

# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
: "${at_top_build_prefix=$at_top_builddir}"

# Perform any assignments requested during argument parsing.
eval "$at_debug_args"

# atconfig delivers names relative to the directory the test suite is
# in, but the groups themselves are run in testsuite-dir/group-dir.
if test -n "$at_top_srcdir"; then
  builddir=../..
  for at_dir_var in srcdir top_srcdir top_build_prefix
  do
    eval at_val=\$at_$at_dir_var
    case $at_val in
      [\\/$]* | ?:[\\/]* ) at_prefix= ;;
      *) at_prefix=../../ ;;
    esac
    eval "$at_dir_var=\$at_prefix\$at_val"
  done
fi

## -------------------- ##
## Directory structure. ##
## -------------------- ##

# This is the set of directories and files used by this script
# (non-literals are capitalized):
#
# TESTSUITE         - the testsuite
# TESTSUITE.log     - summarizes the complete testsuite run
# TESTSUITE.dir/    - created during a run, remains after -d or failed test
# + at-groups/      - during a run: status of all groups in run
# | + NNN/          - during a run: meta-data about test group NNN
# | | + check-line  - location (source file and line) of current AT_CHECK
# | | + status      - exit status of current AT_CHECK
# | | + stdout      - stdout of current AT_CHECK
# | | + stder1      - stderr, including trace
# | | + stderr      - stderr, with trace filtered out
# | | + test-source - portion of testsuite that defines group
# | | + times       - timestamps for computing duration
# | | + pass        - created if group passed
# | | + xpass       - created if group xpassed
# | | + fail        - created if group failed
# | | + xfail       - created if group xfailed
# | | + skip        - created if group skipped
# + at-stop         - during a run: end the run if this file exists
# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
# + 0..NNN/         - created for each group NNN, remains after -d or failed test
# | + TESTSUITE.log - summarizes the group results
# | + ...           - files created during the group

# The directory the whole suite works in.
# Should be absolute to let the user `cd' at will.
at_suite_dir=$at_dir/$as_me.dir
# The file containing the suite ($at_dir might have changed since earlier).
at_suite_log=$at_dir/$as_me.log
# The directory containing helper files per test group.
at_helper_dir=$at_suite_dir/at-groups
# Stop file: if it exists, do not start new jobs.
at_stop_file=$at_suite_dir/at-stop
# The fifo used for the job dispatcher.
at_job_fifo=$at_suite_dir/at-job-fifo

if $at_clean; then
  test -d "$at_suite_dir" &&
    find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
  rm -f -r "$at_suite_dir" "$at_suite_log"
  exit $?
fi

# Don't take risks: use only absolute directories in PATH.
#
# For stand-alone test suites (ie. atconfig was not found),
# AUTOTEST_PATH is relative to `.'.
#
# For embedded test suites, AUTOTEST_PATH is relative to the top level
# of the package.  Then expand it into build/src parts, since users
# may create executables in both places.
AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
at_path=
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $AUTOTEST_PATH $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
case $as_dir in
  [\\/]* | ?:[\\/]* )
    as_fn_append at_path "$as_dir"
    ;;
  * )
    if test -z "$at_top_build_prefix"; then
      # Stand-alone test suite.
      as_fn_append at_path "$as_dir"
    else
      # Embedded test suite.
      as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
      as_fn_append at_path "$at_top_srcdir/$as_dir"
    fi
    ;;
esac
  done
IFS=$as_save_IFS


# Now build and simplify PATH.
#
# There might be directories that don't exist, but don't redirect
# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
at_new_path=
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $at_path
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -d "$as_dir" || continue
case $as_dir in
  [\\/]* | ?:[\\/]* ) ;;
  * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
esac
case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
  *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
  $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
  *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
esac
  done
IFS=$as_save_IFS

PATH=$at_new_path
export PATH

# Setting up the FDs.



# 5 is the log file.  Not to be overwritten if `-d'.
if $at_debug_p; then
  at_suite_log=/dev/null
else
  : >"$at_suite_log"
fi
exec 5>>"$at_suite_log"

# Banners and logs.
$as_echo "## ------------------------------------------ ##
## GnuCOBOL 3.1.1 test suite: GnuCOBOL Tests. ##
## ------------------------------------------ ##"
{
  $as_echo "## ------------------------------------------ ##
## GnuCOBOL 3.1.1 test suite: GnuCOBOL Tests. ##
## ------------------------------------------ ##"
  echo

  $as_echo "$as_me: command line was:"
  $as_echo "  \$ $0 $at_cli_args"
  echo

  # If ChangeLog exists, list a few lines in case it might help determining
  # the exact version.
  if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
    $as_echo "## ---------- ##
## ChangeLog. ##
## ---------- ##"
    echo
    sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
    echo
  fi

  {
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##

hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`

/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`

/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`

_ASUNAME

as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    $as_echo "PATH: $as_dir"
  done
IFS=$as_save_IFS

}
  echo

  # Contents of the config files.
  for at_file in atconfig atlocal
  do
    test -r $at_file || continue
    $as_echo "$as_me: $at_file:"
    sed 's/^/| /' $at_file
    echo
  done
} >&5


## ------------------------- ##
## Autotest shell functions. ##
## ------------------------- ##

# at_fn_banner NUMBER
# -------------------
# Output banner NUMBER, provided the testsuite is running multiple groups and
# this particular banner has not yet been printed.
at_fn_banner ()
{
  $at_print_banners || return 0
  eval at_banner_text=\$at_banner_text_$1
  test "x$at_banner_text" = "x " && return 0
  eval "at_banner_text_$1=\" \""
  if test -z "$at_banner_text"; then
    $at_first || echo
  else
    $as_echo "$as_nl$at_banner_text$as_nl"
  fi
} # at_fn_banner

# at_fn_check_prepare_notrace REASON LINE
# ---------------------------------------
# Perform AT_CHECK preparations for the command at LINE for an untraceable
# command; REASON is the reason for disabling tracing.
at_fn_check_prepare_notrace ()
{
  $at_trace_echo "Not enabling shell tracing (command contains $1)"
  $as_echo "$2" >"$at_check_line_file"
  at_check_trace=: at_check_filter=:
  : >"$at_stdout"; : >"$at_stderr"
}

# at_fn_check_prepare_trace LINE
# ------------------------------
# Perform AT_CHECK preparations for the command at LINE for a traceable
# command.
at_fn_check_prepare_trace ()
{
  $as_echo "$1" >"$at_check_line_file"
  at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
  : >"$at_stdout"; : >"$at_stderr"
}

# at_fn_check_prepare_dynamic COMMAND LINE
# ----------------------------------------
# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
# preparation function.
at_fn_check_prepare_dynamic ()
{
  case $1 in
    *$as_nl*)
      at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
    *)
      at_fn_check_prepare_trace "$2" ;;
  esac
}

# at_fn_filter_trace
# ------------------
# Remove the lines in the file "$at_stderr" generated by "set -x" and print
# them to stderr.
at_fn_filter_trace ()
{
  mv "$at_stderr" "$at_stder1"
  grep '^ *+' "$at_stder1" >&2
  grep -v '^ *+' "$at_stder1" >"$at_stderr"
}

# at_fn_log_failure FILE-LIST
# ---------------------------
# Copy the files in the list on stdout with a "> " prefix, and exit the shell
# with a failure exit code.
at_fn_log_failure ()
{
  for file
    do $as_echo "$file:"; sed 's/^/> /' "$file"; done
  echo 1 > "$at_status_file"
  exit 1
}

# at_fn_check_skip EXIT-CODE LINE
# -------------------------------
# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
# the test group subshell with that same exit code. Use LINE in any report
# about test failure.
at_fn_check_skip ()
{
  case $1 in
    99) echo 99 > "$at_status_file"; at_failed=:
	$as_echo "$2: hard failure"; exit 99;;
    77) echo 77 > "$at_status_file"; exit 77;;
  esac
}

# at_fn_check_status EXPECTED EXIT-CODE LINE
# ------------------------------------------
# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
# Otherwise, if it is 77 or 99, exit the test group subshell with that same
# exit code; if it is anything else print an error message referring to LINE,
# and fail the test.
at_fn_check_status ()
{
  case $2 in
    $1 ) ;;
    77) echo 77 > "$at_status_file"; exit 77;;
    99) echo 99 > "$at_status_file"; at_failed=:
	$as_echo "$3: hard failure"; exit 99;;
    *) $as_echo "$3: exit code was $2, expected $1"
      at_failed=:;;
  esac
}

# at_fn_diff_devnull FILE
# -----------------------
# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
# invocations.
at_fn_diff_devnull ()
{
  test -s "$1" || return 0
  $at_diff "$at_devnull" "$1"
}

# at_fn_test NUMBER
# -----------------
# Parse out test NUMBER from the tail of this file.
at_fn_test ()
{
  eval at_sed=\$at_sed$1
  sed "$at_sed" "$at_myself" > "$at_test_source"
}

# at_fn_create_debugging_script
# -----------------------------
# Create the debugging script $at_group_dir/run which will reproduce the
# current test group.
at_fn_create_debugging_script ()
{
  {
    echo "#! /bin/sh" &&
    echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
    $as_echo "cd '$at_dir'" &&
    $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
    echo 'exit 1'
  } >"$at_group_dir/run" &&
  chmod +x "$at_group_dir/run"
}

## -------------------------------- ##
## End of autotest shell functions. ##
## -------------------------------- ##
{
  $as_echo "## ---------------- ##
## Tested programs. ##
## ---------------- ##"
  echo
} >&5

# Report what programs are being tested.
for at_program in : $at_tested
do
  test "$at_program" = : && continue
  case $at_program in
    [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;;
    * )
    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    test -f "$as_dir/$at_program" && break
  done
IFS=$as_save_IFS

    at_program_=$as_dir/$at_program ;;
  esac
  if test -f "$at_program_"; then
    {
      $as_echo "$at_srcdir/testsuite.at:26: $at_program_ --version"
      "$at_program_" --version </dev/null
      echo
    } >&5 2>&1
  else
    as_fn_error $? "cannot find $at_program" "$LINENO" 5
  fi
done

{
  $as_echo "## ------------------ ##
## Running the tests. ##
## ------------------ ##"
} >&5

at_start_date=`date`
at_start_time=`date +%s 2>/dev/null`
$as_echo "$as_me: starting at: $at_start_date" >&5

# Create the master directory if it doesn't already exist.
as_dir="$at_suite_dir"; as_fn_mkdir_p ||
  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5

# Can we diff with `/dev/null'?  DU 5.0 refuses.
if diff /dev/null /dev/null >/dev/null 2>&1; then
  at_devnull=/dev/null
else
  at_devnull=$at_suite_dir/devnull
  >"$at_devnull"
fi

# Use `diff -u' when possible.
if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
then
  at_diff='diff -u'
else
  at_diff=diff
fi

# Get the last needed group.
for at_group in : $at_groups; do :; done

# Extract the start and end lines of each test group at the tail
# of this file
awk '
BEGIN { FS="" }
/^#AT_START_/ {
  start = NR
}
/^#AT_STOP_/ {
  test = substr ($ 0, 10)
  print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
  if (test == "'"$at_group"'") exit
}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
. "$at_suite_dir/at-source-lines" ||
  as_fn_error $? "cannot create test line number cache" "$LINENO" 5
rm -f "$at_suite_dir/at-source-lines"

# Set number of jobs for `-j'; avoid more jobs than test groups.
set X $at_groups; shift; at_max_jobs=$#
if test $at_max_jobs -eq 0; then
  at_jobs=1
fi
if test $at_jobs -ne 1 &&
   { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
  at_jobs=$at_max_jobs
fi

# If parallel mode, don't output banners, don't split summary lines.
if test $at_jobs -ne 1; then
  at_print_banners=false
  at_quiet=:
fi

# Set up helper dirs.
rm -rf "$at_helper_dir" &&
mkdir "$at_helper_dir" &&
cd "$at_helper_dir" &&
{ test -z "$at_groups" || mkdir $at_groups; } ||
as_fn_error $? "testsuite directory setup failed" "$LINENO" 5

# Functions for running a test group.  We leave the actual
# test group execution outside of a shell function in order
# to avoid hitting zsh 4.x exit status bugs.

# at_fn_group_prepare
# -------------------
# Prepare for running a test group.
at_fn_group_prepare ()
{
  # The directory for additional per-group helper files.
  at_job_dir=$at_helper_dir/$at_group
  # The file containing the location of the last AT_CHECK.
  at_check_line_file=$at_job_dir/check-line
  # The file containing the exit status of the last command.
  at_status_file=$at_job_dir/status
  # The files containing the output of the tested commands.
  at_stdout=$at_job_dir/stdout
  at_stder1=$at_job_dir/stder1
  at_stderr=$at_job_dir/stderr
  # The file containing the code for a test group.
  at_test_source=$at_job_dir/test-source
  # The file containing dates.
  at_times_file=$at_job_dir/times

  # Be sure to come back to the top test directory.
  cd "$at_suite_dir"

  # Clearly separate the test groups when verbose.
  $at_first || $at_verbose echo

  at_group_normalized=$at_group

  eval 'while :; do
    case $at_group_normalized in #(
    '"$at_format"'*) break;;
    esac
    at_group_normalized=0$at_group_normalized
  done'


  # Create a fresh directory for the next test group, and enter.
  # If one already exists, the user may have invoked ./run from
  # within that directory; we remove the contents, but not the
  # directory itself, so that we aren't pulling the rug out from
  # under the shell's notion of the current directory.
  at_group_dir=$at_suite_dir/$at_group_normalized
  at_group_log=$at_group_dir/$as_me.log
  if test -d "$at_group_dir"; then
  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
  rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
fi ||
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
  # Be tolerant if the above `rm' was not able to remove the directory.
  as_dir="$at_group_dir"; as_fn_mkdir_p

  echo 0 > "$at_status_file"

  # In verbose mode, append to the log file *and* show on
  # the standard output; in quiet mode only write to the log.
  if test -z "$at_verbose"; then
    at_tee_pipe='tee -a "$at_group_log"'
  else
    at_tee_pipe='cat >> "$at_group_log"'
  fi
}

# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
# -------------------------------------------------
# Declare the test group ORDINAL, located at LINE with group description DESC,
# and residing under BANNER. Use PAD to align the status column.
at_fn_group_banner ()
{
  at_setup_line="$2"
  test -n "$5" && at_fn_banner $5
  at_desc="$3"
  case $1 in
    [0-9])      at_desc_line="  $1: ";;
    [0-9][0-9]) at_desc_line=" $1: " ;;
    *)          at_desc_line="$1: "  ;;
  esac
  as_fn_append at_desc_line "$3$4"
  $at_quiet $as_echo_n "$at_desc_line"
  echo "#                             -*- compilation -*-" >> "$at_group_log"
}

# at_fn_group_postprocess
# -----------------------
# Perform cleanup after running a test group.
at_fn_group_postprocess ()
{
  # Be sure to come back to the suite directory, in particular
  # since below we might `rm' the group directory we are in currently.
  cd "$at_suite_dir"

  if test ! -f "$at_check_line_file"; then
    sed "s/^ */$as_me: WARNING: /" <<_ATEOF
      A failure happened in a test group before any test could be
      run. This means that test suite is improperly designed.  Please
      report this failure to <bug-gnucobol@gnu.org>.
_ATEOF
    $as_echo "$at_setup_line" >"$at_check_line_file"
    at_status=99
  fi
  $at_verbose $as_echo_n "$at_group. $at_setup_line: "
  $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log"
  case $at_xfail:$at_status in
    yes:0)
	at_msg="UNEXPECTED PASS"
	at_res=xpass
	at_errexit=$at_errexit_p
	at_color=$at_red
	;;
    no:0)
	at_msg="ok"
	at_res=pass
	at_errexit=false
	at_color=$at_grn
	;;
    *:77)
	at_msg='skipped ('`cat "$at_check_line_file"`')'
	at_res=skip
	at_errexit=false
	at_color=$at_blu
	;;
    no:* | *:99)
	at_msg='FAILED ('`cat "$at_check_line_file"`')'
	at_res=fail
	at_errexit=$at_errexit_p
	at_color=$at_red
	;;
    yes:*)
	at_msg='expected failure ('`cat "$at_check_line_file"`')'
	at_res=xfail
	at_errexit=false
	at_color=$at_lgn
	;;
  esac
  echo "$at_res" > "$at_job_dir/$at_res"
  # In parallel mode, output the summary line only afterwards.
  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
    $as_echo "$at_desc_line $at_color$at_msg$at_std"
  else
    # Make sure there is a separator even with long titles.
    $as_echo " $at_color$at_msg$at_std"
  fi
  at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
  case $at_status in
    0|77)
      # $at_times_file is only available if the group succeeded.
      # We're not including the group log, so the success message
      # is written in the global log separately.  But we also
      # write to the group log in case they're using -d.
      if test -f "$at_times_file"; then
	at_log_msg="$at_log_msg     ("`sed 1d "$at_times_file"`')'
	rm -f "$at_times_file"
      fi
      $as_echo "$at_log_msg" >> "$at_group_log"
      $as_echo "$at_log_msg" >&5

      # Cleanup the group directory, unless the user wants the files
      # or the success was unexpected.
      if $at_debug_p || test $at_res = xpass; then
	at_fn_create_debugging_script
	if test $at_res = xpass && $at_errexit; then
	  echo stop > "$at_stop_file"
	fi
      else
	if test -d "$at_group_dir"; then
	  find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
	  rm -fr "$at_group_dir"
	fi
	rm -f "$at_test_source"
      fi
      ;;
    *)
      # Upon failure, include the log into the testsuite's global
      # log.  The failure message is written in the group log.  It
      # is later included in the global log.
      $as_echo "$at_log_msg" >> "$at_group_log"

      # Upon failure, keep the group directory for autopsy, and create
      # the debugging script.  With -e, do not start any further tests.
      at_fn_create_debugging_script
      if $at_errexit; then
	echo stop > "$at_stop_file"
      fi
      ;;
  esac
}


## ------------ ##
## Driver loop. ##
## ------------ ##


if (set -m && set +m && set +b) >/dev/null 2>&1; then
  set +b
  at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
else
  at_job_control_on=: at_job_control_off=: at_job_group=
fi

for at_signal in 1 2 15; do
  trap 'set +x; set +e
	$at_job_control_off
	at_signal='"$at_signal"'
	echo stop > "$at_stop_file"
	trap "" $at_signal
	at_pgids=
	for at_pgid in `jobs -p 2>/dev/null`; do
	  at_pgids="$at_pgids $at_job_group$at_pgid"
	done
	test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
	wait
	if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
	  echo >&2
	fi
	at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
	set x $at_signame
	test 1 -gt 2 && at_signame=$at_signal
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
	as_fn_arith 128 + $at_signal && exit_status=$as_val
	as_fn_exit $exit_status' $at_signal
done

rm -f "$at_stop_file"
at_first=:

if test $at_jobs -ne 1 &&
     rm -f "$at_job_fifo" &&
     test -n "$at_job_group" &&
     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
then
  # FIFO job dispatcher.

  trap 'at_pids=
	for at_pid in `jobs -p`; do
	  at_pids="$at_pids $at_job_group$at_pid"
	done
	if test -n "$at_pids"; then
	  at_sig=TSTP
	  test "${TMOUT+set}" = set && at_sig=STOP
	  kill -$at_sig $at_pids 2>/dev/null
	fi
	kill -STOP $$
	test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP

  echo
  # Turn jobs into a list of numbers, starting from 1.
  at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p`

  set X $at_joblist
  shift
  for at_group in $at_groups; do
    $at_job_control_on 2>/dev/null
    (
      # Start one test group.
      $at_job_control_off
      if $at_first; then
	exec 7>"$at_job_fifo"
      else
	exec 6<&-
      fi
      trap 'set +x; set +e
	    trap "" PIPE
	    echo stop > "$at_stop_file"
	    echo >&7
	    as_fn_exit 141' PIPE
      at_fn_group_prepare
      if cd "$at_group_dir" &&
	 at_fn_test $at_group &&
	 . "$at_test_source"
      then :; else
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
	at_failed=:
      fi
      at_fn_group_postprocess
      echo >&7
    ) &
    $at_job_control_off
    if $at_first; then
      at_first=false
      exec 6<"$at_job_fifo" 7>"$at_job_fifo"
    fi
    shift # Consume one token.
    if test $# -gt 0; then :; else
      read at_token <&6 || break
      set x $*
    fi
    test -f "$at_stop_file" && break
  done
  exec 7>&-
  # Read back the remaining ($at_jobs - 1) tokens.
  set X $at_joblist
  shift
  if test $# -gt 0; then
    shift
    for at_job
    do
      read at_token
    done <&6
  fi
  exec 6<&-
  wait
else
  # Run serially, avoid forks and other potential surprises.
  for at_group in $at_groups; do
    at_fn_group_prepare
    if cd "$at_group_dir" &&
       at_fn_test $at_group &&
       . "$at_test_source"; then :; else
      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
      at_failed=:
    fi
    at_fn_group_postprocess
    test -f "$at_stop_file" && break
    at_first=false
  done
fi

# Wrap up the test suite with summary statistics.
cd "$at_helper_dir"

# Use ?..???? when the list must remain sorted, the faster * otherwise.
at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
		 echo $f; done | sed '/?/d; s,/xpass,,'`
at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
		echo $f; done | sed '/?/d; s,/fail,,'`

set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
shift; at_group_count=$#
set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
set X $at_xfail_list; shift; at_xfail_count=$#
set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
set X $at_skip_list; shift; at_skip_count=$#

as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val

# Back to the top directory.
cd "$at_dir"
rm -rf "$at_helper_dir"

# Compute the duration of the suite.
at_stop_date=`date`
at_stop_time=`date +%s 2>/dev/null`
$as_echo "$as_me: ending at: $at_stop_date" >&5
case $at_start_time,$at_stop_time in
  [0-9]*,[0-9]*)
    as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
    as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
    as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
    as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
    as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
    at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
    $as_echo "$as_me: test suite duration: $at_duration" >&5
    ;;
esac

echo
$as_echo "## ------------- ##
## Test results. ##
## ------------- ##"
echo
{
  echo
  $as_echo "## ------------- ##
## Test results. ##
## ------------- ##"
  echo
} >&5

if test $at_run_count = 1; then
  at_result="1 test"
  at_were=was
else
  at_result="$at_run_count tests"
  at_were=were
fi
if $at_errexit_p && test $at_unexpected_count != 0; then
  if test $at_xpass_count = 1; then
    at_result="$at_result $at_were run, one passed"
  else
    at_result="$at_result $at_were run, one failed"
  fi
  at_result="$at_result unexpectedly and inhibited subsequent tests."
  at_color=$at_red
else
  # Don't you just love exponential explosion of the number of cases?
  at_color=$at_red
  case $at_xpass_count:$at_fail_count:$at_xfail_count in
    # So far, so good.
    0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
    0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;

    # Some unexpected failures
    0:*:0) at_result="$at_result $at_were run,
$at_fail_count failed unexpectedly." ;;

    # Some failures, both expected and unexpected
    0:*:1) at_result="$at_result $at_were run,
$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
    0:*:*) at_result="$at_result $at_were run,
$at_total_fail_count failed ($at_xfail_count expected failures)." ;;

    # No unexpected failures, but some xpasses
    *:0:*) at_result="$at_result $at_were run,
$at_xpass_count passed unexpectedly." ;;

    # No expected failures, but failures and xpasses
    *:1:0) at_result="$at_result $at_were run,
$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
    *:*:0) at_result="$at_result $at_were run,
$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;

    # All of them.
    *:*:1) at_result="$at_result $at_were run,
$at_xpass_count passed unexpectedly,
$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
    *:*:*) at_result="$at_result $at_were run,
$at_xpass_count passed unexpectedly,
$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
  esac

  if test $at_skip_count = 0 && test $at_run_count -gt 1; then
    at_result="All $at_result"
  fi
fi

# Now put skips in the mix.
case $at_skip_count in
  0) ;;
  1) at_result="$at_result
1 test was skipped." ;;
  *) at_result="$at_result
$at_skip_count tests were skipped." ;;
esac

if test $at_unexpected_count = 0; then
  echo "$at_color$at_result$at_std"
  echo "$at_result" >&5
else
  echo "${at_color}ERROR: $at_result$at_std" >&2
  echo "ERROR: $at_result" >&5
  {
    echo
    $as_echo "## ------------------------ ##
## Summary of the failures. ##
## ------------------------ ##"

    # Summary of failed and skipped tests.
    if test $at_fail_count != 0; then
      echo "Failed tests:"
      $SHELL "$at_myself" $at_fail_list --list
      echo
    fi
    if test $at_skip_count != 0; then
      echo "Skipped tests:"
      $SHELL "$at_myself" $at_skip_list --list
      echo
    fi
    if test $at_xpass_count != 0; then
      echo "Unexpected passes:"
      $SHELL "$at_myself" $at_xpass_list --list
      echo
    fi
    if test $at_fail_count != 0; then
      $as_echo "## ---------------------- ##
## Detailed failed tests. ##
## ---------------------- ##"
      echo
      for at_group in $at_fail_list
      do
	at_group_normalized=$at_group

  eval 'while :; do
    case $at_group_normalized in #(
    '"$at_format"'*) break;;
    esac
    at_group_normalized=0$at_group_normalized
  done'

	cat "$at_suite_dir/$at_group_normalized/$as_me.log"
	echo
      done
      echo
    fi
    if test -n "$at_top_srcdir"; then
      sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## ${at_top_build_prefix}config.log ##
_ASBOX
      sed 's/^/| /' ${at_top_build_prefix}config.log
      echo
    fi
  } >&5

  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## $as_me.log was created. ##
_ASBOX

  echo
  if $at_debug_p; then
    at_msg='per-test log files'
  else
    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
  fi
  $as_echo "Please send $at_msg and all information you think might help:

   To: <bug-gnucobol@gnu.org>
   Subject: [GnuCOBOL 3.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 'used_binaries.at:27' \
  "compiler help and information" "                  " 1
at_xfail=no
(
  $as_echo "1. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: check at least some parts of the output by using $GREP
{ set +x
$as_echo "$at_srcdir/used_binaries.at:31: \$COBC --version"
at_fn_check_prepare_dynamic "$COBC --version" "used_binaries.at:31"
( $at_check_trace; $COBC --version
) >>"$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/used_binaries.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:32: \$COBC -v --version"
at_fn_check_prepare_dynamic "$COBC -v --version" "used_binaries.at:32"
( $at_check_trace; $COBC -v --version
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:33: \$COBC -q --version"
at_fn_check_prepare_dynamic "$COBC -q --version" "used_binaries.at:33"
( $at_check_trace; $COBC -q --version
) >>"$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/used_binaries.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:34: \$COBC --help"
at_fn_check_prepare_dynamic "$COBC --help" "used_binaries.at:34"
( $at_check_trace; $COBC --help
) >>"$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/used_binaries.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:35: \$COBC --info"
at_fn_check_prepare_dynamic "$COBC --info" "used_binaries.at:35"
( $at_check_trace; $COBC --info
) >>"$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/used_binaries.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:36: \$COBC -v --info"
at_fn_check_prepare_dynamic "$COBC -v --info" "used_binaries.at:36"
( $at_check_trace; $COBC -v --info
) >>"$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/used_binaries.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:37: \$COBC -q --info"
at_fn_check_prepare_dynamic "$COBC -q --info" "used_binaries.at:37"
( $at_check_trace; $COBC -q --info
) >>"$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/used_binaries.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:38: \$COBC --list-reserved"
at_fn_check_prepare_dynamic "$COBC --list-reserved" "used_binaries.at:38"
( $at_check_trace; $COBC --list-reserved
) >>"$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/used_binaries.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:39: \$COBC --list-registers"
at_fn_check_prepare_dynamic "$COBC --list-registers" "used_binaries.at:39"
( $at_check_trace; $COBC --list-registers
) >>"$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/used_binaries.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:40: \$COBC --list-intrinsics"
at_fn_check_prepare_dynamic "$COBC --list-intrinsics" "used_binaries.at:40"
( $at_check_trace; $COBC --list-intrinsics
) >>"$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/used_binaries.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:41: \$COBC --list-mnemonics"
at_fn_check_prepare_dynamic "$COBC --list-mnemonics" "used_binaries.at:41"
( $at_check_trace; $COBC --list-mnemonics
) >>"$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/used_binaries.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:42: \$COBC -std=mf --list-reserved"
at_fn_check_prepare_dynamic "$COBC -std=mf --list-reserved" "used_binaries.at:42"
( $at_check_trace; $COBC -std=mf --list-reserved
) >>"$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/used_binaries.at:42"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:43: \$COBC -std=acu --list-registers"
at_fn_check_prepare_dynamic "$COBC -std=acu --list-registers" "used_binaries.at:43"
( $at_check_trace; $COBC -std=acu --list-registers
) >>"$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/used_binaries.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:44: \$COBC -std=cobol2002 --list-intrinsics"
at_fn_check_prepare_dynamic "$COBC -std=cobol2002 --list-intrinsics" "used_binaries.at:44"
( $at_check_trace; $COBC -std=cobol2002 --list-intrinsics
) >>"$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/used_binaries.at:44"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:45: \$COBC -std=ibm --list-mnemonics"
at_fn_check_prepare_dynamic "$COBC -std=ibm --list-mnemonics" "used_binaries.at:45"
( $at_check_trace; $COBC -std=ibm --list-mnemonics
) >>"$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/used_binaries.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:46: \$COBC --list-system"
at_fn_check_prepare_dynamic "$COBC --list-system" "used_binaries.at:46"
( $at_check_trace; $COBC --list-system
) >>"$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/used_binaries.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1
#AT_START_2
at_fn_group_banner 2 'used_binaries.at:50' \
  "compiler warnings" "                              " 1
at_xfail=no
(
  $as_echo "2. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        77 var1    pic 9.
        77 var2    pic 99.
        PROCEDURE DIVISION.
        PERFORM UNTIL 0 = 1
           DISPLAY 'BLA'
        END-PERFORM.
        MOVE var1 to var2
        MOVE var2 to var1
        GOBACK.
_ATEOF

{ set +x
$as_echo "$at_srcdir/used_binaries.at:68: \$COBC -fsyntax-only prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only prog.cob" "used_binaries.at:68"
( $at_check_trace; $COBC -fsyntax-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/used_binaries.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }

# increasing to more warnings
{ set +x
$as_echo "$at_srcdir/used_binaries.at:70: \$COBC -fsyntax-only -Wadditional prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wadditional prog.cob" "used_binaries.at:70"
( $at_check_trace; $COBC -fsyntax-only -Wadditional 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: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:70"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:73: \$COBC -fsyntax-only -fno-diagnostics-show-option -Wadditional prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -fno-diagnostics-show-option -Wadditional prog.cob" "used_binaries.at:73"
( $at_check_trace; $COBC -fsyntax-only -fno-diagnostics-show-option -Wadditional 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: PERFORM FOREVER since UNTIL is always FALSE
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:73"
$at_failed && at_fn_log_failure
$at_traceon; }

# which in this case is also included in -Wall
{ set +x
$as_echo "$at_srcdir/used_binaries.at:77: \$COBC -fsyntax-only -Wall prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wall prog.cob" "used_binaries.at:77"
( $at_check_trace; $COBC -fsyntax-only -Wall 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: expression '0' EQUALS '1' is always FALSE [-Wconstant-expression]
prog.cob:9: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:77"
$at_failed && at_fn_log_failure
$at_traceon; }

# -Wextra is more descriptive ...
{ set +x
$as_echo "$at_srcdir/used_binaries.at:82: \$COBC -fsyntax-only -Wextra prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wextra prog.cob" "used_binaries.at:82"
( $at_check_trace; $COBC -fsyntax-only -Wextra 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: expression '0' EQUALS '1' is always FALSE [-Wconstant-expression]
prog.cob:9: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
prog.cob:10: warning: DISPLAY statement not terminated by END-DISPLAY [-Wterminator]
prog.cob:13: warning: some digits may be truncated [-Wpossible-truncate]
prog.cob:7: note: 'var2' defined here as PIC 99 [-Wpossible-truncate]
prog.cob:6: note: 'var1' defined here as PIC 9 [-Wpossible-truncate]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:82"
$at_failed && at_fn_log_failure
$at_traceon; }

# ... the old -W is in for backwards portability
{ set +x
$as_echo "$at_srcdir/used_binaries.at:91: \$COBC -fsyntax-only -W prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -W prog.cob" "used_binaries.at:91"
( $at_check_trace; $COBC -fsyntax-only -W 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: expression '0' EQUALS '1' is always FALSE [-Wconstant-expression]
prog.cob:9: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
prog.cob:10: warning: DISPLAY statement not terminated by END-DISPLAY [-Wterminator]
prog.cob:13: warning: some digits may be truncated [-Wpossible-truncate]
prog.cob:7: note: 'var2' defined here as PIC 99 [-Wpossible-truncate]
prog.cob:6: note: 'var1' defined here as PIC 9 [-Wpossible-truncate]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:91"
$at_failed && at_fn_log_failure
$at_traceon; }

# a global "error" use implies no warning settings
{ set +x
$as_echo "$at_srcdir/used_binaries.at:100: \$COBC -fsyntax-only -Werror prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Werror prog.cob" "used_binaries.at:100"
( $at_check_trace; $COBC -fsyntax-only -Werror 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/used_binaries.at:100"
$at_failed && at_fn_log_failure
$at_traceon; }

# a concrete "error" use implies setting the warning
{ set +x
$as_echo "$at_srcdir/used_binaries.at:102: \$COBC -fsyntax-only -Werror=additional prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Werror=additional prog.cob" "used_binaries.at:102"
( $at_check_trace; $COBC -fsyntax-only -Werror=additional 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: PERFORM FOREVER since UNTIL is always FALSE [-Werror=additional]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:102"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:105: \$COBC -fsyntax-only -fno-diagnostics-show-option -Werror=additional prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -fno-diagnostics-show-option -Werror=additional prog.cob" "used_binaries.at:105"
( $at_check_trace; $COBC -fsyntax-only -fno-diagnostics-show-option -Werror=additional 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: PERFORM FOREVER since UNTIL is always FALSE
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:105"
$at_failed && at_fn_log_failure
$at_traceon; }

# a "no-error" use implies nothing
{ set +x
$as_echo "$at_srcdir/used_binaries.at:109: \$COBC -fsyntax-only -Wno-error=additional prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wno-error=additional prog.cob" "used_binaries.at:109"
( $at_check_trace; $COBC -fsyntax-only -Wno-error=additional 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/used_binaries.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

# ... now combined
{ set +x
$as_echo "$at_srcdir/used_binaries.at:111: \$COBC -fsyntax-only -Werror -Wno-error=additional prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Werror -Wno-error=additional prog.cob" "used_binaries.at:111"
( $at_check_trace; $COBC -fsyntax-only -Werror -Wno-error=additional 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/used_binaries.at:111"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:112: \$COBC -fsyntax-only -Werror=additional -Wno-error prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Werror=additional -Wno-error prog.cob" "used_binaries.at:112"
( $at_check_trace; $COBC -fsyntax-only -Werror=additional -Wno-error 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: PERFORM FOREVER since UNTIL is always FALSE [-Werror=additional]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:112"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:115: \$COBC -fsyntax-only -w -Werror=additional prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -w -Werror=additional prog.cob" "used_binaries.at:115"
( $at_check_trace; $COBC -fsyntax-only -w -Werror=additional 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: PERFORM FOREVER since UNTIL is always FALSE [-Werror=additional]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:115"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:118: \$COBC -fsyntax-only -w -Wadditional prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -w -Wadditional prog.cob" "used_binaries.at:118"
( $at_check_trace; $COBC -fsyntax-only -w -Wadditional 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: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:118"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:121: \$COBC -fsyntax-only -w -Wpossible-truncate prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -w -Wpossible-truncate prog.cob" "used_binaries.at:121"
( $at_check_trace; $COBC -fsyntax-only -w -Wpossible-truncate prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:13: warning: some digits may be truncated [-Wpossible-truncate]
prog.cob:7: note: 'var2' defined here as PIC 99 [-Wpossible-truncate]
prog.cob:6: note: 'var1' defined here as PIC 9 [-Wpossible-truncate]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:121"
$at_failed && at_fn_log_failure
$at_traceon; }

# TODO: unknown warnings should only get a diagnostic (in verbose mode)
#AT_CHECK([$COBC -fsyntax-only -Wunknown-warning prog.cob], [0], [], [])
#AT_CHECK([$COBC -fsyntax-only -Wno-unknown-warning prog.cob], [0], [], [])
#AT_CHECK([$COBC -fsyntax-only -v -Wunknown-warning prog.cob], [0], [],
#[cobc: unknown warning option 'unknown-warning'
#])
#AT_CHECK([$COBC -fsyntax-only -v -Wno-unknown-warning prog.cob], [0], [],
#[cobc: unknown warning option 'unknown-warning'
#])

cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 TEST-VAR PIC 9(2) VALUE 'A'.
       COPY 'CRUD.CPY'.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR NO ADVANCING
           END-DISPLAY
           MOVE 12 TO TEST-VAR
           DISPLAY TEST-VAR NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:152: \$COBC -Wall -fsyntax-only prog2.cob"
at_fn_check_prepare_dynamic "$COBC -Wall -fsyntax-only prog2.cob" "used_binaries.at:152"
( $at_check_trace; $COBC -Wall -fsyntax-only prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: CRUD.CPY: No such file or directory
prog2.cob:6: warning: numeric value is expected [-Wothers]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:152"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/used_binaries.at:157: \$COBC -fsyntax-only -fmax-errors=0 prog2.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -fmax-errors=0 prog2.cob" "used_binaries.at:157"
( $at_check_trace; $COBC -fsyntax-only -fmax-errors=0 prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: CRUD.CPY: No such file or directory
cobc: too many errors [-fmax-errors=0]

cobc: aborting compile of prog2.cob at line 7 (unknown: unknown)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 97 $at_status "$at_srcdir/used_binaries.at:157"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/used_binaries.at:164: \$COBC -fsyntax-only -Wfatal-errors prog2.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wfatal-errors prog2.cob" "used_binaries.at:164"
( $at_check_trace; $COBC -fsyntax-only -Wfatal-errors prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: CRUD.CPY: No such file or directory
cobc: too many errors [-Wfatal-errors]

cobc: aborting compile of prog2.cob at line 7 (unknown: unknown)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 97 $at_status "$at_srcdir/used_binaries.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/used_binaries.at:171: \$COBC -q -Wfatal-errors=123 prog.cob"
at_fn_check_prepare_dynamic "$COBC -q -Wfatal-errors=123 prog.cob" "used_binaries.at:171"
( $at_check_trace; $COBC -q -Wfatal-errors=123 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cobc: option '-Wfatal-errors' doesn't allow an argument
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2
#AT_START_3
at_fn_group_banner 3 'used_binaries.at:178' \
  "compiler outputs (general)" "                     " 1
at_xfail=no
(
  $as_echo "3. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 BLA PIC X(5) VALUE 'bluBb'.
        PROCEDURE DIVISION.
        DISPLAY BLA NO ADVANCING END-DISPLAY
        STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:192: \$COBC -C prog.cob"
at_fn_check_prepare_dynamic "$COBC -C prog.cob" "used_binaries.at:192"
( $at_check_trace; $COBC -C prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:192"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:193: \$COBC -v -c prog.c"
at_fn_check_prepare_dynamic "$COBC -v -c prog.c" "used_binaries.at:193"
( $at_check_trace; $COBC -v -c prog.c
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:194: \$COBC -v prog.\$COB_OBJECT_EXT"
at_fn_check_prepare_dynamic "$COBC -v prog.$COB_OBJECT_EXT" "used_binaries.at:194"
( $at_check_trace; $COBC -v prog.$COB_OBJECT_EXT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:195: \$COBCRUN prog"
at_fn_check_prepare_dynamic "$COBCRUN prog" "used_binaries.at:195"
( $at_check_trace; $COBCRUN 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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:196: \$COBC -x -C prog.cob"
at_fn_check_prepare_dynamic "$COBC -x -C prog.cob" "used_binaries.at:196"
( $at_check_trace; $COBC -x -C prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:196"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:197: \$COBC -v -x -c prog.c"
at_fn_check_prepare_dynamic "$COBC -v -x -c prog.c" "used_binaries.at:197"
( $at_check_trace; $COBC -v -x -c prog.c
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:198: \$COBC -v -x prog.\$COB_OBJECT_EXT -o progo"
at_fn_check_prepare_dynamic "$COBC -v -x prog.$COB_OBJECT_EXT -o progo" "used_binaries.at:198"
( $at_check_trace; $COBC -v -x prog.$COB_OBJECT_EXT -o progo
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:198"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:199: \$COBCRUN_DIRECT ./progo"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progo" "used_binaries.at:199"
( $at_check_trace; $COBCRUN_DIRECT ./progo
) >>"$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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:199"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:200: \$COBC -E prog.cob"
at_fn_check_prepare_dynamic "$COBC -E prog.cob" "used_binaries.at:200"
( $at_check_trace; $COBC -E prog.cob
) >>"$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 "#line 1 \"prog.cob\"

 IDENTIFICATION DIVISION.
 PROGRAM-ID. prog.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01 BLA PIC X(5) VALUE 'bluBb'.
 PROCEDURE DIVISION.
 DISPLAY BLA NO ADVANCING END-DISPLAY
 STOP RUN.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:212: \$COBC -E -o prog.i prog.cob"
at_fn_check_prepare_dynamic "$COBC -E -o prog.i prog.cob" "used_binaries.at:212"
( $at_check_trace; $COBC -E -o prog.i 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/used_binaries.at:212"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:213: \$COBC -x prog.i"
at_fn_check_prepare_dynamic "$COBC -x prog.i" "used_binaries.at:213"
( $at_check_trace; $COBC -x prog.i
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:214: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:214"
( $at_check_trace; $COBCRUN_DIRECT ./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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:214"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_3
#AT_START_4
at_fn_group_banner 4 'used_binaries.at:218' \
  "compiler outputs (file specified)" "              " 1
at_xfail=no
(
  $as_echo "4. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 BLA PIC X(5) VALUE 'bluBb'.
        PROCEDURE DIVISION.
        MAIN-PROC SECTION.
        COPY PROC.
        END-PROC  SECTION.
        STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:234: mkdir -p sub/copy"
at_fn_check_prepare_trace "used_binaries.at:234"
( $at_check_trace; mkdir -p sub/copy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >sub/copy/PROC.cpy <<'_ATEOF'

        DISPLAY BLA NO ADVANCING.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:240: \$COBC -I sub/copy prog.cob -o prog.c"
at_fn_check_prepare_dynamic "$COBC -I sub/copy prog.cob -o prog.c" "used_binaries.at:240"
( $at_check_trace; $COBC -I sub/copy prog.cob -o prog.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/used_binaries.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:241: \$COBC -I sub/copy prog.c -o prog.\$COB_OBJECT_EXT"
at_fn_check_prepare_dynamic "$COBC -I sub/copy prog.c -o prog.$COB_OBJECT_EXT" "used_binaries.at:241"
( $at_check_trace; $COBC -I sub/copy prog.c -o prog.$COB_OBJECT_EXT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:241"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:242: \$COBC -I sub/copy prog.\$COB_OBJECT_EXT -o prog"
at_fn_check_prepare_dynamic "$COBC -I sub/copy prog.$COB_OBJECT_EXT -o prog" "used_binaries.at:242"
( $at_check_trace; $COBC -I sub/copy prog.$COB_OBJECT_EXT -o 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/used_binaries.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:243: \$COBCRUN prog"
at_fn_check_prepare_dynamic "$COBCRUN prog" "used_binaries.at:243"
( $at_check_trace; $COBCRUN 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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:244: \$COBC -I sub/copy -x prog.cob -o prog.c"
at_fn_check_prepare_dynamic "$COBC -I sub/copy -x prog.cob -o prog.c" "used_binaries.at:244"
( $at_check_trace; $COBC -I sub/copy -x prog.cob -o prog.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/used_binaries.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:245: \$COBC -I sub/copy -x prog.c -o prog.\$COB_OBJECT_EXT"
at_fn_check_prepare_dynamic "$COBC -I sub/copy -x prog.c -o prog.$COB_OBJECT_EXT" "used_binaries.at:245"
( $at_check_trace; $COBC -I sub/copy -x prog.c -o prog.$COB_OBJECT_EXT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:245"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:246: \$COBC -I sub/copy -x prog.\$COB_OBJECT_EXT -o progo\$COB_EXE_EXT"
at_fn_check_prepare_dynamic "$COBC -I sub/copy -x prog.$COB_OBJECT_EXT -o progo$COB_EXE_EXT" "used_binaries.at:246"
( $at_check_trace; $COBC -I sub/copy -x prog.$COB_OBJECT_EXT -o progo$COB_EXE_EXT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:246"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:247: \$COBCRUN_DIRECT ./progo"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progo" "used_binaries.at:247"
( $at_check_trace; $COBCRUN_DIRECT ./progo
) >>"$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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:247"
$at_failed && at_fn_log_failure
$at_traceon; }

# making the extension explicit here to not let case-insensitive file-systems catch a .CPY...
{ set +x
$as_echo "$at_srcdir/used_binaries.at:249: \$COBC -I sub/copy prog.cob -ext=cpy -o prog.i"
at_fn_check_prepare_dynamic "$COBC -I sub/copy prog.cob -ext=cpy -o prog.i" "used_binaries.at:249"
( $at_check_trace; $COBC -I sub/copy prog.cob -ext=cpy -o prog.i
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:249"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:250: \$COBC -x prog.i -o prog\$COB_EXE_EXT"
at_fn_check_prepare_dynamic "$COBC -x prog.i -o prog$COB_EXE_EXT" "used_binaries.at:250"
( $at_check_trace; $COBC -x prog.i -o prog$COB_EXE_EXT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:250"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:251: \$COBCRUN_DIRECT ./prog\$COB_EXE_EXT"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog$COB_EXE_EXT" "used_binaries.at:251"
( $at_check_trace; $COBCRUN_DIRECT ./prog$COB_EXE_EXT
) >>"$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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:251"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:252: \$COBC -x prog.i -fgen-c-line-directives -fgen-c-labels -save-temps"
at_fn_check_prepare_dynamic "$COBC -x prog.i -fgen-c-line-directives -fgen-c-labels -save-temps" "used_binaries.at:252"
( $at_check_trace; $COBC -x prog.i -fgen-c-line-directives -fgen-c-labels -save-temps
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:252"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:253: \$GREP 'prog.i'   prog.c"
at_fn_check_prepare_dynamic "$GREP 'prog.i'   prog.c" "used_binaries.at:253"
( $at_check_trace; $GREP 'prog.i'   prog.c
) >>"$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/used_binaries.at:253"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:254: \$GREP 'prog.i'   prog.c | \$GREP '#line'"
at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:254"
( $at_check_trace; $GREP 'prog.i'   prog.c | $GREP '#line'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:254"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:255: \$GREP 'prog.cob' prog.c | \$GREP '#line'"
at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:255"
( $at_check_trace; $GREP 'prog.cob' prog.c | $GREP '#line'
) >>"$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/used_binaries.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:256: \$GREP 'PROC.cpy' prog.c | \$GREP '#line'"
at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:256"
( $at_check_trace; $GREP 'PROC.cpy' prog.c | $GREP '#line'
) >>"$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/used_binaries.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:257: \$GREP 'ENTRY_PROG:'        prog.c"
at_fn_check_prepare_dynamic "$GREP 'ENTRY_PROG:'        prog.c" "used_binaries.at:257"
( $at_check_trace; $GREP 'ENTRY_PROG:'        prog.c
) >>"$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/used_binaries.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:258: \$GREP 'SECTION_END__PROC:' prog.c"
at_fn_check_prepare_dynamic "$GREP 'SECTION_END__PROC:' prog.c" "used_binaries.at:258"
( $at_check_trace; $GREP 'SECTION_END__PROC:' prog.c
) >>"$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/used_binaries.at:258"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:259: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:259"
( $at_check_trace; $COBCRUN_DIRECT ./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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:259"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_4
#AT_START_5
at_fn_group_banner 5 'used_binaries.at:263' \
  "compiler outputs (path specified)" "              " 1
at_xfail=no
(
  $as_echo "5. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 BLA PIC X(5) VALUE 'bluBb'.
        PROCEDURE DIVISION.
        DISPLAY BLA NO ADVANCING END-DISPLAY
        STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:277: mkdir -p sub"
at_fn_check_prepare_trace "used_binaries.at:277"
( $at_check_trace; mkdir -p sub
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:277"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:278: \$COBC prog.cob -o sub/prog.c"
at_fn_check_prepare_dynamic "$COBC prog.cob -o sub/prog.c" "used_binaries.at:278"
( $at_check_trace; $COBC prog.cob -o sub/prog.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/used_binaries.at:278"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:279: \$COBC \$(_return_path \"sub/prog.c\") -o \$(_return_path \"sub/prog.\$COB_OBJECT_EXT\")"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:279"
( $at_check_trace; $COBC $(_return_path "sub/prog.c") -o $(_return_path "sub/prog.$COB_OBJECT_EXT")
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:279"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:280: \$COBC \$(_return_path \"sub/prog.\$COB_OBJECT_EXT\") -o \$(_return_path \"sub/prog\")"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:280"
( $at_check_trace; $COBC $(_return_path "sub/prog.$COB_OBJECT_EXT") -o $(_return_path "sub/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/used_binaries.at:280"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:281: \$COBCRUN -M \$(_return_path \"sub/\") prog"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:281"
( $at_check_trace; $COBCRUN -M $(_return_path "sub/") 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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:281"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:282: \$COBC -x prog.cob -o \$(_return_path \"sub/prog.c\")"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:282"
( $at_check_trace; $COBC -x prog.cob -o $(_return_path "sub/prog.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/used_binaries.at:282"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:283: \$COBC -x \$(_return_path \"sub/prog.c\") -o \$(_return_path \"sub/prog.\$COB_OBJECT_EXT\")"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:283"
( $at_check_trace; $COBC -x $(_return_path "sub/prog.c") -o $(_return_path "sub/prog.$COB_OBJECT_EXT")
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:283"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:284: \$COBC -x \$(_return_path \"sub/prog.\$COB_OBJECT_EXT\") -o \$(_return_path \"sub/progo\$COB_EXE_EXT\")"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:284"
( $at_check_trace; $COBC -x $(_return_path "sub/prog.$COB_OBJECT_EXT") -o $(_return_path "sub/progo$COB_EXE_EXT")
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:284"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:285: \$COBCRUN_DIRECT ./sub/progo"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./sub/progo" "used_binaries.at:285"
( $at_check_trace; $COBCRUN_DIRECT ./sub/progo
) >>"$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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:285"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:286: \$COBC prog.cob -o \$(_return_path \"sub/prog.i\")"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:286"
( $at_check_trace; $COBC prog.cob -o $(_return_path "sub/prog.i")
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:286"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:287: \$COBC -x sub/prog.i -o \$(_return_path \"sub/prog\$COB_EXE_EXT\")"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:287"
( $at_check_trace; $COBC -x sub/prog.i -o $(_return_path "sub/prog$COB_EXE_EXT")
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:288: \$COBCRUN_DIRECT ./sub/prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./sub/prog" "used_binaries.at:288"
( $at_check_trace; $COBCRUN_DIRECT ./sub/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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:288"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_5
#AT_START_6
at_fn_group_banner 6 'used_binaries.at:292' \
  "compiler outputs (assembler)" "                   " 1
at_xfail=no
(
  $as_echo "6. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 BLA PIC X(5) VALUE 'bluBb'.
        PROCEDURE DIVISION.
        DISPLAY BLA NO ADVANCING END-DISPLAY
        STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:306: \$COBC -v -S prog.cob"
at_fn_check_prepare_dynamic "$COBC -v -S prog.cob" "used_binaries.at:306"
( $at_check_trace; $COBC -v -S prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:307: test -f prog.s"
at_fn_check_prepare_trace "used_binaries.at:307"
( $at_check_trace; test -f prog.s
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:307"
if $at_failed; then :
  # Previous test "failed" --> prog.s not available --> likely a VS build
# only check for file as cl.exe cannot create executables from self-created
# assembler sources
{ set +x
$as_echo "$at_srcdir/used_binaries.at:307: test -f prog.asm"
at_fn_check_prepare_trace "used_binaries.at:307"
( $at_check_trace; test -f prog.asm
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

else
  # Previous test "passed" --> prog.s is available, test compilation and run
{ set +x
$as_echo "$at_srcdir/used_binaries.at:307: \$COBC -v prog.s"
at_fn_check_prepare_dynamic "$COBC -v prog.s" "used_binaries.at:307"
( $at_check_trace; $COBC -v prog.s
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

 { set +x
$as_echo "$at_srcdir/used_binaries.at:307: \$COBCRUN prog"
at_fn_check_prepare_dynamic "$COBCRUN prog" "used_binaries.at:307"
( $at_check_trace; $COBCRUN 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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:315: \$COBC -v -x -S prog.cob"
at_fn_check_prepare_dynamic "$COBC -v -x -S prog.cob" "used_binaries.at:315"
( $at_check_trace; $COBC -v -x -S prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:315"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:316: test -f prog.s"
at_fn_check_prepare_trace "used_binaries.at:316"
( $at_check_trace; test -f prog.s
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:316"
if $at_failed; then :
  # Previous test "failed" --> prog.s not available --> likely a VS build
# only check for file as cl.exe cannot create executables from self-created
# assembler sources
{ set +x
$as_echo "$at_srcdir/used_binaries.at:316: test -f prog.asm"
at_fn_check_prepare_trace "used_binaries.at:316"
( $at_check_trace; test -f prog.asm
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:316"
$at_failed && at_fn_log_failure
$at_traceon; }

else
  # Previous test "passed" --> prog.s is available, test compilation and run
{ set +x
$as_echo "$at_srcdir/used_binaries.at:316: \$COBC -v -x prog.s"
at_fn_check_prepare_dynamic "$COBC -v -x prog.s" "used_binaries.at:316"
( $at_check_trace; $COBC -v -x prog.s
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:316"
$at_failed && at_fn_log_failure
$at_traceon; }

 { set +x
$as_echo "$at_srcdir/used_binaries.at:316: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:316"
( $at_check_trace; $COBCRUN_DIRECT ./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 "bluBb" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:316"
$at_failed && at_fn_log_failure
$at_traceon; }

fi
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_6
#AT_START_7
at_fn_group_banner 7 'used_binaries.at:327' \
  "source file not found" "                          " 1
at_xfail=no
(
  $as_echo "7. $at_setup_line: testing $at_desc ..."
  $at_traceon



{ set +x
$as_echo "$at_srcdir/used_binaries.at:330: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "used_binaries.at:330"
( $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/used_binaries.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_7
#AT_START_8
at_fn_group_banner 8 'used_binaries.at:337' \
  "temporary path invalid" "                         " 1
at_xfail=no
(
  $as_echo "8. $at_setup_line: testing $at_desc ..."
  $at_traceon



# Note: may be either removed completely as there was a report about
#       this test "failing" - or skipped as this very often fails for
#       WIN32 builds

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:353: TMPDIR=\"\" TMP=\"notthere\" TEMP=\"\" \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "TMPDIR=\"\" TMP=\"notthere\" TEMP=\"\" $COMPILE prog.cob" "used_binaries.at:353"
( $at_check_trace; TMPDIR="" TMP="notthere" TEMP="" $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: warning: Temporary directory TMP is invalid, adjust TMPDIR!
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:353"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:356: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:356"
( $at_check_trace; $COBCRUN_DIRECT ./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/used_binaries.at:356"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:357: TMPDIR=\"\" TMP=\"\" TEMP=\"./prog.cob\" \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "TMPDIR=\"\" TMP=\"\" TEMP=\"./prog.cob\" $COMPILE prog.cob" "used_binaries.at:357"
( $at_check_trace; TMPDIR="" TMP="" TEMP="./prog.cob" $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: warning: Temporary directory TEMP is invalid, adjust TMPDIR!
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:357"
$at_failed && at_fn_log_failure
$at_traceon; }

# TMPDIR is only checked when actually needed which is currently only the case
# for SORT
#AT_CHECK([TMPDIR="./prog.cob" $COBCRUN_DIRECT ./prog], [0], [OK],
#[libcob: warning: Temporary directory TEMP is invalid, adjust TMPDIR!
#])
#AT_CHECK([COB_DISABLE_WARNINGS=1 TMPDIR="./prog.cob" $COBCRUN_DIRECT ./prog], [0], [OK],
#[libcob: warning: Temporary directory TEMP is invalid, adjust TMPDIR!
#])

  set +x
  $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 'used_binaries.at:372' \
  "use of full path for cobc" "                      " 1
at_xfail=no
(
  $as_echo "9. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:384: \$COMPILE \"\$(_return_path \"\$(pwd)/prog.cob\")\""
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:384"
( $at_check_trace; $COMPILE "$(_return_path "$(pwd)/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/used_binaries.at:384"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:385: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:385"
( $at_check_trace; $COBCRUN_DIRECT ./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/used_binaries.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_9
#AT_START_10
at_fn_group_banner 10 'used_binaries.at:390' \
  "C Compiler optimizations" "                       " 1
at_xfail=no
(
  $as_echo "10. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:402: \$COMPILE -v -O  -o prog  prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -v -O  -o prog  prog.cob" "used_binaries.at:402"
( $at_check_trace; $COMPILE -v -O  -o prog  prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:402"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:403: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:403"
( $at_check_trace; $COBCRUN_DIRECT ./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/used_binaries.at:403"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/used_binaries.at:405: \$COMPILE -v -O2 -o prog2 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -v -O2 -o prog2 prog.cob" "used_binaries.at:405"
( $at_check_trace; $COMPILE -v -O2 -o prog2 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:405"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:406: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "used_binaries.at:406"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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/used_binaries.at:406"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/used_binaries.at:408: \$COMPILE -v -Os -o progs prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -v -Os -o progs prog.cob" "used_binaries.at:408"
( $at_check_trace; $COMPILE -v -Os -o progs prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:408"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:409: \$COBCRUN_DIRECT ./progs"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progs" "used_binaries.at:409"
( $at_check_trace; $COBCRUN_DIRECT ./progs
) >>"$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/used_binaries.at:409"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/used_binaries.at:411: \$COMPILE -v -O3 -o prog3 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -v -O3 -o prog3 prog.cob" "used_binaries.at:411"
( $at_check_trace; $COMPILE -v -O3 -o prog3 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:411"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:412: \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "used_binaries.at:412"
( $at_check_trace; $COBCRUN_DIRECT ./prog3
) >>"$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/used_binaries.at:412"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/used_binaries.at:414: \$COMPILE -v -O0  -o prog  prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -v -O0  -o prog  prog.cob" "used_binaries.at:414"
( $at_check_trace; $COMPILE -v -O0  -o prog  prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:414"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:415: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "used_binaries.at:415"
( $at_check_trace; $COBCRUN_DIRECT ./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/used_binaries.at:415"
$at_failed && at_fn_log_failure
$at_traceon; }


# last test with O2 (strips output) and output name
{ set +x
$as_echo "$at_srcdir/used_binaries.at:418: mkdir -p sub"
at_fn_check_prepare_trace "used_binaries.at:418"
( $at_check_trace; mkdir -p sub
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:418"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:419: \$COMPILE_MODULE -v -O2 -o \$(_return_path \"sub/prog\") prog.cob"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:419"
( $at_check_trace; $COMPILE_MODULE -v -O2 -o $(_return_path "sub/prog") prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:419"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:420: \$COBCRUN -M sub/ prog"
at_fn_check_prepare_dynamic "$COBCRUN -M sub/ prog" "used_binaries.at:420"
( $at_check_trace; $COBCRUN -M sub/ 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/used_binaries.at:420"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:421: \$COMPILE -v -O2 -o \$(_return_path \"sub/prog\$COB_EXE_EXT\") prog.cob"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:421"
( $at_check_trace; $COMPILE -v -O2 -o $(_return_path "sub/prog$COB_EXE_EXT") prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:422: \$COBCRUN_DIRECT ./sub/prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./sub/prog" "used_binaries.at:422"
( $at_check_trace; $COBCRUN_DIRECT ./sub/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/used_binaries.at:422"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_10
#AT_START_11
at_fn_group_banner 11 'used_binaries.at:427' \
  "invalid cobc option" "                            " 1
at_xfail=no
(
  $as_echo "11. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
_ATEOF


# normal option
{ set +x
$as_echo "$at_srcdir/used_binaries.at:436: \$COMPILE -q --thisoptiondoesntexist prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -q --thisoptiondoesntexist prog.cob" "used_binaries.at:436"
( $at_check_trace; $COMPILE -q --thisoptiondoesntexist prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cobc: unrecognized option '--thisoptiondoesntexist'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

# flag
{ set +x
$as_echo "$at_srcdir/used_binaries.at:440: \$COMPILE -q -flagdoesntexist prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -q -flagdoesntexist prog.cob" "used_binaries.at:440"
( $at_check_trace; $COMPILE -q -flagdoesntexist prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cobc: unrecognized option '-flagdoesntexist'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:440"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_11
#AT_START_12
at_fn_group_banner 12 'used_binaries.at:447' \
  "cobcrun help and information" "                   " 1
at_xfail=no
(
  $as_echo "12. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: check at least some parts of the output by using $GREP
{ set +x
$as_echo "$at_srcdir/used_binaries.at:451: \$COBCRUN --version"
at_fn_check_prepare_dynamic "$COBCRUN --version" "used_binaries.at:451"
( $at_check_trace; $COBCRUN --version
) >>"$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/used_binaries.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:452: \$COBCRUN -v --version"
at_fn_check_prepare_dynamic "$COBCRUN -v --version" "used_binaries.at:452"
( $at_check_trace; $COBCRUN -v --version
) >>"$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/used_binaries.at:452"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:453: \$COBCRUN -q --version"
at_fn_check_prepare_dynamic "$COBCRUN -q --version" "used_binaries.at:453"
( $at_check_trace; $COBCRUN -q --version
) >>"$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/used_binaries.at:453"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:454: \$COBCRUN --help"
at_fn_check_prepare_dynamic "$COBCRUN --help" "used_binaries.at:454"
( $at_check_trace; $COBCRUN --help
) >>"$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/used_binaries.at:454"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:455: \$COBCRUN --info"
at_fn_check_prepare_dynamic "$COBCRUN --info" "used_binaries.at:455"
( $at_check_trace; $COBCRUN --info
) >>"$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/used_binaries.at:455"
$at_failed && at_fn_log_failure
$at_traceon; }

# we explicit do not want to run this here, as it initializes curses
# AT_CHECK([$COBCRUN -v --info], [0], [ignore], [])
{ set +x
$as_echo "$at_srcdir/used_binaries.at:458: \$COBCRUN -q --info"
at_fn_check_prepare_dynamic "$COBCRUN -q --info" "used_binaries.at:458"
( $at_check_trace; $COBCRUN -q --info
) >>"$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/used_binaries.at:458"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_12
#AT_START_13
at_fn_group_banner 13 'used_binaries.at:462' \
  "cobcrun validation" "                             " 1
at_xfail=no
(
  $as_echo "13. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 WRK-VAR       PIC X(5).
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           DISPLAY EXT-VAR NO ADVANCING
           END-DISPLAY.
           MOVE "World" TO EXT-VAR.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       01 WRK-VAR       PIC X(5).
       PROCEDURE        DIVISION.
           MOVE "Hello" TO EXT-VAR.
           CALL "callee"
           END-CALL.
           DISPLAY EXT-VAR NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:495: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "used_binaries.at:495"
( $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/used_binaries.at:495"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:496: \$COMPILE_MODULE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE caller.cob" "used_binaries.at:496"
( $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/used_binaries.at:496"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:497: \$COBCRUN caller"
at_fn_check_prepare_dynamic "$COBCRUN caller" "used_binaries.at:497"
( $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 "HelloWorld" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:497"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_13
#AT_START_14
at_fn_group_banner 14 'used_binaries.at:502' \
  "cobcrun -M DSO entry argument" "                  " 1
at_xfail=no
(
  $as_echo "14. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           DISPLAY EXT-VAR END-DISPLAY.
           MOVE "World" TO EXT-VAR.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE "Hello" TO EXT-VAR.
           CALL "callee" END-CALL.
           DISPLAY EXT-VAR END-DISPLAY.
           STOP RUN.
       END PROGRAM caller.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      inside.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       01 CLA-VAR       PIC X(5).
       PROCEDURE        DIVISION.
           MOVE "Aloha" TO EXT-VAR.
           CALL "callee" END-CALL.
           DISPLAY EXT-VAR END-DISPLAY.
           ACCEPT CLA-VAR FROM COMMAND-LINE END-ACCEPT.
           DISPLAY CLA-VAR END-DISPLAY.
           STOP RUN.
       END PROGRAM inside.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:546: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "used_binaries.at:546"
( $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/used_binaries.at:546"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:547: \$COMPILE_MODULE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE caller.cob" "used_binaries.at:547"
( $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/used_binaries.at:547"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:548: \$COBCRUN -M ./caller inside again"
at_fn_check_prepare_dynamic "$COBCRUN -M ./caller inside again" "used_binaries.at:548"
( $at_check_trace; $COBCRUN -M ./caller inside again
) >>"$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 "Aloha
World
again
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:548"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_14
#AT_START_15
at_fn_group_banner 15 'used_binaries.at:562' \
  "cobcrun -M directory/ default" "                  " 1
at_xfail=no
(
  $as_echo "15. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           DISPLAY EXT-VAR END-DISPLAY.
           MOVE "World" TO EXT-VAR.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE "Hello" TO EXT-VAR.
           CALL "callee" END-CALL.
           DISPLAY EXT-VAR END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:590: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "used_binaries.at:590"
( $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/used_binaries.at:590"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:591: \$COMPILE_MODULE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE caller.cob" "used_binaries.at:591"
( $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/used_binaries.at:591"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:592: \$COBCRUN -M ./ caller"
at_fn_check_prepare_dynamic "$COBCRUN -M ./ caller" "used_binaries.at:592"
( $at_check_trace; $COBCRUN -M ./ 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=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:592"
$at_failed && at_fn_log_failure
$at_traceon; }



  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_15
#AT_START_16
at_fn_group_banner 16 'used_binaries.at:601' \
  "cobcrun -M directory/dso alternate" "             " 1
at_xfail=no
(
  $as_echo "16. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           DISPLAY EXT-VAR END-DISPLAY.
           MOVE "World" TO EXT-VAR.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE "Hello" TO EXT-VAR.
           CALL "callee" END-CALL.
           DISPLAY EXT-VAR END-DISPLAY.
           STOP RUN.
       END PROGRAM caller.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      inside.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE "Aloha" TO EXT-VAR.
           CALL "callee" END-CALL.
           DISPLAY EXT-VAR END-DISPLAY.
           STOP RUN.
       END PROGRAM inside.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:642: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "used_binaries.at:642"
( $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/used_binaries.at:642"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:643: \$COMPILE_MODULE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE caller.cob" "used_binaries.at:643"
( $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/used_binaries.at:643"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:644: \$COBCRUN -M ./caller inside"
at_fn_check_prepare_dynamic "$COBCRUN -M ./caller inside" "used_binaries.at:644"
( $at_check_trace; $COBCRUN -M ./caller inside
) >>"$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 "Aloha
World
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:644"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_16
#AT_START_17
at_fn_group_banner 17 'used_binaries.at:652' \
  "cobcrun -M DSO entry multiple arguments" "        " 1
at_xfail=no
(
  $as_echo "17. $at_setup_line: testing $at_desc ..."
  $at_traceon



# Test that modules can be called with ARGUMENT-VALUES
cat >called.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      called.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 CLI-ARGS      PIC X(27).
       01 ARG-TWO       PIC X(6).
       PROCEDURE        DIVISION.
           ACCEPT CLI-ARGS FROM COMMAND-LINE END-ACCEPT.
           DISPLAY 2 UPON ARGUMENT-NUMBER END-DISPLAY.
           ACCEPT ARG-TWO FROM ARGUMENT-VALUE END-ACCEPT.
           DISPLAY CLI-ARGS ":" ARG-TWO END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


cat >mainer.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      mainer.
       PROCEDURE        DIVISION.
           STOP RUN.
       END PROGRAM mainer.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:679: \$COBC -b \${FLAGS} mainer.cob called.cob"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "used_binaries.at:679"
( $at_check_trace; $COBC -b ${FLAGS} mainer.cob called.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/used_binaries.at:679"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:680: \$COBCRUN -M ./mainer called \"first argument\" \"second\" \"third\""
at_fn_check_prepare_dynamic "$COBCRUN -M ./mainer called \"first argument\" \"second\" \"third\"" "used_binaries.at:680"
( $at_check_trace; $COBCRUN -M ./mainer called "first argument" "second" "third"
) >>"$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 "first argument second third:second
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:680"
$at_failed && at_fn_log_failure
$at_traceon; }


# additional test with environment configuration settings removed:
{ set +x
$as_echo "$at_srcdir/used_binaries.at:685: unset COB_PRE_LOAD COB_LIBRARY_PATH ; \\
   \$COBCRUN -M ./mainer called \"first argument\" \"second\" \"third\""
at_fn_check_prepare_notrace 'an embedded newline' "used_binaries.at:685"
( $at_check_trace; unset COB_PRE_LOAD COB_LIBRARY_PATH ; \
   $COBCRUN -M ./mainer called "first argument" "second" "third"
) >>"$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 "first argument second third:second
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:685"
$at_failed && at_fn_log_failure
$at_traceon; }


# additional test with showing the preloaded environment
# FIXME: check at least some parts of the output ("configuration" and the expected output) by using $GREP
{ set +x
$as_echo "$at_srcdir/used_binaries.at:692: \$COBCRUN -M ./mainer --runtime-conf called \"first argument\" \"second\" \"third\""
at_fn_check_prepare_dynamic "$COBCRUN -M ./mainer --runtime-conf called \"first argument\" \"second\" \"third\"" "used_binaries.at:692"
( $at_check_trace; $COBCRUN -M ./mainer --runtime-conf called "first argument" "second" "third"
) >>"$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/used_binaries.at:692"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_17
#AT_START_18
at_fn_group_banner 18 'used_binaries.at:698' \
  "cobcrun error messages" "                         " 1
at_xfail=no
(
  $as_echo "18. $at_setup_line: testing $at_desc ..."
  $at_traceon



{ set +x
$as_echo "$at_srcdir/used_binaries.at:701: \$COBCRUN -q"
at_fn_check_prepare_dynamic "$COBCRUN -q" "used_binaries.at:701"
( $at_check_trace; $COBCRUN -q
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cobcrun: missing PROGRAM name
Try 'cobcrun --help' for more information.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:701"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:705: \$COBCRUN -q -prog"
at_fn_check_prepare_dynamic "$COBCRUN -q -prog" "used_binaries.at:705"
( $at_check_trace; $COBCRUN -q -prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cobcrun: unrecognized option '-prog'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:705"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:708: \$COBCRUN noprog"
at_fn_check_prepare_dynamic "$COBCRUN noprog" "used_binaries.at:708"
( $at_check_trace; $COBCRUN noprog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: error: module 'noprog' not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:708"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:711: \$COBCRUN -q -M"
at_fn_check_prepare_dynamic "$COBCRUN -q -M" "used_binaries.at:711"
( $at_check_trace; $COBCRUN -q -M
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cobcrun: option requires an argument -- 'M'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/used_binaries.at:711"
$at_failed && at_fn_log_failure
$at_traceon; }

# FIXME - The following doesn't seem to work correct,
#         we expect an error about missing module name
#AT_CHECK([$COBCRUN -q -M noprog], [1], [], [])

  set +x
  $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 'used_binaries.at:721' \
  "run job after compilation" "                      " 1
at_xfail=no
(
  $as_echo "19. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY "job" WITH NO ADVANCING END-DISPLAY
           STOP RUN WITH NORMAL STATUS.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:734: \$COMPILE -jd prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -jd prog.cob" "used_binaries.at:734"
( $at_check_trace; $COMPILE -jd prog.cob
) >>"$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 "job" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:734"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:735: \$COMPILE_MODULE -jd prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE -jd prog.cob" "used_binaries.at:735"
( $at_check_trace; $COMPILE_MODULE -jd prog.cob
) >>"$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 "job" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:735"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_19
#AT_START_20
at_fn_group_banner 20 'used_binaries.at:740' \
  "run job after compilation (path specified)" "     " 1
at_xfail=no
(
  $as_echo "20. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY "job" WITH NO ADVANCING END-DISPLAY
           STOP RUN WITH NORMAL STATUS.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:753: mkdir -p sub"
at_fn_check_prepare_trace "used_binaries.at:753"
( $at_check_trace; mkdir -p sub
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:753"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:754: \$COMPILE_MODULE -jd -o \$(_return_path \"sub/prog\") prog.cob"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:754"
( $at_check_trace; $COMPILE_MODULE -jd -o $(_return_path "sub/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=:
echo >>"$at_stdout"; $as_echo "job" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:754"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:755: \$COMPILE -jd -o \$(_return_path \"sub/prog\$COB_EXE_EXT\") prog.cob"
at_fn_check_prepare_notrace 'a $(...) command substitution' "used_binaries.at:755"
( $at_check_trace; $COMPILE -jd -o $(_return_path "sub/prog$COB_EXE_EXT") prog.cob
) >>"$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 "job" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:755"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_20
#AT_START_21
at_fn_group_banner 21 'used_binaries.at:760' \
  "run job with optional arguments" "                " 1
at_xfail=no
(
  $as_echo "21. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 CLI           PIC X(8).
       PROCEDURE        DIVISION.
           ACCEPT CLI FROM COMMAND-LINE
           DISPLAY CLI WITH NO ADVANCING END-DISPLAY
           STOP RUN WITH NORMAL STATUS.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:775: \$COMPILE -j=\"job 123\" prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -j=\"job 123\" prog.cob" "used_binaries.at:775"
( $at_check_trace; $COMPILE -j="job 123" prog.cob
) >>"$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 "job 123 " | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:775"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:776: \$COMPILE -jdg prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -jdg prog.cob" "used_binaries.at:776"
( $at_check_trace; $COMPILE -jdg prog.cob
) >>"$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 "        " | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:776"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:777: \$COMPILE_MODULE --job=job123 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE --job=job123 prog.cob" "used_binaries.at:777"
( $at_check_trace; $COMPILE_MODULE --job=job123 prog.cob
) >>"$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 "job123  " | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:777"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_21
#AT_START_22
at_fn_group_banner 22 'used_binaries.at:782' \
  "compile from stdin" "                             " 1
at_xfail=no
(
  $as_echo "22. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      a.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN WITH NORMAL STATUS.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:794: cat prog.cob | \$COMPILE_MODULE -"
at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:794"
( $at_check_trace; cat prog.cob | $COMPILE_MODULE -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:794"
if $at_failed; then :
  # Previous test failed run again with full verbose output
# leading to an (expected) fail, but with decent messages
{ set +x
$as_echo "$at_srcdir/used_binaries.at:794: cat prog.cob | \$COMPILE_MODULE -vv -"
at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:794"
( $at_check_trace; cat prog.cob | $COMPILE_MODULE -vv -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:794"
$at_failed && at_fn_log_failure
$at_traceon; }


fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:799: \$COBCRUN a"
at_fn_check_prepare_dynamic "$COBCRUN a" "used_binaries.at:799"
( $at_check_trace; $COBCRUN a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:799"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/used_binaries.at:801: cat prog.cob | \$COMPILE -"
at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:801"
( $at_check_trace; cat prog.cob | $COMPILE -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:801"
if $at_failed; then :
  # more to debug ...
{ set +x
$as_echo "$at_srcdir/used_binaries.at:801: cat prog.cob | \$COMPILE -vv -"
at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:801"
( $at_check_trace; cat prog.cob | $COMPILE -vv -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:801"
$at_failed && at_fn_log_failure
$at_traceon; }


fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:805: \$COBCRUN_DIRECT ./a.out"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./a.out" "used_binaries.at:805"
( $at_check_trace; $COBCRUN_DIRECT ./a.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/used_binaries.at:805"
$at_failed && at_fn_log_failure
$at_traceon; }




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_22
#AT_START_23
at_fn_group_banner 23 'used_binaries.at:812' \
  "run job after compilation from stdin" "           " 1
at_xfail=no
(
  $as_echo "23. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      a.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY "job" WITH NO ADVANCING END-DISPLAY
           STOP RUN WITH NORMAL STATUS.
_ATEOF


{ set +x
$as_echo "$at_srcdir/used_binaries.at:825: cat prog.cob | \$COMPILE -j -"
at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:825"
( $at_check_trace; cat prog.cob | $COMPILE -j -
) >>"$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 "job" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:825"
if $at_failed; then :
  # Previous test failed run again with full verbose output
# leading to an (expected) fail, but with decent messages
{ set +x
$as_echo "$at_srcdir/used_binaries.at:825: cat prog.cob | \$COMPILE -vv -j -"
at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:825"
( $at_check_trace; cat prog.cob | $COMPILE -vv -j -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:825"
$at_failed && at_fn_log_failure
$at_traceon; }


fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/used_binaries.at:830: cat prog.cob | \$COMPILE_MODULE -j -"
at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:830"
( $at_check_trace; cat prog.cob | $COMPILE_MODULE -j -
) >>"$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 "job" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:830"
if $at_failed; then :
  # more to debug ...
{ set +x
$as_echo "$at_srcdir/used_binaries.at:830: cat prog.cob | \$COMPILE_MODULE -vv -j -"
at_fn_check_prepare_notrace 'a shell pipeline' "used_binaries.at:830"
( $at_check_trace; cat prog.cob | $COMPILE_MODULE -vv -j -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/used_binaries.at:830"
$at_failed && at_fn_log_failure
$at_traceon; }


fi
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_23
#AT_START_24
at_fn_group_banner 24 'configuration.at:22' \
  "cobc with standard configuration file" "          " 1
at_xfail=no
(
  $as_echo "24. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       AUTHOR. tester.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


# default configuration permits this extension
{ set +x
$as_echo "$at_srcdir/configuration.at:36: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "configuration.at:36"
( $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:4: warning: AUTHOR is obsolete in GnuCOBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_24
#AT_START_25
at_fn_group_banner 25 'configuration.at:43' \
  "cobc dialect features for all -std" "             " 1
at_xfail=no
(
  $as_echo "25. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       AUTHOR. tester.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/configuration.at:56: \$COMPILE_ONLY -std=default prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=default prog.cob" "configuration.at:56"
( $at_check_trace; $COMPILE_ONLY -std=default prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in GnuCOBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:56"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:59: \$COMPILE_ONLY -std=cobol85 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "configuration.at:59"
( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in COBOL 85
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:59"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:62: \$COMPILE_ONLY -std=cobol2002 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2002 prog.cob" "configuration.at:62"
( $at_check_trace; $COMPILE_ONLY -std=cobol2002 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: error: AUTHOR 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/configuration.at:62"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:65: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "configuration.at:65"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: error: AUTHOR does not conform to COBOL 2014
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:68: \$COMPILE_ONLY -std=xopen prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=xopen prog.cob" "configuration.at:68"
( $at_check_trace; $COMPILE_ONLY -std=xopen prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:71: \$COMPILE_ONLY -std=acu-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "configuration.at:71"
( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in ACUCOBOL-GT
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:71"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:74: \$COMPILE_ONLY -std=bs2000-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=bs2000-strict prog.cob" "configuration.at:74"
( $at_check_trace; $COMPILE_ONLY -std=bs2000-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: error: AUTHOR does not conform to BS2000 COBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:74"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:77: \$COMPILE_ONLY -std=ibm-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm-strict prog.cob" "configuration.at:77"
( $at_check_trace; $COMPILE_ONLY -std=ibm-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in IBM COBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:77"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:80: \$COMPILE_ONLY -std=mf-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "configuration.at:80"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in Micro Focus COBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:80"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:83: \$COMPILE_ONLY -std=rm-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=rm-strict prog.cob" "configuration.at:83"
( $at_check_trace; $COMPILE_ONLY -std=rm-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in RM-COBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:86: \$COMPILE_ONLY -std=realia-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=realia-strict prog.cob" "configuration.at:86"
( $at_check_trace; $COMPILE_ONLY -std=realia-strict 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/configuration.at:86"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:87: \$COMPILE_ONLY -std=mvs-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mvs-strict prog.cob" "configuration.at:87"
( $at_check_trace; $COMPILE_ONLY -std=mvs-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in MVS/VM COBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:87"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:90: \$COMPILE_ONLY -std=acu prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "configuration.at:90"
( $at_check_trace; $COMPILE_ONLY -std=acu 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/configuration.at:90"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:91: \$COMPILE_ONLY -std=bs2000 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=bs2000 prog.cob" "configuration.at:91"
( $at_check_trace; $COMPILE_ONLY -std=bs2000 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/configuration.at:91"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:92: \$COMPILE_ONLY -std=ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "configuration.at:92"
( $at_check_trace; $COMPILE_ONLY -std=ibm 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/configuration.at:92"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:93: \$COMPILE_ONLY -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf prog.cob" "configuration.at:93"
( $at_check_trace; $COMPILE_ONLY -std=mf 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/configuration.at:93"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:94: \$COMPILE_ONLY -std=rm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=rm prog.cob" "configuration.at:94"
( $at_check_trace; $COMPILE_ONLY -std=rm 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/configuration.at:94"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:95: \$COMPILE_ONLY -std=realia prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=realia prog.cob" "configuration.at:95"
( $at_check_trace; $COMPILE_ONLY -std=realia 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/configuration.at:95"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:96: \$COMPILE_ONLY -std=mvs prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mvs prog.cob" "configuration.at:96"
( $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/configuration.at:96"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_25
#AT_START_26
at_fn_group_banner 26 'configuration.at:101' \
  "cobc with configuration file via -std" "          " 1
at_xfail=no
(
  $as_echo "26. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       AUTHOR. tester.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


# check if -std loads configuration file and if override works
{ set +x
$as_echo "$at_srcdir/configuration.at:115: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "configuration.at:115"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: error: AUTHOR does not conform to COBOL 2014
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:115"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_26
#AT_START_27
at_fn_group_banner 27 'configuration.at:122' \
  "cobc with standard configuration file via -conf" "" 1
at_xfail=no
(
  $as_echo "27. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       AUTHOR. tester.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


# check if override via -conf works
{ set +x
$as_echo "$at_srcdir/configuration.at:136: \$COMPILE_ONLY -conf=cobol2014.conf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=cobol2014.conf prog.cob" "configuration.at:136"
( $at_check_trace; $COMPILE_ONLY -conf=cobol2014.conf prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: error: AUTHOR does not conform to COBOL 2014
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:136"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_27
#AT_START_28
at_fn_group_banner 28 'configuration.at:143' \
  "cobc with own configuration file via -conf" "     " 1
at_xfail=no
(
  $as_echo "28. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >test.conf <<'_ATEOF'

include "default.conf"
name: "Sample Conf"
comment-paragraphs:                       ok
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       AUTHOR. tester.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


# check if override via -conf works and if include works
{ set +x
$as_echo "$at_srcdir/configuration.at:163: \$COMPILE_ONLY -conf=test.conf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=test.conf prog.cob" "configuration.at:163"
( $at_check_trace; $COMPILE_ONLY -conf=test.conf 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/configuration.at:163"
$at_failed && at_fn_log_failure
$at_traceon; }


# check if configuration file loading with full path works
{ set +x
$as_echo "$at_srcdir/configuration.at:166: \$COMPILE_ONLY \\
-conf=\"\$(_return_path \"\$(pwd)/test.conf\")\" prog.cob"
at_fn_check_prepare_notrace 'a $(...) command substitution' "configuration.at:166"
( $at_check_trace; $COMPILE_ONLY \
-conf="$(_return_path "$(pwd)/test.conf")" 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/configuration.at:166"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_28
#AT_START_29
at_fn_group_banner 29 'configuration.at:172' \
  "cobc configuration: recursive include" "          " 1
at_xfail=no
(
  $as_echo "29. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >test.conf <<'_ATEOF'

# different line for "include" to check the line number
include "test2.conf"
_ATEOF


cat >test2.conf <<'_ATEOF'

# include in
# line 4
include "test3.conf"
_ATEOF


cat >test3.conf <<'_ATEOF'

include "test.conf"
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/configuration.at:199: \$COMPILE_ONLY -conf=test.conf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=test.conf prog.cob" "configuration.at:199"
( $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 "configuration error:
test.conf: recursive inclusion
test3.conf:2: configuration file was included here
test2.conf:4: configuration file was included here
test.conf:3: configuration file was included here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:199"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_29
#AT_START_30
at_fn_group_banner 30 'configuration.at:210' \
  "cobc with -std and -conf" "                       " 1
at_xfail=no
(
  $as_echo "30. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >test.conf <<'_ATEOF'

include "mf.conf"
name: "Sample Conf"
comment-paragraphs:                       ok
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       AUTHOR. tester.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


# check if override via -conf works and if include works
{ set +x
$as_echo "$at_srcdir/configuration.at:230: \$COMPILE_ONLY -std=default -conf=test.conf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=default -conf=test.conf prog.cob" "configuration.at:230"
( $at_check_trace; $COMPILE_ONLY -std=default -conf=test.conf prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration warning: test.conf: The previous loaded configuration 'GnuCOBOL' will be discarded.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_30
#AT_START_31
at_fn_group_banner 31 'configuration.at:237' \
  "cobc compiler flag on command line" "             " 1
at_xfail=no
(
  $as_echo "31. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       AUTHOR. tester.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/configuration.at:250: \$COMPILE_ONLY -fcomment-paragraphs=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fcomment-paragraphs=ok prog.cob" "configuration.at:250"
( $at_check_trace; $COMPILE_ONLY -fcomment-paragraphs=ok 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/configuration.at:250"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_31
#AT_START_32
at_fn_group_banner 32 'configuration.at:256' \
  "cobc compiler flag on command line (priority)" "  " 1
at_xfail=no
(
  $as_echo "32. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >test.conf <<'_ATEOF'

include "default.conf"
name: "Sample Conf"
comment-paragraphs:   unconformable
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       AUTHOR. tester.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


# configuration flags must work
{ set +x
$as_echo "$at_srcdir/configuration.at:276: \$COMPILE_ONLY \\
-fcomment-paragraphs=ok prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:276"
( $at_check_trace; $COMPILE_ONLY \
-fcomment-paragraphs=ok 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/configuration.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }


# configuration flag on command line must override all (no matter where it's used)
{ set +x
$as_echo "$at_srcdir/configuration.at:280: \$COMPILE_ONLY \\
-fcomment-paragraphs=ok -conf=test.conf prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:280"
( $at_check_trace; $COMPILE_ONLY \
-fcomment-paragraphs=ok -conf=test.conf 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/configuration.at:280"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:282: \$COMPILE_ONLY \\
-conf=test.conf -fcomment-paragraphs=ok prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:282"
( $at_check_trace; $COMPILE_ONLY \
-conf=test.conf -fcomment-paragraphs=ok 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/configuration.at:282"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_32
#AT_START_33
at_fn_group_banner 33 'configuration.at:289' \
  "cobc configuration: entries" "                    " 1
at_xfail=no
(
  $as_echo "33. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


# conf entries must be clean
{ set +x
$as_echo "$at_srcdir/configuration.at:302: \$COMPILE_ONLY -q \\
-fcomment-paragraphsok prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:302"
( $at_check_trace; $COMPILE_ONLY -q \
-fcomment-paragraphsok prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cobc: unrecognized option '-fcomment-paragraphsok'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:302"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:306: \$COMPILE_ONLY \\
-fassign-clause=cobol-2002 prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:306"
( $at_check_trace; $COMPILE_ONLY \
-fassign-clause=cobol-2002 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
-fassign-clause=cobol-2002: invalid value 'cobol-2002' for configuration tag 'assign-clause';
	should be one of the following values: dynamic, external, mf, ibm
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:312: \$COMPILE_ONLY \\
-freserved-words=default prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:312"
( $at_check_trace; $COMPILE_ONLY \
-freserved-words=default 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/configuration.at:312"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:314: \$COMPILE_ONLY \\
-freserved-words=defaults prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:314"
( $at_check_trace; $COMPILE_ONLY \
-freserved-words=defaults prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
-freserved-words=defaults: Could not access word list for 'defaults'
defaults.words: 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/configuration.at:314"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:320: \$COMPILE_ONLY \\
-fword-length=thirty prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:320"
( $at_check_trace; $COMPILE_ONLY \
-fword-length=thirty prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
-fword-length=thirty: invalid value 'thirty' for configuration tag 'word-length';
	must be numeric
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:320"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:326: \$COMPILE_ONLY \\
-fstandard-define=99 prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:326"
( $at_check_trace; $COMPILE_ONLY \
-fstandard-define=99 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
-fstandard-define=99: invalid value '99' for configuration tag 'standard-define';
	maximum value: 9
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:326"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_33
#AT_START_34
at_fn_group_banner 34 'configuration.at:336' \
  "cobc configuration: conf missing" "               " 1
at_xfail=no
(
  $as_echo "34. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >defunc.conf <<'_ATEOF'

include "notthere.conf"
_ATEOF


cat >defunc2.conf <<'_ATEOF'

include
_ATEOF


{ set +x
$as_echo "$at_srcdir/configuration.at:347: \$COMPILE_ONLY -conf=notthere.conf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=notthere.conf prog.cob" "configuration.at:347"
( $at_check_trace; $COMPILE_ONLY -conf=notthere.conf prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
notthere.conf: 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/configuration.at:347"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:351: \$COMPILE_ONLY -conf=defunc.conf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=defunc.conf prog.cob" "configuration.at:351"
( $at_check_trace; $COMPILE_ONLY -conf=defunc.conf prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
notthere.conf: No such file or directory
defunc.conf:2: configuration file was included here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:351"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:356: \$COMPILE_ONLY -conf=defunc2.conf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=defunc2.conf prog.cob" "configuration.at:356"
( $at_check_trace; $COMPILE_ONLY -conf=defunc2.conf prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
defunc2.conf:2: invalid configuration tag 'include'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:356"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_34
#AT_START_35
at_fn_group_banner 35 'configuration.at:364' \
  "cobc configuration: conf optional" "              " 1
at_xfail=no
(
  $as_echo "35. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >defunc.conf <<'_ATEOF'

include "default.conf"
includeif "notthere.conf"
_ATEOF


cat >test.conf <<'_ATEOF'

include "default.conf"
include "test2.conf"
_ATEOF


cat >test2.conf <<'_ATEOF'

name: "Sample Conf"
comment-paragraphs:                       ok
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       AUTHOR. tester.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/configuration.at:392: \$COMPILE_ONLY -conf=defunc.conf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=defunc.conf prog.cob" "configuration.at:392"
( $at_check_trace; $COMPILE_ONLY -conf=defunc.conf prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: warning: AUTHOR is obsolete in GnuCOBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:392"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:395: \$COMPILE_ONLY -conf=test.conf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=test.conf prog.cob" "configuration.at:395"
( $at_check_trace; $COMPILE_ONLY -conf=test.conf 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/configuration.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_35
#AT_START_36
at_fn_group_banner 36 'configuration.at:400' \
  "cobc configuration: incomplete" "                 " 1
at_xfail=no
(
  $as_echo "36. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >test.conf <<'_ATEOF'

name: "Empty Conf"
_ATEOF


# check if incomplete configuration result in error
{ set +x
$as_echo "$at_srcdir/configuration.at:408: \$COMPILE_ONLY -conf=test.conf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -conf=test.conf prog.cob" "configuration.at:408"
( $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 "configuration error:
test.conf: missing definitions:
	no definition of 'reserved-words'
	no definition of 'tab-width'
	no definition of 'text-column'
	no definition of 'pic-length'
	no definition of 'word-length'
	no definition of 'literal-length'
	no definition of 'numeric-literal-length'
	no definition of 'standard-define'
	no definition of 'binary-size'
	no definition of 'binary-byteorder'
	no definition of 'assign-clause'
	no definition of 'screen-section-rules'
	no definition of 'dpc-in-data'
	no definition of 'filename-mapping'
	no definition of 'pretty-display'
	no definition of 'binary-truncate'
	no definition of 'complex-odo'
	no definition of 'indirect-redefines'
	no definition of 'larger-redefines-ok'
	no definition of 'relax-syntax-checks'
	no definition of 'ref-mod-zero-length'
	no definition of 'relax-level-hierarchy'
	no definition of 'select-working'
	no definition of 'local-implies-recursive'
	no definition of 'sticky-linkage'
	no definition of 'move-ibm'
	no definition of 'perform-osvs'
	no definition of 'arithmetic-osvs'
	no definition of 'constant-folding'
	no definition of 'hostsign'
	no definition of 'program-name-redefinition'
	no definition of 'accept-update'
	no definition of 'accept-auto'
	no definition of 'console-is-crt'
	no definition of 'no-echo-means-secure'
	no definition of 'line-col-zero-default'
	no definition of 'display-special-fig-consts'
	no definition of 'binary-comp-1'
	no definition of 'numeric-pointer'
	no definition of 'move-non-numeric-lit-to-numeric-is-zero'
	no definition of 'implicit-assign-dynamic-var'
	no definition of 'comment-paragraphs'
	no definition of 'memory-size-clause'
	no definition of 'multiple-file-tape-clause'
	no definition of 'label-records-clause'
	no definition of 'value-of-clause'
	no definition of 'data-records-clause'
	no definition of 'top-level-occurs-clause'
	no definition of 'same-as-clause'
	no definition of 'type-to-clause'
	no definition of 'usage-type'
	no definition of 'synchronized-clause'
	no definition of 'special-names-clause'
	no definition of 'goto-statement-without-name'
	no definition of 'stop-literal-statement'
	no definition of 'stop-identifier-statement'
	no definition of 'debugging-mode'
	no definition of 'use-for-debugging'
	no definition of 'padding-character-clause'
	no definition of 'next-sentence-phrase'
	no definition of 'listing-statements'
	no definition of 'title-statement'
	no definition of 'entry-statement'
	no definition of 'move-noninteger-to-alphanumeric'
	no definition of 'move-figurative-constant-to-numeric'
	no definition of 'move-figurative-space-to-numeric'
	no definition of 'move-figurative-quote-to-numeric'
	no definition of 'odo-without-to'
	no definition of 'section-segments'
	no definition of 'alter-statement'
	no definition of 'call-overflow'
	no definition of 'numeric-boolean'
	no definition of 'hexadecimal-boolean'
	no definition of 'national-literals'
	no definition of 'hexadecimal-national-literals'
	no definition of 'national-character-literals'
	no definition of 'hp-octal-literals'
	no definition of 'acu-literals'
	no definition of 'word-continuation'
	no definition of 'not-exception-before-exception'
	no definition of 'accept-display-extensions'
	no definition of 'renames-uncommon-levels'
	no definition of 'symbolic-constant'
	no definition of 'constant-78'
	no definition of 'constant-01'
	no definition of 'perform-varying-without-by'
	no definition of 'reference-out-of-declaratives'
	no definition of 'program-prototypes'
	no definition of 'call-convention-mnemonic'
	no definition of 'call-convention-linkage'
	no definition of 'numeric-value-for-edited-item'
	no definition of 'incorrect-conf-sec-order'
	no definition of 'define-constant-directive'
	no definition of 'free-redefines-position'
	no definition of 'records-mismatch-record-clause'
	no definition of 'record-delimiter'
	no definition of 'sequential-delimiters'
	no definition of 'record-delim-with-fixed-recs'
	no definition of 'missing-statement'
	no definition of 'zero-length-literals'
	no definition of 'xml-generate-extra-phrases'
	no definition of 'continue-after'
	no definition of 'goto-entry'
	no definition of 'assign-variable'
	no definition of 'assign-using-variable'
	no definition of 'assign-ext-dyn'
	no definition of 'assign-disk-from'
	no definition of 'vsam-status'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:408"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_36
#AT_START_37
at_fn_group_banner 37 'configuration.at:524' \
  "runtime configuration" "                          " 1
at_xfail=no
(
  $as_echo "37. $at_setup_line: testing $at_desc ..."
  $at_traceon



# check if --runtime-conf exits without error
# don't compare stdout
{ set +x
$as_echo "$at_srcdir/configuration.at:529: \$COBCRUN --runtime-conf"
at_fn_check_prepare_dynamic "$COBCRUN --runtime-conf" "configuration.at:529"
( $at_check_trace; $COBCRUN --runtime-conf
) >>"$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/configuration.at:529"
$at_failed && at_fn_log_failure
$at_traceon; }


# check if --runtime-conf points to a file called "runtime_empty.cfg"
# use tr to remove newlines and spaces as the path likely is split
# into two lines
{ set +x
$as_echo "$at_srcdir/configuration.at:534: \$COBCRUN --runtime-conf | tr -d '\\n ' | \\
\$GREP \"runtime_empty.cfg\""
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:534"
( $at_check_trace; $COBCRUN --runtime-conf | tr -d '\n ' | \
$GREP "runtime_empty.cfg"
) >>"$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/configuration.at:534"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:536: COB_RUNTIME_CONFIG=\"\" \$COBCRUN --runtime-conf | tr -d '\\n ' \\
| \$GREP \"runtime.cfg\""
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:536"
( $at_check_trace; COB_RUNTIME_CONFIG="" $COBCRUN --runtime-conf | tr -d '\n ' \
| $GREP "runtime.cfg"
) >>"$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/configuration.at:536"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_37
#AT_START_38
at_fn_group_banner 38 'configuration.at:543' \
  "runtime configuration file" "                     " 1
at_xfail=no
(
  $as_echo "38. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >test.cfg <<'_ATEOF'

include "test2.cfg"
_ATEOF


cat >test2.cfg <<'_ATEOF'

physical_cancel true
_ATEOF


cat >test3.cfg <<'_ATEOF'

setenv COB_PHYSICAL_CANCEL=true
_ATEOF



# verify that default for physical cancel is still "no"
{ set +x
$as_echo "$at_srcdir/configuration.at:560: \$COBCRUN --runtime-conf | \\
\$GREP \"COB_PHYSICAL_CANCEL\" | \$GREP \"no\" | \$GREP \"default\""
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:560"
( $at_check_trace; $COBCRUN --runtime-conf | \
$GREP "COB_PHYSICAL_CANCEL" | $GREP "no" | $GREP "default"
) >>"$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/configuration.at:560"
$at_failed && at_fn_log_failure
$at_traceon; }


# verify that override via -c works and if include works
{ set +x
$as_echo "$at_srcdir/configuration.at:564: \$COBCRUN -c test2.cfg --runtime-conf | \\
\$GREP \"physical_cancel\" | \$GREP \"yes\""
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:564"
( $at_check_trace; $COBCRUN -c test2.cfg --runtime-conf | \
$GREP "physical_cancel" | $GREP "yes"
) >>"$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/configuration.at:564"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:566: \$COBCRUN -c test.cfg --runtime-conf | \\
\$GREP \"physical_cancel\" | \$GREP \"yes\""
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:566"
( $at_check_trace; $COBCRUN -c test.cfg --runtime-conf | \
$GREP "physical_cancel" | $GREP "yes"
) >>"$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/configuration.at:566"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:568: \$COBCRUN -c test3.cfg --runtime-conf | \\
\$GREP \"COB_PHYSICAL_CANCEL\" | \$GREP \"yes\""
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:568"
( $at_check_trace; $COBCRUN -c test3.cfg --runtime-conf | \
$GREP "COB_PHYSICAL_CANCEL" | $GREP "yes"
) >>"$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/configuration.at:568"
$at_failed && at_fn_log_failure
$at_traceon; }


# verify that that long option works
{ set +x
$as_echo "$at_srcdir/configuration.at:572: \$COBCRUN --config=test3.cfg --runtime-conf | \\
\$GREP \"COB_PHYSICAL_CANCEL\" | \$GREP \"yes\""
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:572"
( $at_check_trace; $COBCRUN --config=test3.cfg --runtime-conf | \
$GREP "COB_PHYSICAL_CANCEL" | $GREP "yes"
) >>"$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/configuration.at:572"
$at_failed && at_fn_log_failure
$at_traceon; }


# verify that that environment setting works
{ set +x
$as_echo "$at_srcdir/configuration.at:576: COB_RUNTIME_CONFIG=test3.cfg \$COBCRUN --runtime-conf | \\
\$GREP \"COB_PHYSICAL_CANCEL\" | \$GREP \"yes\""
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:576"
( $at_check_trace; COB_RUNTIME_CONFIG=test3.cfg $COBCRUN --runtime-conf | \
$GREP "COB_PHYSICAL_CANCEL" | $GREP "yes"
) >>"$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/configuration.at:576"
$at_failed && at_fn_log_failure
$at_traceon; }


# verify that configuration file loading with full path works
{ set +x
$as_echo "$at_srcdir/configuration.at:580: \$COBCRUN -c \"\$(_return_path \"\$(pwd)/test.cfg\")\" --runtime-conf"
at_fn_check_prepare_notrace 'a $(...) command substitution' "configuration.at:580"
( $at_check_trace; $COBCRUN -c "$(_return_path "$(pwd)/test.cfg")" --runtime-conf
) >>"$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/configuration.at:580"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_38
#AT_START_39
at_fn_group_banner 39 'configuration.at:586' \
  "runtime configuration: recursive include" "       " 1
at_xfail=no
(
  $as_echo "39. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >test.cfg <<'_ATEOF'

# different line for "include" to check the line number
include "test2.cfg"
_ATEOF


cat >test2.cfg <<'_ATEOF'

# include in
# line 4
include "test3.cfg"
_ATEOF


cat >test3.cfg <<'_ATEOF'

include "test.cfg"
_ATEOF


{ set +x
$as_echo "$at_srcdir/configuration.at:604: \$COBCRUN -c test.cfg -r"
at_fn_check_prepare_dynamic "$COBCRUN -c test.cfg -r" "configuration.at:604"
( $at_check_trace; $COBCRUN -c test.cfg -r
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
test.cfg: recursive inclusion
test3.cfg:2: configuration file was included here
test2.cfg:4: configuration file was included here
test.cfg:3: configuration file was included here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_39
#AT_START_40
at_fn_group_banner 40 'configuration.at:615' \
  "runtime configuration: environment priority" "    " 1
at_xfail=no
(
  $as_echo "40. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >test.cfg <<'_ATEOF'

physical_cancel true
_ATEOF


{ set +x
$as_echo "$at_srcdir/configuration.at:622: COB_PHYSICAL_CANCEL=false \$COBCRUN -c test.cfg --runtime-conf | \\
\$GREP \"COB_PHYSICAL_CANCEL\" | \$GREP \"no\""
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:622"
( $at_check_trace; COB_PHYSICAL_CANCEL=false $COBCRUN -c test.cfg --runtime-conf | \
$GREP "COB_PHYSICAL_CANCEL" | $GREP "no"
) >>"$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/configuration.at:622"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_40
#AT_START_41
at_fn_group_banner 41 'configuration.at:628' \
  "runtime configuration: entries" "                 " 1
at_xfail=no
(
  $as_echo "41. $at_setup_line: testing $at_desc ..."
  $at_traceon



{ set +x
$as_echo "$at_srcdir/configuration.at:631: echo \"\$PATHSEP\""
at_fn_check_prepare_dynamic "echo \"$PATHSEP\"" "configuration.at:631"
( $at_check_trace; echo "$PATHSEP"
) >>"$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 ";
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:631"
if $at_failed; then :
  # Previous test "failed" --> PATHSEP isn't ;

cat >defunc.cfg <<'_ATEOF'

novar
physical_cancel notwithme
load_case  insensitive
varseq_format big
sort_chunk 4K
sort_memory 4G # too big by some byte
setenv nothing
sort_chunk
trace_file /tmp:/temp
_ATEOF


# conf entries must be clean
{ set +x
$as_echo "$at_srcdir/configuration.at:649: \$COBCRUN -c defunc.cfg --runtime-conf"
at_fn_check_prepare_dynamic "$COBCRUN -c defunc.cfg --runtime-conf" "configuration.at:649"
( $at_check_trace; $COBCRUN -c defunc.cfg --runtime-conf
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
defunc.cfg:2: unknown configuration tag 'novar'
defunc.cfg:3: invalid value 'notwithme' for configuration tag 'physical_cancel';
	should be one of the following values: true, false
defunc.cfg:4: invalid value 'insensitive' for configuration tag 'load_case';
	should be one of the following values: LOWER(1), UPPER(2), not set(0)
defunc.cfg:5: invalid value 'big' for configuration tag 'varseq_format';
	should be one of the following values: 0, 1, 2, 3
defunc.cfg:6: invalid value '4K' for configuration tag 'sort_chunk';
	minimum value: 131072
defunc.cfg:7: invalid value '4G' for configuration tag 'sort_memory';
	maximum value: 4294967294
defunc.cfg:8: WARNING - 'setenv nothing' without a value - ignored!
defunc.cfg:9: WARNING - 'sort_chunk' without a value - ignored!
defunc.cfg:10: invalid value '/tmp:/temp' for configuration tag 'trace_file';
	should not contain ':'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:649"
$at_failed && at_fn_log_failure
$at_traceon; }



else
  # Previous test "passed" --> PATHSEP is ;

cat >defunc.cfg <<'_ATEOF'

novar
physical_cancel notwithme
load_case  insensitive
varseq_format big
sort_chunk 4K
sort_memory 4G # too big by some byte
setenv nothing
sort_chunk
trace_file C:\tmp;C:\temp
_ATEOF


# conf entries must be clean
{ set +x
$as_echo "$at_srcdir/configuration.at:685: \$COBCRUN -c defunc.cfg --runtime-conf"
at_fn_check_prepare_dynamic "$COBCRUN -c defunc.cfg --runtime-conf" "configuration.at:685"
( $at_check_trace; $COBCRUN -c defunc.cfg --runtime-conf
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
defunc.cfg:2: unknown configuration tag 'novar'
defunc.cfg:3: invalid value 'notwithme' for configuration tag 'physical_cancel';
	should be one of the following values: true, false
defunc.cfg:4: invalid value 'insensitive' for configuration tag 'load_case';
	should be one of the following values: LOWER(1), UPPER(2), not set(0)
defunc.cfg:5: invalid value 'big' for configuration tag 'varseq_format';
	should be one of the following values: 0, 1, 2, 3
defunc.cfg:6: invalid value '4K' for configuration tag 'sort_chunk';
	minimum value: 131072
defunc.cfg:7: invalid value '4G' for configuration tag 'sort_memory';
	maximum value: 4294967294
defunc.cfg:8: WARNING - 'setenv nothing' without a value - ignored!
defunc.cfg:9: WARNING - 'sort_chunk' without a value - ignored!
defunc.cfg:10: invalid value 'C:\\tmp;C:\\temp' for configuration tag 'trace_file';
	should not contain ';'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:685"
$at_failed && at_fn_log_failure
$at_traceon; }



fi
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_41
#AT_START_42
at_fn_group_banner 42 'configuration.at:709' \
  "runtime configuration: conf missing" "            " 1
at_xfail=no
(
  $as_echo "42. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >defunc.cfg <<'_ATEOF'

include "notthere.cfg"
_ATEOF


cat >defunc2.cfg <<'_ATEOF'

include
_ATEOF


{ set +x
$as_echo "$at_srcdir/configuration.at:720: \$COBCRUN -c notthere.cfg --runtime-conf"
at_fn_check_prepare_dynamic "$COBCRUN -c notthere.cfg --runtime-conf" "configuration.at:720"
( $at_check_trace; $COBCRUN -c notthere.cfg --runtime-conf
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
notthere.cfg: 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/configuration.at:720"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:724: \$COBCRUN -c defunc.cfg --runtime-conf"
at_fn_check_prepare_dynamic "$COBCRUN -c defunc.cfg --runtime-conf" "configuration.at:724"
( $at_check_trace; $COBCRUN -c defunc.cfg --runtime-conf
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
notthere.cfg: No such file or directory
defunc.cfg:2: configuration file was included here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:724"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/configuration.at:730: \$COBCRUN -c defunc2.cfg --runtime-conf"
at_fn_check_prepare_dynamic "$COBCRUN -c defunc2.cfg --runtime-conf" "configuration.at:730"
( $at_check_trace; $COBCRUN -c defunc2.cfg --runtime-conf
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration error:
defunc2.cfg:2: 'include' without a value!
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:730"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_42
#AT_START_43
at_fn_group_banner 43 'configuration.at:738' \
  "runtime configuration: conf optional" "           " 1
at_xfail=no
(
  $as_echo "43. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >defunc.cfg <<'_ATEOF'

include "runtime_empty.cfg"
includeif "notthere.cfg"
_ATEOF


{ set +x
$as_echo "$at_srcdir/configuration.at:746: \$COBCRUN -c defunc.cfg --runtime-conf"
at_fn_check_prepare_dynamic "$COBCRUN -c defunc.cfg --runtime-conf" "configuration.at:746"
( $at_check_trace; $COBCRUN -c defunc.cfg --runtime-conf
) >>"$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/configuration.at:746"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_43
#AT_START_44
at_fn_group_banner 44 'configuration.at:751' \
  "runtime configuration: strings and environment" " " 1
at_xfail=no
(
  $as_echo "44. $at_setup_line: testing $at_desc ..."
  $at_traceon



{ set +x
$as_echo "$at_srcdir/configuration.at:754: unset greet name ; \\
   TESTME=\"this is a test\" \\
   COB_EXIT_MSG='\${greet:Bye} \${name:-user}, \${TESTME}' \\
   \$COBCRUN --runtime-conf | \\
\$GREP \"COB_EXIT_MSG\" | \$GREP \"Bye user, this is a test\""
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "configuration.at:754"
( $at_check_trace; unset greet name ; \
   TESTME="this is a test" \
   COB_EXIT_MSG='${greet:Bye} ${name:-user}, ${TESTME}' \
   $COBCRUN --runtime-conf | \
$GREP "COB_EXIT_MSG" | $GREP "Bye user, this is a test"
) >>"$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/configuration.at:754"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/configuration.at:759: \$COBCRUN --runtime-conf | \\
\$GREP \"COB_EXIT_MSG\" | \$GREP \"end of program, please press a key to exit\""
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:759"
( $at_check_trace; $COBCRUN --runtime-conf | \
$GREP "COB_EXIT_MSG" | $GREP "end of program, please press a key to exit"
) >>"$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/configuration.at:759"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_44
#AT_START_45
at_fn_group_banner 45 'configuration.at:765' \
  "validation of COB_CONFIG_DIR" "                   " 1
at_xfail=no
(
  $as_echo "45. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/configuration.at:775: echo \"\$PATHSEP\""
at_fn_check_prepare_dynamic "echo \"$PATHSEP\"" "configuration.at:775"
( $at_check_trace; echo "$PATHSEP"
) >>"$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 ";
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/configuration.at:775"
if $at_failed; then :
  # Previous test "failed" --> PATHSEP isn't ;

{ set +x
$as_echo "$at_srcdir/configuration.at:780: COB_CONFIG_DIR=\"/temp:/tmp\" \\
\$COMPILE prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:780"
( $at_check_trace; COB_CONFIG_DIR="/temp:/tmp" \
$COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cobc: environment variable 'COB_CONFIG_DIR' is '/temp:/tmp'; should not contain ':'
configuration error:
default.conf: No such file or directory
cobc: error: please check environment variables as noted above
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:780"
$at_failed && at_fn_log_failure
$at_traceon; }



else
  # Previous test "passed" --> PATHSEP is ;

{ set +x
$as_echo "$at_srcdir/configuration.at:792: COB_CONFIG_DIR=\"C:\\temp;C:\\tmp\" \\
\$COMPILE prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "configuration.at:792"
( $at_check_trace; COB_CONFIG_DIR="C:\temp;C:\tmp" \
$COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cobc: environment variable 'COB_CONFIG_DIR' is 'C:\\temp;C:\\tmp'; should not contain ';'
configuration error:
default.conf: No such file or directory
cobc: error: please check environment variables as noted above
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/configuration.at:792"
$at_failed && at_fn_log_failure
$at_traceon; }



fi
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_45
#AT_START_46
at_fn_group_banner 46 'syn_copy.at:21' \
  "COPY: IN / OF / -I" "                             " 2
at_xfail=no
(
  $as_echo "46. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc" IN SUB.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc" OF SUB.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc" OF SUB.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


# TODO: Should default to auto-folding when IN "sub2" (literal) is used
#       and therefore don't work on case-sensitive file-systems
cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc" IN sub2.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


cat >prog4.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc".
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


cat >prog5.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc" IN CBD.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:92: mkdir -p SUB"
at_fn_check_prepare_trace "syn_copy.at:92"
( $at_check_trace; mkdir -p SUB
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:92"
$at_failed && at_fn_log_failure
$at_traceon; }

cat >SUB/copy.inc <<'_ATEOF'

       77  TEST-VAR     PIC X VALUE '1'.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:97: mkdir -p sub2"
at_fn_check_prepare_trace "syn_copy.at:97"
( $at_check_trace; mkdir -p sub2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:97"
$at_failed && at_fn_log_failure
$at_traceon; }

cat >sub2/copy.inc <<'_ATEOF'

       77  TEST-VAR     PIC X VALUE '2'.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:102: mkdir -p SUB/UNDER"
at_fn_check_prepare_trace "syn_copy.at:102"
( $at_check_trace; mkdir -p SUB/UNDER
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:102"
$at_failed && at_fn_log_failure
$at_traceon; }

cat >SUB/UNDER/copy.inc <<'_ATEOF'

       77  TEST-VAR     PIC X VALUE '3'.
_ATEOF

cat >copy.inc <<'_ATEOF'

       77  TEST-VAR     PIC X VALUE '4'.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:110: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_copy.at:110"
( $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/syn_copy.at:110"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:111: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_copy.at:111"
( $at_check_trace; $COMPILE_ONLY prog2.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/syn_copy.at:111"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:112: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_copy.at:112"
( $at_check_trace; $COMPILE_ONLY prog3.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/syn_copy.at:112"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:113: \$COMPILE_ONLY prog4.cob -I SUB"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog4.cob -I SUB" "syn_copy.at:113"
( $at_check_trace; $COMPILE_ONLY prog4.cob -I SUB
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:114: unset COB_COPY_LIB_CBD; \$COMPILE_ONLY prog5.cob"
at_fn_check_prepare_dynamic "unset COB_COPY_LIB_CBD; $COMPILE_ONLY prog5.cob" "syn_copy.at:114"
( $at_check_trace; unset COB_COPY_LIB_CBD; $COMPILE_ONLY prog5.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog5.cob:6: warning: copybook not found in library 'CBD', library-name ignored
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:114"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:117: COB_COPY_LIB_CBD=\"./SUB/UNDER\" \$COMPILE_ONLY prog5.cob"
at_fn_check_prepare_dynamic "COB_COPY_LIB_CBD=\"./SUB/UNDER\" $COMPILE_ONLY prog5.cob" "syn_copy.at:117"
( $at_check_trace; COB_COPY_LIB_CBD="./SUB/UNDER" $COMPILE_ONLY prog5.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/syn_copy.at:117"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:118: COB_COPY_LIB_CBD=\"\" \$COMPILE_ONLY prog5.cob"
at_fn_check_prepare_dynamic "COB_COPY_LIB_CBD=\"\" $COMPILE_ONLY prog5.cob" "syn_copy.at:118"
( $at_check_trace; COB_COPY_LIB_CBD="" $COMPILE_ONLY prog5.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/syn_copy.at:118"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_46
#AT_START_47
at_fn_group_banner 47 'syn_copy.at:123' \
  "COPY: relative copybooks" "                       " 2
at_xfail=yes
(
  $as_echo "47. $at_setup_line: testing $at_desc ..."
  $at_traceon



# TODO - the source for the COPY statement is currently completely ignored


{ set +x
$as_echo "$at_srcdir/syn_copy.at:129: mkdir -p SUB/SUB2/SUB3"
at_fn_check_prepare_trace "syn_copy.at:129"
( $at_check_trace; mkdir -p SUB/SUB2/SUB3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:129"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >SUB/prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc" IN SUB2.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR TEST-VAR2.
           STOP RUN.
_ATEOF



cat >SUB/SUB2/copy.inc <<'_ATEOF'

       COPY "copy2.inc" IN SUB3.
_ATEOF

cat >SUB/SUB2/SUB3/copy2.inc <<'_ATEOF'

       77  TEST-VAR     PIC X VALUE '1'.
       COPY "copy3.inc".
_ATEOF

# for compatibility reasons (older GC versions) it was considered to add
# the current working directory, but this idea was dropped:
# explicit add via -I. or COB_COPY_DIR/COBCPY (where both "empty" and "." work)
cat >copy3.inc <<'_ATEOF'

       COPY "copy4.inc" IN "SUBX".
_ATEOF

{ set +x
$as_echo "$at_srcdir/syn_copy.at:156: mkdir -p SUBX"
at_fn_check_prepare_trace "syn_copy.at:156"
( $at_check_trace; mkdir -p SUBX
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:156"
$at_failed && at_fn_log_failure
$at_traceon; }

cat >SUBX/copy4.inc <<'_ATEOF'

       77  TEST-VAR2    PIC X VALUE '2'.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:161: \$COMPILE_ONLY -I. SUB/prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -I. SUB/prog.cob" "syn_copy.at:161"
( $at_check_trace; $COMPILE_ONLY -I. SUB/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/syn_copy.at:161"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:162: COB_COPY_DIR=\".\" \$COMPILE_ONLY SUB/prog.cob"
at_fn_check_prepare_dynamic "COB_COPY_DIR=\".\" $COMPILE_ONLY SUB/prog.cob" "syn_copy.at:162"
( $at_check_trace; COB_COPY_DIR="." $COMPILE_ONLY SUB/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/syn_copy.at:162"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:163: COB_COPY_DIR=\":\" \$COMPILE_ONLY SUB/prog.cob"
at_fn_check_prepare_dynamic "COB_COPY_DIR=\":\" $COMPILE_ONLY SUB/prog.cob" "syn_copy.at:163"
( $at_check_trace; COB_COPY_DIR=":" $COMPILE_ONLY SUB/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/syn_copy.at:163"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_47
#AT_START_48
at_fn_group_banner 48 'syn_copy.at:168' \
  "COPY: extension" "                                " 2
at_xfail=no
(
  $as_echo "48. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc".
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy".
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "sub.inc" OF SUB.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


cat >prog4.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "sub" OF SUB.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


cat >prog5.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "sub" OF "..".
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


cat >prog6.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "sub".
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


cat >copy.inc <<'_ATEOF'

       77  TEST-VAR     PIC X VALUE 'V'.
_ATEOF

{ set +x
$as_echo "$at_srcdir/syn_copy.at:240: mkdir -p SUB/OSUB"
at_fn_check_prepare_trace "syn_copy.at:240"
( $at_check_trace; mkdir -p SUB/OSUB
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }

cat >SUB/sub.inc <<'_ATEOF'

       77  TEST-VAR     PIC X VALUE 'V'.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:245: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_copy.at:245"
( $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/syn_copy.at:245"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:246: \$COMPILE_ONLY prog2.cob -ext=inc"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob -ext=inc" "syn_copy.at:246"
( $at_check_trace; $COMPILE_ONLY prog2.cob -ext=inc
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:246"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:247: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_copy.at:247"
( $at_check_trace; $COMPILE_ONLY prog3.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/syn_copy.at:247"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:248: \$COMPILE_ONLY prog4.cob -ext=inc"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog4.cob -ext=inc" "syn_copy.at:248"
( $at_check_trace; $COMPILE_ONLY prog4.cob -ext=inc
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:248"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:249: \$COMPILE_ONLY prog5.cob -ext=inc -I SUB/OSUB"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog5.cob -ext=inc -I SUB/OSUB" "syn_copy.at:249"
( $at_check_trace; $COMPILE_ONLY prog5.cob -ext=inc -I SUB/OSUB
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:249"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:250: \$COMPILE_ONLY prog6.cob -ext=inc -I SUB"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog6.cob -ext=inc -I SUB" "syn_copy.at:250"
( $at_check_trace; $COMPILE_ONLY prog6.cob -ext=inc -I SUB
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_copy.at:250"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_48
#AT_START_49
at_fn_group_banner 49 'syn_copy.at:255' \
  "COPY: within comment" "                           " 2
at_xfail=no
(
  $as_echo "49. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
      *COPY "copy.inc".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

  IDENTIFICATION   DIVISION.
  PROGRAM-ID.      prog2.
  DATA             DIVISION.
  WORKING-STORAGE  SECTION.
  *> COPY "copy.inc".
  PROCEDURE        DIVISION.
  STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:278: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_copy.at:278"
( $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/syn_copy.at:278"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:279: \$COMPILE_ONLY -free prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free prog2.cob" "syn_copy.at:279"
( $at_check_trace; $COMPILE_ONLY -free prog2.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/syn_copy.at:279"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_49
#AT_START_50
at_fn_group_banner 50 'syn_copy.at:284' \
  "COPY: file not found" "                           " 2
at_xfail=no
(
  $as_echo "50. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: possibly move "name without literal" to an extra test
#        also testing the library name part (as "found", because
#        of different slash)

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:301: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_copy.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: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/syn_copy.at:301"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY copy.inc.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:315: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_copy.at:315"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.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/syn_copy.at:315"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY copy.INC.inc.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:329: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_copy.at:329"
( $at_check_trace; $COMPILE_ONLY prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:6: error: COPY.INC.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/syn_copy.at:329"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_copy.at:333: \$COMPILE_ONLY -ffold-copy=lower prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -ffold-copy=lower prog3.cob" "syn_copy.at:333"
( $at_check_trace; $COMPILE_ONLY -ffold-copy=lower prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:6: error: copy.inc.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/syn_copy.at:333"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_50
#AT_START_51
at_fn_group_banner 51 'syn_copy.at:340' \
  "COPY: recursive" "                                " 2
at_xfail=no
(
  $as_echo "51. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY copy1.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR.
           STOP RUN.
_ATEOF


cat >copy1.CPY <<'_ATEOF'

       COPY copy2.
       01 TEST-VAR  PIC X(2) VALUE "V1".
_ATEOF


cat >copy2.CPY <<'_ATEOF'

       01 TEST-VAR2 PIC X(2) VALUE "V2".
       COPY copy3.
_ATEOF


cat >copy3.CPY <<'_ATEOF'
       COPY "copy1.CPY".
       01 TEST-VAR3 PIC X(2) VALUE "V3".
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:369: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_copy.at:369"
( $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 "in file included from prog.cob:6:
in file included from copy1.CPY:2:
in file included from copy2.CPY:3:
in file included from copy3.CPY:1:
copy1.CPY: error: recursive inclusion
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_copy.at:369"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_51
#AT_START_52
at_fn_group_banner 52 'syn_copy.at:380' \
  "COPY: replacement order" "                        " 2
at_xfail=no
(
  $as_echo "52. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >copy.inc <<'_ATEOF'

       01 TEST-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
          REPLACING ==TEST-VAR== BY ==FIRST-MATCH==
                    ==TEST-VAR== BY ==SECOND-MATCH==.
       PROCEDURE        DIVISION.
           DISPLAY FIRST-MATCH NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:401: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:401"
( $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/syn_copy.at:401"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:402: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:402"
( $at_check_trace; $COBCRUN_DIRECT ./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/syn_copy.at:402"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_52
#AT_START_53
at_fn_group_banner 53 'syn_copy.at:407' \
  "COPY: separators" "                               " 2
at_xfail=no
(
  $as_echo "53. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >copy.inc <<'_ATEOF'

       01 TEST-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
          REPLACING ==TEST-VAR==, BY ==FIRST-MATCH==,
                 ,  ==TEST-VAR==; BY ==SECOND-MATCH==;
                 ;  ==TEST-VAR== , BY ==THIRD-MATCH==
                    ==TEST-VAR== ; BY ==FOURTH-MATCH==.
       PROCEDURE        DIVISION.
           DISPLAY FIRST-MATCH NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:430: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:430"
( $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/syn_copy.at:430"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:431: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:431"
( $at_check_trace; $COBCRUN_DIRECT ./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/syn_copy.at:431"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_53
#AT_START_54
at_fn_group_banner 54 'syn_copy.at:436' \
  "COPY: partial replacement" "                      " 2
at_xfail=no
(
  $as_echo "54. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >copy.inc <<'_ATEOF'

       01 :TEST:-VAR PIC X(2) VALUE "OK".
       01 (TEST)-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
          REPLACING ==:TEST:== BY ==COLON==
                    ==(TEST)== BY ==PAREN==.
       PROCEDURE        DIVISION.
           DISPLAY COLON-VAR NO ADVANCING
           END-DISPLAY.
           DISPLAY PAREN-VAR NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:460: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:460"
( $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/syn_copy.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:461: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:461"
( $at_check_trace; $COBCRUN_DIRECT ./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/syn_copy.at:461"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_54
#AT_START_55
at_fn_group_banner 55 'syn_copy.at:466' \
  "COPY: LEADING replacement" "                      " 2
at_xfail=no
(
  $as_echo "55. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >copy.inc <<'_ATEOF'

       01  TEST-VAR PIC X(2) VALUE "OK".
       01  NORM-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
            REPLACING LEADING ==TEST== BY ==FIRST==
                      LEADING ==NORM== BY ==SECOND==.
       PROCEDURE        DIVISION.
           DISPLAY FIRST-VAR NO ADVANCING
           END-DISPLAY.
           DISPLAY SECOND-VAR NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:490: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:490"
( $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/syn_copy.at:490"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:491: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:491"
( $at_check_trace; $COBCRUN_DIRECT ./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/syn_copy.at:491"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_55
#AT_START_56
at_fn_group_banner 56 'syn_copy.at:496' \
  "COPY: TRAILING replacement" "                     " 2
at_xfail=no
(
  $as_echo "56. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >copy.inc <<'_ATEOF'

       01  TEST-FIRST  PIC X(2) VALUE "OK".
       01  TEST-SECOND PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
            REPLACING TRAILING ==FIRST== BY ==VAR1==
                      TRAILING ==SECOND== BY ==VAR2==.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR1 NO ADVANCING
           END-DISPLAY.
           DISPLAY TEST-VAR2 NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:520: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:520"
( $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/syn_copy.at:520"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:521: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:521"
( $at_check_trace; $COBCRUN_DIRECT ./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/syn_copy.at:521"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_56
#AT_START_57
at_fn_group_banner 57 'syn_copy.at:526' \
  "COPY: recursive replacement" "                    " 2
at_xfail=no
(
  $as_echo "57. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >copy-2.inc <<'_ATEOF'

       01 TEST-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >copy-1.inc <<'_ATEOF'

       COPY "copy-2.inc".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy-1.inc"
           REPLACING ==TEST-VAR== BY ==COPY-VAR==.
       PROCEDURE        DIVISION.
           DISPLAY COPY-VAR NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:550: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_copy.at:550"
( $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/syn_copy.at:550"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:551: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:551"
( $at_check_trace; $COBCRUN_DIRECT ./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/syn_copy.at:551"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_57
#AT_START_58
at_fn_group_banner 58 'syn_copy.at:556' \
  "COPY: fixed/free format" "                        " 2
at_xfail=no
(
  $as_echo "58. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >copy.inc <<'_ATEOF'

       >>SOURCE FIXED
       01 TEST-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

  IDENTIFICATION   DIVISION.
  PROGRAM-ID.      prog.
  DATA             DIVISION.
  WORKING-STORAGE  SECTION.
  COPY "copy.inc".
  PROCEDURE        DIVISION.
   DISPLAY TEST-VAR NO ADVANCING
   END-DISPLAY.
   STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_copy.at:576: \$COMPILE -free prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -free prog.cob" "syn_copy.at:576"
( $at_check_trace; $COMPILE -free 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/syn_copy.at:576"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_copy.at:577: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_copy.at:577"
( $at_check_trace; $COBCRUN_DIRECT ./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/syn_copy.at:577"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_58
#AT_START_59
at_fn_group_banner 59 'syn_definition.at:25' \
  "Invalid source name" "                            " 2
at_xfail=no
(
  $as_echo "59. $at_setup_line: testing $at_desc ..."
  $at_traceon



: >short.cob

{ set +x
$as_echo "$at_srcdir/syn_definition.at:30: \$COMPILE_ONLY short.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY short.cob" "syn_definition.at:30"
( $at_check_trace; $COMPILE_ONLY short.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "short.cob: error: invalid file base name 'short' - name duplicates a 'C' keyword
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_59
#AT_START_60
at_fn_group_banner 60 'syn_definition.at:37' \
  "Invalid PROGRAM-ID" "                             " 2
at_xfail=no
(
  $as_echo "60. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >SHORT.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      short.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:47: \$COMPILE_ONLY SHORT.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY SHORT.cob" "syn_definition.at:47"
( $at_check_trace; $COMPILE_ONLY SHORT.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "SHORT.cob:3: error: invalid PROGRAM-ID 'short' - name duplicates a 'C' keyword
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:47"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_60
#AT_START_61
at_fn_group_banner 61 'syn_definition.at:54' \
  "Invalid PROGRAM-ID type clause (1)" "             " 2
at_xfail=no
(
  $as_echo "61. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog IS COMMON.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:64: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:64"
( $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 contained program
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_61
#AT_START_62
at_fn_group_banner 62 'syn_definition.at:71' \
  "invalid PROGRAM-ID type clause (2)" "             " 2
at_xfail=no
(
  $as_echo "62. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog IS INITIAL RECURSIVE.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:81: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:81"
( $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/syn_definition.at:81"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_62
#AT_START_63
at_fn_group_banner 63 'syn_definition.at:88' \
  "INITIAL / RECURSIVE before COMMON" "              " 2
at_xfail=no
(
  $as_echo "63. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >containing-prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      containing-prog.

       PROCEDURE        DIVISION.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog-1 IS INITIAL COMMON.
       PROCEDURE        DIVISION.
           STOP RUN.
       END PROGRAM      prog-1.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog-2 IS RECURSIVE COMMON.
       PROCEDURE        DIVISION.
           STOP RUN.
       END PROGRAM      prog-2.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:110: \$COMPILE_ONLY containing-prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY containing-prog.cob" "syn_definition.at:110"
( $at_check_trace; $COMPILE_ONLY containing-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/syn_definition.at:110"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_63
#AT_START_64
at_fn_group_banner 64 'syn_definition.at:120' \
  "Undefined data name" "                            " 2
at_xfail=no
(
  $as_echo "64. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:132: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:132"
( $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' cannot be used here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:132"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_64
#AT_START_65
at_fn_group_banner 65 'syn_definition.at:139' \
  "Undefined group name" "                           " 2
at_xfail=no
(
  $as_echo "65. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       PROCEDURE        DIVISION.
           DISPLAY X IN G
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:154: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:154"
( $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' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:154"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_65
#AT_START_66
at_fn_group_banner 66 'syn_definition.at:161' \
  "Undefined data name in group" "                   " 2
at_xfail=no
(
  $as_echo "66. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X.
       01 Y             PIC X.
       PROCEDURE        DIVISION.
           DISPLAY Y IN G
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:178: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_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:10: error: 'Y IN G' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_66
#AT_START_67
at_fn_group_banner 67 'syn_definition.at:185' \
  "Reference not a group name" "                     " 2
at_xfail=no
(
  $as_echo "67. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       PROCEDURE        DIVISION.
           DISPLAY X IN X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:200: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:200"
( $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' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_67
#AT_START_68
at_fn_group_banner 68 'syn_definition.at:207' \
  "Incomplete 01 definition" "                       " 2
at_xfail=no
(
  $as_echo "68. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:218: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.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: 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/syn_definition.at:218"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_68
#AT_START_69
at_fn_group_banner 69 'syn_definition.at:225' \
  "error handling in conditions" "                   " 2
at_xfail=no
(
  $as_echo "69. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 TESTME PIC X(1).

       PROCEDURE DIVISION.

          EVALUATE TRUE
            WHEN TESTME IS NOT-DEFINED
              CONTINUE
            WHEN TESTME = 'A'
              CONTINUE
            WHEN OTHER
              IF NOT TESTME IS NOT-DEFINED
              THEN
                CONTINUE
              ELSE
                CONTINUE
              END-IF
          END-EVALUATE
          EVALUATE TRUE
            WHEN TESTME IS 'ABC'
              CONTINUE
            WHEN TESTME = 'B'
              CONTINUE
          END-EVALUATE
          EVALUATE TRUE
            WHEN TESTME IS TESTME
              CONTINUE
            WHEN TESTME = 'C'
              CONTINUE
          END-EVALUATE
          EVALUATE TRUE
            WHEN TESTME NOT = NOT-DEFINED
              CONTINUE
            WHEN TESTME = 'D'
              CONTINUE
          END-EVALUATE
          EVALUATE TRUE
            WHEN TESTME ELSE NOT-DEFINED
              CONTINUE
            WHEN TESTME = 'E'
              CONTINUE
          END-EVALUATE
          EVALUATE broken
            WHEN NOT-DEFINED
              continue
          END-EVALUATE

          GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:282: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_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:11: error: syntax error, unexpected Identifier
prog.cob:16: error: syntax error, unexpected Identifier
prog.cob:24: error: syntax error, unexpected Literal
prog.cob:30: error: syntax error, unexpected Identifier
prog.cob:36: error: 'NOT-DEFINED' is not defined
prog.cob:42: error: syntax error, unexpected ELSE
prog.cob:42: error: syntax error, unexpected Identifier
prog.cob:42: error: invalid expression
prog.cob:47: error: 'broken' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:282"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_69
#AT_START_70
at_fn_group_banner 70 'syn_definition.at:298' \
  "Same labels in different sections" "              " 2
at_xfail=no
(
  $as_echo "70. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       S-1 SECTION.
       L.

       S-2 SECTION.
       L.

       S-3 SECTION.
            GO TO L.
       L.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:316: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:316"
( $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/syn_definition.at:316"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_70
#AT_START_71
at_fn_group_banner 71 'syn_definition.at:322' \
  "Redefinition of 01 items" "                       " 2
at_xfail=no
(
  $as_echo "71. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 X             PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:334: \$COBC -fsyntax-only prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only prog.cob" "syn_definition.at:334"
( $at_check_trace; $COBC -fsyntax-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/syn_definition.at:334"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:335: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:335"
( $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: note: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:335"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:339: \$COMPILE_ONLY -Wno-redefinition prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-redefinition prog.cob" "syn_definition.at:339"
( $at_check_trace; $COMPILE_ONLY -Wno-redefinition 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/syn_definition.at:339"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:340: \$COMPILE_ONLY -Werror=redefinition prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Werror=redefinition prog.cob" "syn_definition.at:340"
( $at_check_trace; $COMPILE_ONLY -Werror=redefinition 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: redefinition of 'X'
prog.cob:6: note: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:340"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:344: \$COMPILE_ONLY -fdiagnostics-show-option -Werror=redefinition prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Werror=redefinition prog.cob" "syn_definition.at:344"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Werror=redefinition 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: redefinition of 'X' [-Werror=redefinition]
prog.cob:6: note: 'X' previously defined here [-Werror=redefinition]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:344"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_71
#AT_START_72
at_fn_group_banner 72 'syn_definition.at:351' \
  "Redefinition of 01 and 02 items" "                " 2
at_xfail=no
(
  $as_echo "72. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X.
         02 X           PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:363: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:363"
( $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: note: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:363"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_72
#AT_START_73
at_fn_group_banner 73 'syn_definition.at:371' \
  "Redefinition of 02 items" "                       " 2
at_xfail=no
(
  $as_echo "73. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X.
         02 X           PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:384: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:384"
( $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: note: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:384"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_73
#AT_START_74
at_fn_group_banner 74 'syn_definition.at:392' \
  "Redefinition of 77 items" "                       " 2
at_xfail=no
(
  $as_echo "74. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 X             PIC X.
       77 X             PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:404: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:404"
( $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: note: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:404"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_74
#AT_START_75
at_fn_group_banner 75 'syn_definition.at:412' \
  "Redefinition of 01 and 77 items" "                " 2
at_xfail=no
(
  $as_echo "75. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       77 X             PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:424: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:424"
( $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: note: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:424"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_75
#AT_START_76
at_fn_group_banner 76 'syn_definition.at:432' \
  "Redefinition of 88 items" "                       " 2
at_xfail=no
(
  $as_echo "76. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
         88 A           VALUE "A".
         88 A           VALUE "B".
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:445: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:445"
( $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: note: 'A' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:445"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_76
#AT_START_77
at_fn_group_banner 77 'syn_definition.at:453' \
  "Redefinition of program-name by other programs" " " 2
at_xfail=no
(
  $as_echo "77. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  PROG         PIC X.

       PROCEDURE        DIVISION.
           CONTINUE
           .
       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      foo COMMON.
       END PROGRAM      foo.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      barr.
       PROCEDURE        DIVISION.
           CONTINUE
           .
       *> This should cause an error (clashes with COMMON subprog foo)
       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      foo.
       END PROGRAM      foo.
       END PROGRAM      barr.
       END PROGRAM      prog.


       *> This should cause an error.
       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  foo          PIC X.

       PROCEDURE        DIVISION.
           CONTINUE
           .
       *> This should clash with the data definition.
       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      foo.
       END PROGRAM      foo.
       END PROGRAM      prog.

       *> This should cause an error
       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      samename.
       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      samename.
       END PROGRAM      samename.
       END PROGRAM      samename.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:510: \$COMPILE_ONLY --ffold-call=upper -fdiagnostics-show-option prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY --ffold-call=upper -fdiagnostics-show-option prog.cob" "syn_definition.at:510"
( $at_check_trace; $COMPILE_ONLY --ffold-call=upper -fdiagnostics-show-option 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 'prog' [-Wredefinition]
prog.cob:3: note: 'prog' previously defined here [-Wredefinition]
prog.cob:23: error: redefinition of program name 'foo'
prog.cob:31: error: redefinition of program name 'prog'
prog.cob:42: error: redefinition of 'foo'
prog.cob:35: note: 'foo' previously defined here [-Wredefinition]
prog.cob:42: error: redefinition of program name 'foo'
prog.cob:49: error: PROCEDURE DIVISION header missing
prog.cob:50: error: redefinition of program name 'samename'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:510"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_definition.at:522: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:522"
( $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:23: error: redefinition of program ID 'foo'
prog.cob:31: error: redefinition of program ID 'prog'
prog.cob:42: error: redefinition of program ID 'foo'
prog.cob:49: error: PROCEDURE DIVISION header missing
prog.cob:50: error: redefinition of program ID 'samename'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:522"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_77
#AT_START_78
at_fn_group_banner 78 'syn_definition.at:533' \
  "Redefinition of program-name within program" "    " 2
at_xfail=no
(
  $as_echo "78. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  prog        PIC 99 VALUE 0.

       PROCEDURE       DIVISION.
       prog.
           CONTINUE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:550: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:550"
( $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: redefinition of 'prog'
prog.cob:7: note: 'prog' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:550"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:554: \$COMPILE_ONLY -fno-program-name-redefinition prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fno-program-name-redefinition prog.cob" "syn_definition.at:554"
( $at_check_trace; $COMPILE_ONLY -fno-program-name-redefinition 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 'prog'
prog.cob:3: note: 'prog' previously defined here
prog.cob:10: error: redefinition of 'prog'
prog.cob:3: note: 'prog' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:554"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_78
#AT_START_79
at_fn_group_banner 79 'syn_definition.at:563' \
  "Redefinition of function-prototype name" "        " 2
at_xfail=no
(
  $as_echo "79. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       REPOSITORY.
           FUNCTION func
           .
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  func         PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:580: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:580"
( $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: no definition/prototype seen for FUNCTION 'func'
prog.cob:12: error: syntax error, unexpected user function name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:580"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_79
#AT_START_80
at_fn_group_banner 80 'syn_definition.at:588' \
  "PROCEDURE DIVISION RETURNING OMITTED: main" "     " 2
at_xfail=no
(
  $as_echo "80. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION RETURNING OMITTED.
           MOVE 42 TO RETURN-CODE
           GOBACK.
_ATEOF



{ set +x
$as_echo "$at_srcdir/syn_definition.at:600: \$COMPILE_MODULE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE prog.cob" "syn_definition.at:600"
( $at_check_trace; $COMPILE_MODULE 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/syn_definition.at:600"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:601: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_definition.at:601"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:4: error: RETURNING clause cannot be OMITTED for main program
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:601"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_80
#AT_START_81
at_fn_group_banner 81 'syn_definition.at:608' \
  "PROCEDURE DIVISION RETURNING OMITTED: FUNCTION" " " 2
at_xfail=no
(
  $as_echo "81. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       FUNCTION-ID.     func.
       PROCEDURE        DIVISION RETURNING OMITTED.
           MOVE 42 TO RETURN-CODE
           GOBACK.
       END FUNCTION     func.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:620: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:620"
( $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:4: error: RETURNING clause cannot be OMITTED for a FUNCTION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_81
#AT_START_82
at_fn_group_banner 82 'syn_definition.at:627' \
  "PROCEDURE DIVISION RETURNING item" "              " 2
at_xfail=no
(
  $as_echo "82. $at_setup_line: testing $at_desc ..."
  $at_traceon




cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       FUNCTION-ID.     func.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 PAR-OUT       PIC 9.
       PROCEDURE        DIVISION RETURNING PAR-OUT.
           MOVE 4 TO PAR-OUT
           GOBACK.
       END FUNCTION     func.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       FUNCTION-ID.     func.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 PAR-OUT       PIC 9.
       PROCEDURE        DIVISION RETURNING PAR-OUT.
           MOVE 4 TO PAR-OUT
           GOBACK.
       END FUNCTION     func.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       FUNCTION-ID.     func.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 PAR-OUT       PIC 9 OCCURS 10.
       PROCEDURE        DIVISION RETURNING PAR-OUT.
           MOVE 4 TO PAR-OUT (1)
           GOBACK.
       END FUNCTION     func.
_ATEOF


cat >prog4.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       FUNCTION-ID.     func.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 PAR.
          02 PAR-OUT    PIC 9.
       PROCEDURE        DIVISION RETURNING PAR-OUT.
           MOVE 4 TO PAR-OUT
           GOBACK.
       END FUNCTION     func.
_ATEOF


cat >prog5.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       FUNCTION-ID.     func.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 PAR           PIC 9.
       PROCEDURE        DIVISION USING PAR RETURNING PAR.
           MOVE 4 TO PAR
           GOBACK.
       END FUNCTION     func.

       IDENTIFICATION   DIVISION.
       FUNCTION-ID.     func2.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 PAR-IN        PIC 9.
       01 PAR-OUT       REDEFINES PAR-IN PIC 9.
       PROCEDURE        DIVISION USING PAR-IN RETURNING PAR-OUT.
           MOVE 4 TO PAR-OUT
           GOBACK.
       END FUNCTION     func2.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:703: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:703"
( $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/syn_definition.at:703"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:704: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_definition.at:704"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: RETURNING item is not defined in LINKAGE SECTION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:704"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:707: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_definition.at:707"
( $at_check_trace; $COMPILE_ONLY prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:7: error: RETURNING item should not have OCCURS
prog3.cob:9: error: 'PAR-OUT' requires one subscript
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:707"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:711: \$COMPILE_ONLY prog4.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog4.cob" "syn_definition.at:711"
( $at_check_trace; $COMPILE_ONLY prog4.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog4.cob:8: error: RETURNING item must have level 01
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:711"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:714: \$COMPILE_ONLY prog5.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog5.cob" "syn_definition.at:714"
( $at_check_trace; $COMPILE_ONLY prog5.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog5.cob:7: error: 'PAR' USING item duplicates RETURNING item
prog5.cob:18: error: 'PAR-OUT' REDEFINES field not allowed here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:714"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_82
#AT_START_83
at_fn_group_banner 83 'syn_definition.at:722' \
  "Data item with same name as program-name" "       " 2
at_xfail=no
(
  $as_echo "83. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       FUNCTION-ID.    x.
       DATA            DIVISION.
       LINKAGE         SECTION.
       01  ret         PIC 99.
       PROCEDURE       DIVISION RETURNING ret.
           CONTINUE
           .
       END FUNCTION x.


       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  x            PIC 999 VALUE 134.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:744: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:744"
( $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/syn_definition.at:744"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_83
#AT_START_84
at_fn_group_banner 84 'syn_definition.at:749' \
  "Ambiguous reference to 02 items" "                " 2
at_xfail=no
(
  $as_echo "84. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC X.
       01 G2.
         02 X           PIC X.
       PROCEDURE        DIVISION.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:767: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:767"
( $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 ambiguous; needs qualification
prog.cob:7: note: 'X IN G1' defined here
prog.cob:9: note: 'X IN G2' defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:767"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_84
#AT_START_85
at_fn_group_banner 85 'syn_definition.at:776' \
  "Ambiguous reference to 02 and 03 items" "         " 2
at_xfail=no
(
  $as_echo "85. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X.
           03 X         PIC X.
       PROCEDURE        DIVISION.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:793: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:793"
( $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' is ambiguous; needs qualification
prog.cob:7: note: 'X IN G' defined here
prog.cob:8: note: 'X IN X IN G' defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:793"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_85
#AT_START_86
at_fn_group_banner 86 'syn_definition.at:802' \
  "Ambiguous reference with qualification" "         " 2
at_xfail=no
(
  $as_echo "86. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X.
           03 Y         PIC X.
       01 G2.
         02 X.
           03 Y         PIC X.
       PROCEDURE        DIVISION.
           DISPLAY Y IN X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:822: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:822"
( $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' is ambiguous; needs qualification
prog.cob:8: note: 'Y IN X IN G1' defined here
prog.cob:11: note: 'Y IN X IN G2' defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:822"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_86
#AT_START_87
at_fn_group_banner 87 'syn_definition.at:831' \
  "Unique reference with ambiguous qualifiers" "     " 2
at_xfail=no
(
  $as_echo "87. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X.
           03 Y         PIC X VALUE "Y".
       01 G2.
         02 X.
           03 Z         PIC X VALUE "Z".
       PROCEDURE        DIVISION.
           DISPLAY Z IN X NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:851: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:851"
( $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/syn_definition.at:851"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_87
#AT_START_88
at_fn_group_banner 88 'syn_definition.at:867' \
  "Undefined procedure name" "                       " 2
at_xfail=no
(
  $as_echo "88. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           GO TO END-OF-PROGRAM.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:878: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:878"
( $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' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:878"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_88
#AT_START_89
at_fn_group_banner 89 'syn_definition.at:887' \
  "Redefinition of section names" "                  " 2
at_xfail=no
(
  $as_echo "89. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       L SECTION.
       L SECTION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:899: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:899"
( $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: note: 'L' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:899"
$at_failed && at_fn_log_failure
$at_traceon; }


# FIXME: as long as there is no direct reference to the section
#        this should be not more than a warning,
#        maybe depending on a compiler configuration

  set +x
  $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 'syn_definition.at:912' \
  "Redefinition of section and paragraph names" "    " 2
at_xfail=no
(
  $as_echo "90. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       L SECTION.
       L.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:924: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:924"
( $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: note: 'L' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:924"
$at_failed && at_fn_log_failure
$at_traceon; }


# FIXME: as long as there is no direct reference to
#        the paragraph/section this should be not more
#        than a warning, maybe depending on a compiler
#        configuration

  set +x
  $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 'syn_definition.at:938' \
  "Redefinition of label and variable names" "       " 2
at_xfail=yes
(
  $as_echo "91. $at_setup_line: testing $at_desc ..."
  $at_traceon



# currently failing, see FR #260


cat >prog.cob <<'_ATEOF'

       identification division.
       program-id. WORD.
       data division.
       working-storage section.
      *-----------------------------------------------------------------
       77 word pic 9.
      *-----------------------------------------------------------------
       PROCEDURE DIVISION.
       main section.
      *
           move 0 to word
           perform word
      *
           stop run returning word.
      *-----------------------------------------------------------------
       word section.
           add 1 to word.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:964: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_definition.at:964"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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 'main':
prog.cob:17: error: user-defined word re-used with different type does not conform to COBOL 2014
prog.cob:17: error: redefinition of 'word' as label-name
prog.cob:7: note: 'word' previously defined here as data-name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:964"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:970: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:970"
( $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/syn_definition.at:970"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_91
#AT_START_92
at_fn_group_banner 92 'syn_definition.at:975' \
  "Redefinition of paragraph names" "                " 2
at_xfail=no
(
  $as_echo "92. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       L.
       L.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:987: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:987"
( $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/syn_definition.at:987"
$at_failed && at_fn_log_failure
$at_traceon; }


## Change when we DON'T allow this (likely as a warning,
## depending on compiler configuration)
## AT_CHECK([$COMPILE_ONLY prog.cob], [1], [],
## [prog.cob: in paragraph 'L':
## prog.cob:6: error: redefinition of 'L'
## prog.cob:5: error: 'L' previously defined here
## ])

  set +x
  $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 'syn_definition.at:1001' \
  "Ambiguous reference to paragraph name" "          " 2
at_xfail=no
(
  $as_echo "93. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       S-1 SECTION.
       L.
       S-2 SECTION.
       L.
       S-3 SECTION.
           GO TO L.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1017: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1017"
( $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' is ambiguous; needs qualification
prog.cob:6: note: 'L IN S-1' defined here
prog.cob:8: note: 'L IN S-2' defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1017"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_93
#AT_START_94
at_fn_group_banner 94 'syn_definition.at:1027' \
  "Non-matching level numbers (extension)" "         " 2
at_xfail=no
(
  $as_echo "94. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  A.
            05 B.
                10 C PIC X.
           04 D.
            05 E PIC X.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1044: \$COMPILE_ONLY -frelax-level-hierarchy prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-level-hierarchy prog.cob" "syn_definition.at:1044"
( $at_check_trace; $COMPILE_ONLY -frelax-level-hierarchy 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/syn_definition.at:1044"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_94
#AT_START_95
at_fn_group_banner 95 'syn_definition.at:1051' \
  "CALL BY VALUE alphanumeric item (extension)" "    " 2
at_xfail=no
(
  $as_echo "95. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(4).
       PROCEDURE        DIVISION.
           CALL "PROG2" USING BY VALUE X
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1066: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1066"
( $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: BY CONTENT assumed for alphanumeric item 'X'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1066"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_95
#AT_START_96
at_fn_group_banner 96 'syn_definition.at:1073' \
  "CALL BY VALUE national item (extension)" "        " 2
at_xfail=no
(
  $as_echo "96. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  N            PIC N(4).
       PROCEDURE        DIVISION.
           CALL "PROG2" USING BY VALUE N
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1088: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1088"
( $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: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
prog.cob:8: warning: BY CONTENT assumed for national item 'N'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1088"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_96
#AT_START_97
at_fn_group_banner 97 'syn_definition.at:1096' \
  "CALL BY VALUE figurative constants" "             " 2
at_xfail=no
(
  $as_echo "97. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           CALL "PROG2" USING BY VALUE
                low-value
                high-value
                space
                quote
                zero
           END-CALL.
           CALL "PROG2" USING
                low-value
                high-value
                space
                quote
                zero
           END-CALL.
           CALL "PROG3" USING
                null
           END-CALL.
           STOP RUN.
_ATEOF


# FIXME: should raise an error with -std=cobolNNNN, no warning with -std=default
# -->    revise after rw-merge
{ set +x
$as_echo "$at_srcdir/syn_definition.at:1125: \$COMPILE_ONLY -w prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -w prog.cob" "syn_definition.at:1125"
( $at_check_trace; $COMPILE_ONLY -w 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/syn_definition.at:1125"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_97
#AT_START_98
at_fn_group_banner 98 'syn_definition.at:1130' \
  "Duplicate identification division header" "       " 2
at_xfail=no
(
  $as_echo "98. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1139: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1139"
( $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 IDENTIFICATION, expecting FUNCTION-ID or PROGRAM-ID
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_98
#AT_START_99
at_fn_group_banner 99 'syn_definition.at:1145' \
  "RETURNING in STOP RUN / GOBACK / EXIT PROGRAM" "  " 2
at_xfail=no
(
  $as_echo "99. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog1.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog1.
       PROCEDURE        DIVISION.
           EXIT PROGRAM RETURNING -1.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       PROCEDURE        DIVISION.
           GOBACK GIVING 2.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       PROCEDURE        DIVISION.
           STOP RUN GIVING 0.
_ATEOF


cat >prog4.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog4.
       PROCEDURE        DIVISION.
           MOVE 42 TO RETURN-CODE
           GOBACK.
_ATEOF


cat >prog5.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog5.
       PROCEDURE        DIVISION.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1184: \$COMPILE prog1.cob prog2.cob prog3.cob prog4.cob prog5.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob prog2.cob prog3.cob prog4.cob prog5.cob" "syn_definition.at:1184"
( $at_check_trace; $COMPILE prog1.cob prog2.cob prog3.cob prog4.cob prog5.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/syn_definition.at:1184"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:1186: \$COMPILE -fnot-register=return-code \\
prog1.cob prog2.cob prog3.cob prog4.cob prog5.cob"
at_fn_check_prepare_notrace 'an embedded newline' "syn_definition.at:1186"
( $at_check_trace; $COMPILE -fnot-register=return-code \
prog1.cob prog2.cob prog3.cob prog4.cob prog5.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog1.cob:5: error: RETURNING/GIVING not allowed for non-returning runtime elements
prog2.cob:5: error: RETURNING/GIVING not allowed for non-returning runtime elements
prog4.cob:5: error: 'RETURN-CODE' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1186"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_99
#AT_START_100
at_fn_group_banner 100 'syn_definition.at:1196' \
  "Invalid ENVIRONMENT DIVISION order" "             " 2
at_xfail=no
(
  $as_echo "100. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CONSOLE IS CRT
           .
       SPECIAL-NAMES.
           DECIMAL-POINT IS COMMA
           .
       SOURCE-COMPUTER. a-computer.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1214: \$COMPILE_ONLY -fincorrect-conf-sec-order=error prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fincorrect-conf-sec-order=error prog.cob" "syn_definition.at:1214"
( $at_check_trace; $COMPILE_ONLY -fincorrect-conf-sec-order=error 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: duplicate SPECIAL-NAMES
prog.cob:13: error: SOURCE-COMPUTER incorrectly after SPECIAL-NAMES used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1214"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_100
#AT_START_101
at_fn_group_banner 101 'syn_definition.at:1221' \
  "Function without END FUNCTION" "                  " 2
at_xfail=no
(
  $as_echo "101. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       FUNCTION-ID. func.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1229: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1229"
( $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:4: error: syntax error, unexpected end of file, expecting END FUNCTION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1229"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_101
#AT_START_102
at_fn_group_banner 102 'syn_definition.at:1235' \
  "Nested programs without END PROGRAM" "            " 2
at_xfail=no
(
  $as_echo "102. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       PROCEDURE DIVISION.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-2.
       PROCEDURE DIVISION.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-3.

       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1253: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1253"
( $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/syn_definition.at:1253"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_102
#AT_START_103
at_fn_group_banner 103 'syn_definition.at:1257' \
  "Nested programs not in procedure division" "      " 2
at_xfail=no
(
  $as_echo "103. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-2.

       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1270: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1270"
( $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: PROCEDURE DIVISION header missing
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1270"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_103
#AT_START_104
at_fn_group_banner 104 'syn_definition.at:1276' \
  "Screen section starts with 78-level" "            " 2
at_xfail=no
(
  $as_echo "104. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       SCREEN SECTION.
       78 const VALUE "x".
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1288: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1288"
( $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/syn_definition.at:1288"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_104
#AT_START_105
at_fn_group_banner 105 'syn_definition.at:1292' \
  "Invalid PICTURE strings" "                        " 2
at_xfail=no
(
  $as_echo "105. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  empty-pic PIC.
       01  too-long-pic PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
       01  too-long-pic2 PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
       01  multiple-symbols.
           03  PIC 9CRCR.
           03  PIC 9DBDB.
           03  PIC SS99S.
           03  PIC 99..9.
           03  PIC 99VV9.
           03  PIC +$99+.
           03  PIC $+99$-.
       01  non-symbols.
           03  PIC 9K.
           03  PIC 999C.
           03  PIC 999D.
       01  too-many-digits PIC 9(50).
       01  too-long-number-in-parens PIC 9(11111111111111).
       01  nested-parens PIC 9((100)).
       01  unbalanced-parens PIC 9(.
       01  multiple-pairs-of-parens PIC 9(5)(3).
       01  no-digit-in-parens PIC 9().
       01  mutually-exclusive-symbols.
           03  PIC P(3)9.9.
           03  PIC 9V.9.
           03  PIC Z*.
           03  PIC +(5)--.
           03  PIC $(4)Z(9).
           03  PIC $$B*(4).
           03  PIC NX.
           03  PIC AN.
           03  PIC AZ(3).
           03  PIC 99.99XXXXX.
           03  PIC SA.
           03  PIC $$$B+++B---.
           03  PIC +++9+.
           03  PIC +9(5)CR.
           03  PIC -9(5)DB.
       01 non-rightmost-leftmost-symbols.
           03  PIC BBB+BB99.
           03  PIC 99-B.
           03  PIC 9CRB.
           03  PIC DB9(5).
           03  PIC 99$$$.
           03  PIC 99$B.
           03  PIC 0$99.
           03  PIC PPPVP9.
       01  missing-symbols.
           03  PIC B(5).
           03  PIC +.
           03  PIC $.

       01  str-constant CONSTANT "hello".
       01  float-constant CONSTANT 1.0.
       01  signed-constant CONSTANT -1.
       01  invalid-constant.
           03  PIC X(str-constant).
           03  PIC X(float-constant).
           03  PIC X(signed-constant).
           03  PIC X(unseen-constant).

       01  integer-constant CONSTANT 5.
       01  valid-pics.
           03  PIC VP9B.
           03  PIC B9P(3).
           03  PIC B$$$.
           03  PIC 0000+B0+++0B,+.
           03  PIC +(5)P(3).
           03  PIC ++.++.
           03  PIC $(integer-constant).
           03  PIC $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      -(integer-constant).   *> CHECKME: should this be really valid?


       01  PC-COLOR-BACKGROUND-TABLE.
           05  BIT-BACKGROUND-BLACK      PIC 1(8) BIT VALUE B"00000000".
           05  BIT-BACKGROUND-BLUE       PIC 1(8) BIT VALUE B"00010000".
           05  BIT-BACKGROUND-GREEN      PIC 1(8) BIT VALUE B"00100000".
           05  BIT-BACKGROUND-CYAN       PIC 1(8) BIT VALUE B"00110000".
           05  BIT-BACKGROUND-RED        PIC 1(8) BIT VALUE B"01000000".
           05  BIT-BACKGROUND-MAGENTA    PIC 1(8) BIT VALUE B"01010000".
           05  BIT-BACKGROUND-BROWN      PIC 1(8) BIT VALUE B"01100000".
           05  BIT-BACKGROUND-LIGHT-GRAY PIC 1(8) BIT VALUE B"01110000".
       01  FILLER REDEFINES PC-COLOR-BACKGROUND-TABLE.
           05  COLOR-BACKGROUND
               OCCURS 8 TIMES            PIC 1(8) BIT.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1393: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_definition.at:1393"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: continuation of COBOL words is archaic in COBOL 2014
prog.cob:11: warning: continuation of COBOL words is archaic in COBOL 2014
prog.cob:12: warning: continuation of COBOL words is archaic in COBOL 2014
prog.cob:13: warning: continuation of COBOL words is archaic in COBOL 2014
prog.cob:14: warning: continuation of COBOL words is archaic in COBOL 2014
prog.cob:82: warning: continuation of COBOL words is archaic in COBOL 2014
prog.cob:7: error: missing PICTURE string
prog.cob:8: error: PICTURE string may not contain more than 63 characters; contains 76 characters
prog.cob:10: error: PICTURE string may not contain more than 63 characters; contains 301 characters
prog.cob:16: error: CR or DB may only occur once in a PICTURE string
prog.cob:17: error: CR or DB may only occur once in a PICTURE string
prog.cob:18: error: S may only occur once in a PICTURE string
prog.cob:18: error: S must be at start of PICTURE string
prog.cob:19: error: . may only occur once in a PICTURE string
prog.cob:20: error: V may only occur once in a PICTURE string
prog.cob:21: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:22: error: a leading +/- sign cannot follow a leading currency symbol
prog.cob:22: error: a trailing currency symbol cannot follow a leading currency symbol
prog.cob:22: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:24: error: invalid PICTURE character 'K'
prog.cob:25: error: C must be followed by R
prog.cob:26: error: D must be followed by B
prog.cob:27: error: numeric field cannot be larger than 38 digits
prog.cob:28: error: only up to 9 significant digits are permitted within parentheses
prog.cob:29: error: parentheses must be preceded by a picture symbol
prog.cob:30: error: unbalanced parentheses
prog.cob:31: error: parentheses must be preceded by a picture symbol
prog.cob:32: error: parentheses must contain an unsigned integer
prog.cob:34: error: . cannot follow a P which is after the decimal point
prog.cob:35: error: . cannot follow V
prog.cob:36: error: cannot have both Z and * in PICTURE string
prog.cob:37: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
prog.cob:37: error: a trailing +/- sign may only occur once in a PICTURE string
prog.cob:38: error: a Z or * which is before the decimal point cannot follow a floating currency symbol string which is before the decimal point
prog.cob:39: error: a Z or * which is before the decimal point cannot follow a floating currency symbol string which is before the decimal point
prog.cob:40: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
prog.cob:40: error: A or X cannot follow N
prog.cob:41: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
prog.cob:41: error: N cannot follow A or X
prog.cob:42: error: a Z or * which is before the decimal point cannot follow A or X
prog.cob:43: error: A or X cannot follow .
prog.cob:44: error: A or X cannot follow S
prog.cob:45: error: a leading +/- sign cannot follow B, 0 or /
prog.cob:45: error: a leading +/- sign cannot follow a floating currency symbol string which is before the decimal point
prog.cob:45: error: a leading +/- sign may only occur once in a PICTURE string
prog.cob:45: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:45: error: a trailing +/- sign may only occur once in a PICTURE string
prog.cob:46: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
prog.cob:47: error: CR or DB cannot follow a leading +/- sign
prog.cob:48: error: CR or DB cannot follow a leading +/- sign
prog.cob:50: error: a leading +/- sign cannot follow B, 0 or /
prog.cob:51: error: a leading +/- sign cannot follow 9
prog.cob:52: error: B, 0 or / cannot follow CR or DB
prog.cob:53: error: 9 cannot follow CR or DB
prog.cob:54: error: a floating currency symbol string which is before the decimal point cannot follow 9
prog.cob:55: error: a leading currency symbol cannot follow 9
prog.cob:56: error: a leading currency symbol cannot follow B, 0 or /
prog.cob:57: error: P must be at start or end of PICTURE string
prog.cob:57: error: V cannot follow a P which is after the decimal point
prog.cob:59: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:60: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:61: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:67: error: 'STR-CONSTANT' is not a numeric literal
prog.cob:68: error: 'FLOAT-CONSTANT' is not an integer
prog.cob:69: error: 'SIGNED-CONSTANT' is not unsigned
prog.cob:70: error: 'UNSEEN-CONSTANT' is not defined
prog.cob:81: warning: uncommon parentheses
prog.cob:86: warning: USAGE BIT is not implemented
prog.cob:87: warning: USAGE BIT is not implemented
prog.cob:88: warning: USAGE BIT is not implemented
prog.cob:89: warning: USAGE BIT is not implemented
prog.cob:90: warning: USAGE BIT is not implemented
prog.cob:91: warning: USAGE BIT is not implemented
prog.cob:92: warning: USAGE BIT is not implemented
prog.cob:93: warning: USAGE BIT is not implemented
prog.cob:96: warning: USAGE BIT is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1393"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1472: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1472"
( $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: warning: continuation of COBOL words used
prog.cob:11: warning: continuation of COBOL words used
prog.cob:12: warning: continuation of COBOL words used
prog.cob:13: warning: continuation of COBOL words used
prog.cob:14: warning: continuation of COBOL words used
prog.cob:82: warning: continuation of COBOL words used
prog.cob:7: error: missing PICTURE string
prog.cob:10: error: PICTURE string may not contain more than 255 characters; contains 301 characters
prog.cob:16: error: CR or DB may only occur once in a PICTURE string
prog.cob:17: error: CR or DB may only occur once in a PICTURE string
prog.cob:18: error: S may only occur once in a PICTURE string
prog.cob:18: error: S must be at start of PICTURE string
prog.cob:19: error: . may only occur once in a PICTURE string
prog.cob:20: error: V may only occur once in a PICTURE string
prog.cob:21: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:22: error: a leading +/- sign cannot follow a leading currency symbol
prog.cob:22: error: a trailing currency symbol cannot follow a leading currency symbol
prog.cob:22: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:24: error: invalid PICTURE character 'K'
prog.cob:25: error: C must be followed by R
prog.cob:26: error: D must be followed by B
prog.cob:27: error: numeric field cannot be larger than 38 digits
prog.cob:28: error: only up to 9 significant digits are permitted within parentheses
prog.cob:29: error: parentheses must be preceded by a picture symbol
prog.cob:30: error: unbalanced parentheses
prog.cob:31: error: parentheses must be preceded by a picture symbol
prog.cob:32: error: parentheses must contain an unsigned integer
prog.cob:34: error: . cannot follow a P which is after the decimal point
prog.cob:35: error: . cannot follow V
prog.cob:36: error: cannot have both Z and * in PICTURE string
prog.cob:37: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
prog.cob:37: error: a trailing +/- sign may only occur once in a PICTURE string
prog.cob:38: error: a Z or * which is before the decimal point cannot follow a floating currency symbol string which is before the decimal point
prog.cob:39: error: a Z or * which is before the decimal point cannot follow a floating currency symbol string which is before the decimal point
prog.cob:40: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
prog.cob:40: error: A or X cannot follow N
prog.cob:41: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
prog.cob:41: error: N cannot follow A or X
prog.cob:42: error: a Z or * which is before the decimal point cannot follow A or X
prog.cob:43: error: A or X cannot follow .
prog.cob:44: error: A or X cannot follow S
prog.cob:45: error: a leading +/- sign cannot follow B, 0 or /
prog.cob:45: error: a leading +/- sign cannot follow a floating currency symbol string which is before the decimal point
prog.cob:45: error: a leading +/- sign may only occur once in a PICTURE string
prog.cob:45: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:45: error: a trailing +/- sign may only occur once in a PICTURE string
prog.cob:46: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
prog.cob:47: error: CR or DB cannot follow a leading +/- sign
prog.cob:48: error: CR or DB cannot follow a leading +/- sign
prog.cob:50: error: a leading +/- sign cannot follow B, 0 or /
prog.cob:51: error: a leading +/- sign cannot follow 9
prog.cob:52: error: B, 0 or / cannot follow CR or DB
prog.cob:53: error: 9 cannot follow CR or DB
prog.cob:54: error: a floating currency symbol string which is before the decimal point cannot follow 9
prog.cob:55: error: a leading currency symbol cannot follow 9
prog.cob:56: error: a leading currency symbol cannot follow B, 0 or /
prog.cob:57: error: P must be at start or end of PICTURE string
prog.cob:57: error: V cannot follow a P which is after the decimal point
prog.cob:59: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:60: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:61: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:67: error: 'STR-CONSTANT' is not a numeric literal
prog.cob:68: error: 'FLOAT-CONSTANT' is not an integer
prog.cob:69: error: 'SIGNED-CONSTANT' is not unsigned
prog.cob:70: error: 'UNSEEN-CONSTANT' is not defined
prog.cob:81: warning: uncommon parentheses
prog.cob:86: warning: USAGE BIT is not implemented
prog.cob:87: warning: USAGE BIT is not implemented
prog.cob:88: warning: USAGE BIT is not implemented
prog.cob:89: warning: USAGE BIT is not implemented
prog.cob:90: warning: USAGE BIT is not implemented
prog.cob:91: warning: USAGE BIT is not implemented
prog.cob:92: warning: USAGE BIT is not implemented
prog.cob:93: warning: USAGE BIT is not implemented
prog.cob:96: warning: USAGE BIT is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1472"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_105
#AT_START_106
at_fn_group_banner 106 'syn_definition.at:1552' \
  "PICTURE string with control character" "          " 2
at_xfail=no
(
  $as_echo "106. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       PIC(P)
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1559: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1559"
( $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:2: error: 'P' is not defined
prog.cob:2: error: invalid PICTURE character ''
prog.cob:2: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:2: error: PROGRAM-ID header missing
prog.cob:2: error: PROCEDURE DIVISION header missing
prog.cob:2: error: syntax error, unexpected PICTURE
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1559"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_106
#AT_START_107
at_fn_group_banner 107 'syn_definition.at:1570' \
  "PICTURE strings invalid with BLANK WHEN ZERO" "   " 2
at_xfail=no
(
  $as_echo "107. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC S9(5) BLANK ZERO.
       01  y PIC *(5) BLANK ZERO.

       *> Actually valid
       01  z PIC -9(5) BLANK ZERO.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1586: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1586"
( $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 S in PICTURE string and BLANK WHEN ZERO
prog.cob:8: error: 'y' cannot have * in PICTURE string and BLANK WHEN ZERO
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1586"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_107
#AT_START_108
at_fn_group_banner 108 'syn_definition.at:1593' \
  "PICTURE strings invalid with USAGE" "             " 2
at_xfail=no
(
  $as_echo "108. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC XXX, COMP-6.
       01  y PIC +999, PACKED-DECIMAL.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1606: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1606"
( $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: PICTURE clause not compatible with USAGE COMP-6
prog.cob:8: error: PICTURE clause not compatible with USAGE COMP-3
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1606"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_108
#AT_START_109
at_fn_group_banner 109 'syn_definition.at:1613' \
  "ALPHABET definition" "                            " 2
at_xfail=no
(
  $as_echo "109. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           ALPHABET TESTME IS
                    'A' THROUGH 'Z', x'00' thru x'05';
                    x'41' ALSO x'42', ALSO x'00', x'C1' ALSO x'C2'.
           ALPHABET FINE
                    'A' also 'B' also 'C' also 'd' also 'e' ALSO 'f',
                    'g' also 'G', '1' thru '9', x'00'.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1630: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1630"
( $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: duplicate character values in alphabet 'TESTME': x'00', A, B
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1630"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_109
#AT_START_110
at_fn_group_banner 110 'syn_definition.at:1636' \
  "PROGRAM COLLATING SEQUENCE" "                     " 2
at_xfail=no
(
  $as_echo "110. $at_setup_line: testing $at_desc ..."
  $at_traceon



# check that a reference on the bad alphabet does not break cobc
cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE,
                        PROGRAM COLLATING SEQUENCE IS TESTME.
       SPECIAL-NAMES.
           ALPHABET TESTME IS
                    x'00' thru x'05', 'A' THROUGH 'Z';
                    x'41' ALSO x'42', ALSO x'00', x'C1' ALSO x'C2'.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog2.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE,
                        PROGRAM COLLATING SEQUENCE IS TESTNO.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE,
                        PROGRAM COLLATING SEQUENCE IS ALPHABET-1,
                                                      ALPHABET-2.
       SPECIAL-NAMES.
           ALPHABET ALPHABET-1 IS
                    'A' THROUGH 'Z', x'00' thru x'05'.
           ALPHABET ALPHABET-2
                    n'A' also n'B' ALSO n'f',
                    n'g' also n'G', n'1' thru n'9'.
       END PROGRAM prog3.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3b.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE,
                        PROGRAM           SEQUENCE IS ALPHABET-1,
                                                      ALPHABET-2.
       SPECIAL-NAMES.
           ALPHABET ALPHABET-1 IS
                    'A' THROUGH 'Z', x'00' thru x'05'.
           ALPHABET ALPHABET-2 IS
                    n'A' ALSO n'f',
                    n'g' also n'G'.
       END PROGRAM prog3b.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3c.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE, SEQUENCE ALPHABET-1, ALPHABET-2.
       SPECIAL-NAMES.
           ALPHABET ALPHABET-1    x'00' thru x'05'.
           ALPHABET ALPHABET-2 IS n'g' also n'G', n'1' thru n'9'.
       END PROGRAM prog3c.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3d.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE, SEQUENCE ALPHABET-1, ALPHABET-2.
       SPECIAL-NAMES.
           ALPHABET ALPHABET-1 IS 'A' THROUGH 'Z'.
           ALPHABET ALPHABET-2   n'A' also n'B', n'1' thru n'9'.
       END PROGRAM prog3d.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3e.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE, SEQUENCE ALPHABET-1.
       SPECIAL-NAMES.
           ALPHABET ALPHABET-1 IS 'Z', x'00'.
       END PROGRAM prog3e.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3f.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE,
                        COLLATING SEQUENCE
                          FOR ALPHANUMERIC IS ALPHABET-1.
       SPECIAL-NAMES.
           ALPHABET ALPHABET-1 IS
                    'A' THROUGH 'Z', x'00', x'05'.
       END PROGRAM prog3f.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3g.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE,
                        SEQUENCE ALPHANUMERIC ALPHABET-1.
       SPECIAL-NAMES.
           ALPHABET ALPHABET-1 IS
                    'A' THROUGH 'D'.
       END PROGRAM prog3g.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3h.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE,
                        COLLATING SEQUENCE
                          FOR ALPHANUMERIC IS ALPHABET-1
                              NATIONAL     IS ALPHABET-2.
       SPECIAL-NAMES.
           ALPHABET ALPHABET-1 IS
                    'A', 'C', x'05'.
           ALPHABET ALPHABET-2
                    n'A', n'1' thru n'9'.
       END PROGRAM prog3h.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3i.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE,
                        COLLATING SEQUENCE
                          NATIONAL     ALPHABET-2
                          ALPHANUMERIC ALPHABET-1.
       SPECIAL-NAMES.
           ALPHABET ALPHABET-1 IS
                    'a' THROUGH 'z'.
           ALPHABET ALPHABET-2
                    n'B', n'C'; n'g' also n'G'.
       END PROGRAM prog3i.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3j.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. GNU-LINUX.
       OBJECT-COMPUTER. GC-MACHINE,
                        COLLATING SEQUENCE
                          NATIONAL     ALPHABET-2.
       SPECIAL-NAMES.
           ALPHABET ALPHABET-2
                    n'B', n'C'; n'g' also n'G'.
       END PROGRAM prog3j.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1800: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1800"
( $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: duplicate character values in alphabet 'TESTME': x'00', A, B
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1800"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:1803: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_definition.at:1803"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:8: error: 'TESTNO' is not defined
prog2.cob:8: error: 'TESTNO' is not an alphabet name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1803"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:1807: \$COMPILE_ONLY -Wno-unfinished prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-unfinished prog3.cob" "syn_definition.at:1807"
( $at_check_trace; $COMPILE_ONLY -Wno-unfinished prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:9: warning: NATIONAL COLLATING SEQUENCE is not implemented
prog3.cob:25: warning: NATIONAL COLLATING SEQUENCE is not implemented
prog3.cob:39: warning: NATIONAL COLLATING SEQUENCE is not implemented
prog3.cob:50: warning: NATIONAL COLLATING SEQUENCE is not implemented
prog3.cob:99: warning: NATIONAL COLLATING SEQUENCE is not implemented
prog3.cob:114: warning: NATIONAL COLLATING SEQUENCE is not implemented
prog3.cob:130: warning: NATIONAL COLLATING SEQUENCE is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:1807"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_110
#AT_START_111
at_fn_group_banner 111 'syn_definition.at:1819' \
  "RENAMES item" "                                   " 2
at_xfail=no
(
  $as_echo "111. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  a.
           03  b       PIC 9.
           03  c.
               05 d    PIC 9.
               05 e    PIC 9.

       66  valid-1     RENAMES b.
       66  valid-2     RENAMES d THRU e.

       66  invalid-1   RENAMES a.
       66  invalid-2   RENAMES c THRU d.
       66  invalid-3   RENAMES e THRU d.
       66  invalid-4   RENAMES valid-2.

       01  f.
           03  g       PIC X.
               88  h   VALUE "a".
           03  i       PIC X.
           03  j       OCCURS 5 TIMES.
               05  k   PIC X.
               05  l   PIC X.
           03  m       PIC 9.
           03  n       POINTER, SYNC.
           03  o.
               05  p   PIC X OCCURS 1 TO 10 DEPENDING ON l.

       66  valid-3     RENAMES g THRU i.
       66  invalid-5   RENAMES h.
       66  invalid-6   RENAMES k THRU l.
       66  invalid-7   RENAMES j.
       66  invalid-8   RENAMES m THRU o.
       66  invalid-9   RENAMES b THRU m.

       78  my-ext-const VALUE "123".
       66  invalid-ec   RENAMES my-ext-const.

       01  my-std-const CONSTANT AS "123".
       66  invalid-sc   RENAMES my-std-const.

       PROCEDURE       DIVISION.
           DISPLAY valid-2 OF a
           IF valid-1 = 1
              CONTINUE
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1874: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_definition.at:1874"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:15: error: RENAMES of 01-, 66- and 77-level items does not conform to COBOL 2014
prog.cob:16: error: THRU item 'd' may not be subordinate to 'c'
prog.cob:17: error: THRU item 'd' may not come before 'e'
prog.cob:18: error: RENAMES of 01-, 66- and 77-level items does not conform to COBOL 2014
prog.cob:33: error: RENAMES may not reference a level 88
prog.cob:34: error: cannot use RENAMES on part of the table 'j'
prog.cob:35: error: RENAMES cannot start/end at the OCCURS item 'j'
prog.cob:36: error: RENAMES may not contain 'n' as it is a pointer or object reference
prog.cob:36: error: RENAMES may not contain 'p' as it is an OCCURS DEPENDING table
prog.cob:37: error: 'invalid-9' must immediately follow the record 'a'
prog.cob:37: error: 'b' and 'm' must be in the same record
prog.cob:39: error: 78 VALUE does not conform to COBOL 2014
prog.cob:40: error: a constant may not be used here - 'my-ext-const'
prog.cob:43: error: a constant may not be used here - 'my-std-const'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1874"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_111
#AT_START_112
at_fn_group_banner 112 'syn_definition.at:1893' \
  "RENAMES of 01-, 66- and 77-level items" "         " 2
at_xfail=no
(
  $as_echo "112. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  a PIC X.
       66  renames-a RENAMES a.
       66  renames-a2 RENAMES renames-a.

       77  b PIC X.
       66  renames-b RENAMES b.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1909: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_definition.at:1909"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: RENAMES of 01-, 66- and 77-level items does not conform to COBOL 2014
prog.cob:8: error: RENAMES of 01-, 66- and 77-level items does not conform to COBOL 2014
prog.cob:11: error: RENAMES of 01-, 66- and 77-level items does not conform to COBOL 2014
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1909"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:1914: \$COMPILE_ONLY -frenames-uncommon-levels=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frenames-uncommon-levels=ok prog.cob" "syn_definition.at:1914"
( $at_check_trace; $COMPILE_ONLY -frenames-uncommon-levels=ok 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/syn_definition.at:1914"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_112
#AT_START_113
at_fn_group_banner 113 'syn_definition.at:1919' \
  "SAME AS clause" "                                 " 2
at_xfail=no
(
  $as_echo "113. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MESSAGE-TEXT-2 EXTERNAL.
         02 AUSGABE-FILE-NAME     PIC X(50).
         02 FILLER REDEFINES AUSGABE-FILE-NAME.
             05 FILLER PIC 9999.
         02 AUSGABE-FILE-NAME-2.
             05 FILLER PIC 9999.
             05 DETAIL-NO PIC 9999.
         02 FILLER SAME AS AUSGABE-FILE-NAME.

       77 OUTPUT-NAME SAME AS DETAIL-NO GLOBAL.

       01 Z-MESSAGE-T2 SAME AS AUSGABE-FILE-NAME-2.
       01 Z-MESSAGE-T3.
          49 MT3       SAME AS MESSAGE-TEXT-2.
          49 MT3-REN  REDEFINES MT3 SAME AS MESSAGE-TEXT-2.

       PROCEDURE DIVISION.
           DISPLAY AUSGABE-FILE-NAME OF MESSAGE-TEXT-2
           DISPLAY DETAIL-NO         OF Z-MESSAGE-T2
           DISPLAY AUSGABE-FILE-NAME OF MT3
           DISPLAY OUTPUT-NAME
           GOBACK.
_ATEOF


cat >badprog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MESSAGE-TEXT-2.
         02 AUSGABE-FILE-NAME     PIC X(50).
         02 F1 SAME AS MESSAGE-TEXT-2.
       01 MT2 SAME AS MESSAGE-TEXT-2.
             05 FILLER PIC 9999.
       01 MT3 SAME AS MESSAGE-TEXT-2 PIC X.
       77 OUTPUT-NAME  SAME AS MESSAGE-TEXT-2.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:1965: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:1965"
( $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/syn_definition.at:1965"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:1966: \$COMPILE_ONLY -std=mf-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_definition.at:1966"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict 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: SAME AS clause does not conform to Micro Focus COBOL
prog.cob:15: error: SAME AS clause does not conform to Micro Focus COBOL
prog.cob:17: error: SAME AS clause does not conform to Micro Focus COBOL
prog.cob:19: error: SAME AS clause does not conform to Micro Focus COBOL
prog.cob:20: error: SAME AS clause does not conform to Micro Focus COBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1966"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:1973: \$COMPILE_ONLY badprog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY badprog.cob" "syn_definition.at:1973"
( $at_check_trace; $COMPILE_ONLY badprog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "badprog.cob:8: error: item may not reference itself
badprog.cob:10: error: entry following SAME AS may not be subordinate to it
badprog.cob:11: error: illegal combination of SAME AS with other clauses
badprog.cob:12: error: elementary item expected
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:1973"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_113
#AT_START_114
at_fn_group_banner 114 'syn_definition.at:1983' \
  "TYPEDEF clause" "                                 " 2
at_xfail=no
(
  $as_echo "114. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 AUSGABE-FILE-NAME-T          PIC X(50) IS TYPEDEF.
       01 SOME-VERY-LONG-TYPEDEF-NAME  PIC 9999  IS TYPEDEF.
       01 AUSGABE-FILE-NAME-2T         IS TYPEDEF.
          05 FILLER    PIC 9999.
          05 DETAIL-NO USAGE SOME-VERY-LONG-TYPEDEF-NAME.
      *
       01  MESSAGE-TEXT-2T IS TYPEDEF.
         02 AUSGABE-FILE-NAME     USAGE AUSGABE-FILE-NAME-T.
         02 FILLER REDEFINES AUSGABE-FILE-NAME.
             05 FILLER PIC 9999.
         02 AUSGABE-FILE-NAME-2   USAGE AUSGABE-FILE-NAME-2T.
         02 FILLER                USAGE AUSGABE-FILE-NAME-T.
      *
       01  MESSAGE-TEXT-2 EXTERNAL USAGE MESSAGE-TEXT-2T.

       77 OUTPUT-NAME USAGE SOME-VERY-LONG-TYPEDEF-NAME GLOBAL.

       01 Z-MESSAGE-T2 USAGE AUSGABE-FILE-NAME-2T.
       01 Z-MESSAGE-T3.
          49 MT3                    USAGE MESSAGE-TEXT-2T.
          49 MT3-REN  REDEFINES MT3 USAGE MESSAGE-TEXT-2T.

       77 CALCULUS             PIC S9(15)V9(03) IS TYPEDEF.
       01 USER-TYPE            IS TYPEDEF.
          02 AMOUNT            USAGE CALCULUS.
          02 FILLER            OCCURS 100.
             05 GRP-AMOUNT     USAGE CALCULUS.
       01 USER-VAR             USAGE USER-TYPE.

       PROCEDURE DIVISION.
           DISPLAY AUSGABE-FILE-NAME OF MESSAGE-TEXT-2
           DISPLAY DETAIL-NO         OF Z-MESSAGE-T2
           DISPLAY AUSGABE-FILE-NAME OF MT3
           DISPLAY OUTPUT-NAME
           MOVE -123.45 TO AMOUNT
           MOVE AMOUNT  TO GRP-AMOUNT (1)
           GOBACK.
_ATEOF


cat >progstd.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 AUSGABE-FILE-NAME-T     PIC X(50) IS TYPEDEF.
       01 DETAIL-NO-T             PIC 9999  IS TYPEDEF.
       01 AUSGABE-FILE-NAME-2T              IS TYPEDEF.
          05 FILLER    PIC 9999.
          05 DETAIL-NO TYPE TO DETAIL-NO-T.
      *
       01  MESSAGE-TEXT-2T IS TYPEDEF.
         02 AUSGABE-FILE-NAME     TYPE AUSGABE-FILE-NAME-T.
         02 FILLER REDEFINES AUSGABE-FILE-NAME.
             05 FILLER PIC 9999.
         02 AUSGABE-FILE-NAME-2   TYPE AUSGABE-FILE-NAME-2T.
         02 FILLER                TYPE AUSGABE-FILE-NAME-T.
      *
       01  MESSAGE-TEXT-2 EXTERNAL TYPE MESSAGE-TEXT-2T.

       77 OUTPUT-NAME TYPE TO DETAIL-NO-T GLOBAL.

       01 Z-MESSAGE-T2 TYPE AUSGABE-FILE-NAME-2T.
       01 Z-MESSAGE-T3.
          49 MT3                    TYPE MESSAGE-TEXT-2T.
          49 MT3-REN  REDEFINES MT3 TYPE MESSAGE-TEXT-2T.

       77 CALCULUS             PIC S9(15)V9(03) IS TYPEDEF.

       01 SOME-STRUCT          IS TYPEDEF.
          02 SOME-DATA         PIC 9.
          02 SOME-VALUES       OCCURS 3.
             03 OTHER-DATA     PIC X.
             03 OTHER-VALUES   OCCURS 2 PIC 9.
       77 SOME2-DATA           PIC 9.      *> temporary variant until solved...
       01 SOME-STRUCT2         IS TYPEDEF.
      *>  02 SOME2-DATA        PIC 9.      TODO!
          02 SOME2-VALUES      OCCURS 1 TO 6 DEPENDING ON SOME2-DATA
                               DESCENDING KEY SB SA
                               INDEXED BY SOME2-INDEX.
             05 SA             PIC X VALUE x'12'.
             05 SB             PIC 9 VALUE 0.
             05 SDATA          PIC X(12).

       01 MY-TEST.
          02 AMOUNT            TYPE CALCULUS.
          02 FILLER            OCCURS 100.
             05 GRP-AMOUNT     TYPE CALCULUS.
          02 MY-NAME           TYPE SOME-STRUCT  OCCURS 5.
          02 MY-NAME2          TYPE SOME-STRUCT2.
       01 MY-TEST2             TYPE SOME-STRUCT2.
       LINKAGE SECTION.
       01 MY-STORE             TYPE CALCULUS.

       PROCEDURE DIVISION USING MY-STORE.
           DISPLAY AUSGABE-FILE-NAME OF MESSAGE-TEXT-2
           DISPLAY DETAIL-NO         OF Z-MESSAGE-T2
           DISPLAY AUSGABE-FILE-NAME OF MT3
           DISPLAY OUTPUT-NAME
           SET ADDRESS OF MY-STORE TO NULL
           INITIALIZE MY-NAME(2) GRP-AMOUNT (99)
           INITIALIZE OTHER-VALUES (2, 3, 2)
           SEARCH ALL SOME2-VALUES OF MY-NAME2
      *>     WHEN SA(SOME2-INDEX) = x'12'  CHECKME: Should work
             WHEN SA OF MY-NAME2(SOME2-INDEX OF MY-NAME2) = x'12'
                CONTINUE.
           GOBACK.
_ATEOF


cat >badprog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MESSAGE-TEXT-2T IS TYPEDEF.
         02 AUSGABE-FILE-NAME     PIC X(50).
         02 F1      USAGE MESSAGE-TEXT-2T.
       01 MT2 USAGE MESSAGE-TEXT-2T.
             05 FILLER PIC 9999.
       01 MT3 TYPE TO MESSAGE-TEXT-2T PIC X.
       77 OUTPUT-NAME  TYPE TO MESSAGE-TEXT-2T.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:2113: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:2113"
( $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/syn_definition.at:2113"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:2114: \$COMPILE_ONLY -std=cobol2002 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2002 prog.cob" "syn_definition.at:2114"
( $at_check_trace; $COMPILE_ONLY -std=cobol2002 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: USAGE type-name does not conform to COBOL 2002
prog.cob:13: error: USAGE type-name does not conform to COBOL 2002
prog.cob:16: error: USAGE type-name does not conform to COBOL 2002
prog.cob:17: error: USAGE type-name does not conform to COBOL 2002
prog.cob:19: error: USAGE type-name does not conform to COBOL 2002
prog.cob:21: error: USAGE type-name does not conform to COBOL 2002
prog.cob:23: error: USAGE type-name does not conform to COBOL 2002
prog.cob:25: error: USAGE type-name does not conform to COBOL 2002
prog.cob:26: error: USAGE type-name does not conform to COBOL 2002
prog.cob:30: error: USAGE type-name does not conform to COBOL 2002
prog.cob:32: error: USAGE type-name does not conform to COBOL 2002
prog.cob:33: error: USAGE type-name 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/syn_definition.at:2114"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:2128: \$COMPILE_ONLY -std=mf-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_definition.at:2128"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict 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/syn_definition.at:2128"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:2129: \$COMPILE_ONLY progstd.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY progstd.cob" "syn_definition.at:2129"
( $at_check_trace; $COMPILE_ONLY progstd.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/syn_definition.at:2129"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:2130: \$COMPILE_ONLY -std=cobol2002 progstd.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2002 progstd.cob" "syn_definition.at:2130"
( $at_check_trace; $COMPILE_ONLY -std=cobol2002 progstd.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/syn_definition.at:2130"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:2131: \$COMPILE_ONLY -std=mf-strict progstd.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict progstd.cob" "syn_definition.at:2131"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict progstd.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "progstd.cob:10: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:13: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:16: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:17: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:19: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:21: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:23: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:25: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:26: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:46: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:48: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:49: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:50: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:51: error: TYPE TO clause does not conform to Micro Focus COBOL
progstd.cob:53: error: TYPE TO clause does not conform to Micro Focus COBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:2131"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_definition.at:2149: \$COMPILE_ONLY badprog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY badprog.cob" "syn_definition.at:2149"
( $at_check_trace; $COMPILE_ONLY badprog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "badprog.cob:8: error: item may not reference itself
badprog.cob:10: error: entry following TYPE TO may not be subordinate to it
badprog.cob:11: error: illegal combination of TYPE TO with other clauses
badprog.cob:12: error: elementary item expected
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:2149"
$at_failed && at_fn_log_failure
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/syn_definition.at:2157: \$COMPILE_ONLY -std=mf-strict -t symbols.lst -tsymbols -fno-tsource -fno-tmessages -tlines=0 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict -t symbols.lst -tsymbols -fno-tsource -fno-tmessages -tlines=0 prog.cob" "syn_definition.at:2157"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict -t symbols.lst -tsymbols -fno-tsource -fno-tmessages -tlines=0 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/syn_definition.at:2157"
$at_failed && at_fn_log_failure  \
"symbols.lst"
$at_traceon; }


cat >prog.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00050 ALPHANUMERIC   01   AUSGABE-FILE-NAME-T            X(50)

00004 NUMERIC        01   SOME-VERY-LONG-TYPEDEF-NAME    9999

00008 GROUP          01   AUSGABE-FILE-NAME-2T
00004 NUMERIC        05   FILLER                         9999
00004 NUMERIC        05   DETAIL-NO                      SOME-VERY-LONG-TYPEDE...

00108 GROUP          01   MESSAGE-TEXT-2T
00050 ALPHANUMERIC   02   AUSGABE-FILE-NAME              AUSGABE-FILE-NAME-T
00004 GROUP          02   FILLER, REDEFINES AUSGABE-FILE-NAME
00004 NUMERIC        05   FILLER                         9999
00008 GROUP          02   AUSGABE-FILE-NAME-2            AUSGABE-FILE-NAME-2T
00050 ALPHANUMERIC   02   FILLER                         AUSGABE-FILE-NAME-T

00108 GROUP          01   MESSAGE-TEXT-2                 MESSAGE-TEXT-2T EXTERNAL

00004 NUMERIC        77   OUTPUT-NAME                    SOME-VERY-LONG-TYPEDE... GLOBAL

00008 GROUP          01   Z-MESSAGE-T2                   AUSGABE-FILE-NAME-2T

00108 GROUP          01   Z-MESSAGE-T3
00108 GROUP          49   MT3                            MESSAGE-TEXT-2T
00108 GROUP          49   MT3-REN                        MESSAGE-TEXT-2T, REDEFINES MT3

00018 NUMERIC        77   CALCULUS                       S9(15)V9(03)

01818 GROUP          01   USER-TYPE
00018 NUMERIC        02   AMOUNT                         CALCULUS
01800 GROUP          02   FILLER                         OCCURS 100
00018 NUMERIC        05   GRP-AMOUNT                     CALCULUS

01818 GROUP          01   USER-VAR                       USER-TYPE


_ATEOF



{ set +x
$as_echo "$at_srcdir/syn_definition.at:2205: \$UNIFY_LISTING symbols.lst symbols.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING symbols.lst symbols.lis once" "syn_definition.at:2205"
( $at_check_trace; $UNIFY_LISTING symbols.lst symbols.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:2205"
$at_failed && at_fn_log_failure  \
"symbols.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:2206: diff prog.lst symbols.lis"
at_fn_check_prepare_trace "syn_definition.at:2206"
( $at_check_trace; diff prog.lst symbols.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_definition.at:2206"
$at_failed && at_fn_log_failure  \
"symbols.lst"
$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 'syn_definition.at:2214' \
  "LIKE clause" "                                    " 2
at_xfail=yes
(
  $as_echo "115. $at_setup_line: testing $at_desc ..."
  $at_traceon



# work in progress


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MESSAGE-TEXT-2 EXTERNAL.
         02 AUSGABE-FILE-NAME     PIC X(50).
         02 FILLER REDEFINES AUSGABE-FILE-NAME.
             05 FILLER PIC 9999.
         02 AUSGABE-FILE-NAME-2.
             05 FILLER PIC 9999.
             05 DETAIL-NO PIC 9999.
         02 FILLER LIKE AUSGABE-FILE-NAME.

       77 OUTPUT-VAL     LIKE DETAIL-NO GLOBAL.
       77 OUTPUT-VAL-P1  LIKE DETAIL-NO (+1).
       77 OUTPUT-VAL-P1b LIKE DETAIL-NO (1).
       77 OUTPUT-VAL-M2  LIKE DETAIL-NO (-2).

       01 Z-MESSAGE-T2 LIKE AUSGABE-FILE-NAME-2.
       01 Z-MESSAGE-T3.
          49 MT3      LIKE MESSAGE-TEXT-2.

       PROCEDURE DIVISION.
           DISPLAY AUSGABE-FILE-NAME OF MESSAGE-TEXT-2
           DISPLAY Z-MESSAGE-T2 (55:LENGTH OF DETAIL-NO)
           DISPLAY MT3 (1:LENGTH OF AUSGABE-FILE-NAME)
           ADD OUTPUT-VAL TO DETAIL-NO
           GOBACK.
_ATEOF


# TODO add tests and syntax checks in cobc
# AT_DATA([badprog.cob], [
#        IDENTIFICATION   DIVISION.
#        PROGRAM-ID.      prog.
#        DATA             DIVISION.
#        WORKING-STORAGE  SECTION.
#
# ])

{ set +x
$as_echo "$at_srcdir/syn_definition.at:2260: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:2260"
( $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/syn_definition.at:2260"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_definition.at:2261: \$COMPILE_ONLY -std=mf-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_definition.at:2261"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict 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: SAME AS clause does not conform to Micro Focus COBOL
prog.cob:15: error: SAME AS clause does not conform to Micro Focus COBOL
prog.cob:17: error: SAME AS clause does not conform to Micro Focus COBOL
prog.cob:19: error: SAME AS clause does not conform to Micro Focus COBOL
prog.cob:20: error: SAME AS clause does not conform to Micro Focus COBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:2261"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_115
#AT_START_116
at_fn_group_banner 116 'syn_definition.at:2272' \
  "APPLY COMMIT clause" "                            " 2
at_xfail=no
(
  $as_echo "116. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.  *> taken from "commit and rollback example"
                          *> from COBOL 202x draft
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT STCK-FILE
              ASSIGN TO "STOCK"
              ORGANIZATION IS INDEXED
              ACCESS MODE IS RANDOM
              FILE STATUS IS STCK-FILE-STATUS
              RECORD KEY  IS APPLY
              SHARING WITH ALL OTHER.

           SELECT CHNG-FILE
              ASSIGN TO "CHANGE"
              ORGANIZATION IS SEQUENTIAL
              ACCESS MODE IS SEQUENTIAL
              FILE STATUS IS CHNG-FILE-STATUS
              SHARING WITH ALL OTHER.

           SELECT SORT-FILE
              ASSIGN TO "SORT".

       I-O-CONTROL.
           APPLY COMMIT ON STCK-FILE CHNG-FILE STCK-FILE not-there
                 SORT-FILE UPDATE-COUNT not-there-again BASED-STUFF
                 RED-DATA SOME-DATA.

       DATA DIVISION.
       FILE SECTION.

       FD  STCK-FILE.
       01  STCK-REC.
           03  APPLY                   PIC X(5).
           03  STCK-QTY                PIC 9(5)V99.

       SD  SORT-FILE.
       01  SORT-REC                    PIC X(100).

       FD  CHNG-FILE.
       01  CHNG-REC.
           03  CHNG-KEY                PIC X(5).
           03  CHNG-QTY                PIC 9(5)V99.
           03  CHNG-ACTION             PIC X.
           03  CHNG-STATE              PIC X.

       WORKING-STORAGE SECTION.

       01  FILE-STATES.
           03  STCK-FILE-STATUS        PIC XX.
               88  STCK-FILE-OK                  VALUE "00".
           03  CHNG-FILE-STATUS        PIC XX.
               88  CHNG-FILE-OK                  VALUE "00".
       77  UPDATE-COUNT  BINARY-LONG.
       77  BASED-STUFF   PIC X BASED.
       01  DATA-HERE.
           03 SOME-DATA  PIC 9.
       01  RED-DATA REDEFINES DATA-HERE PIC X.

       PROCEDURE DIVISION.

         MAIN SECTION.

           PERFORM INITIALISATION
           PERFORM TERMINATION
           STOP RUN WITH NORMAL STATUS 0

       . INITIALISATION SECTION.

           OPEN I-O CHNG-FILE, STCK-FILE
           IF NOT STCK-FILE-OK OR NOT CHNG-FILE-OK
              PERFORM FATAL-ERROR
           END-IF

       . TERMINATION SECTION.

           COMMIT
           IF NOT STCK-FILE-OK OR NOT CHNG-FILE-OK
              PERFORM FATAL-ERROR
           END-IF

       . FATAL-ERROR SECTION.

           ROLLBACK
           STOP RUN WITH ERROR STATUS 16.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_definition.at:2364: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_definition.at:2364"
( $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:29: warning: APPLY COMMIT is not implemented
prog.cob:27: error: 'not-there' is not defined
prog.cob:28: error: 'not-there-again' is not defined
prog.cob:27: error: duplicate APPLY COMMIT target: 'STCK-FILE'
prog.cob:28: error: APPLY COMMIT statement invalid for SORT file
prog.cob:29: error: 'RED-DATA' REDEFINES field not allowed here
prog.cob:29: error: 'SOME-DATA' not level 01 or 77
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_definition.at:2364"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_116
#AT_START_117
at_fn_group_banner 117 'syn_subscripts.at:23' \
  "Non-numeric subscript" "                          " 2
at_xfail=no
(
  $as_echo "117. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC X OCCURS 10.
       01 I             PIC X.
       PROCEDURE        DIVISION.
           DISPLAY X(I)
           END-DISPLAY.
           DISPLAY X(I + 1)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_subscripts.at:42: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.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: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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:42"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_117
#AT_START_118
at_fn_group_banner 118 'syn_subscripts.at:50' \
  "Subscript range check" "                          " 2
at_xfail=no
(
  $as_echo "118. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           OCCURS 2.
           03 Y         PIC X OCCURS 3.
       PROCEDURE        DIVISION.
           DISPLAY X(0)
           END-DISPLAY.
           DISPLAY X(1)
           END-DISPLAY.
           DISPLAY X(2)
           END-DISPLAY.
           DISPLAY X(3)
           END-DISPLAY.
           DISPLAY Y(1, 0)
           END-DISPLAY.
           DISPLAY Y(1, 1)
           END-DISPLAY.
           DISPLAY Y(1, 3)
           END-DISPLAY.
           DISPLAY Y(1, 4)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_subscripts.at:81: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.at:81"
( $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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:81"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_subscripts.at:88: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_subscripts.at:88"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: subscript of 'X' out of bounds: 0
prog.cob:16: warning: subscript of 'X' out of bounds: 3
prog.cob:18: warning: subscript of 'Y' out of bounds: 0
prog.cob:24: warning: subscript of 'Y' out of bounds: 4
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_subscripts.at:88"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_118
#AT_START_119
at_fn_group_banner 119 'syn_subscripts.at:98' \
  "Subscript bounds with OCCURS DEPENDING ON" "      " 2
at_xfail=no
(
  $as_echo "119. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
       01 N             PIC 9 VALUE 4.
       PROCEDURE        DIVISION.
           DISPLAY X(0)
           DISPLAY X(7)
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_subscripts.at:115: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.at:115"
( $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:11: 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/syn_subscripts.at:115"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_119
#AT_START_120
at_fn_group_banner 120 'syn_subscripts.at:125' \
  "Subscripted item requires OCCURS clause" "        " 2
at_xfail=no
(
  $as_echo "120. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X.
       PROCEDURE        DIVISION.
           DISPLAY G(1)
           END-DISPLAY.
           DISPLAY X(1)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_subscripts.at:143: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.at:143"
( $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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:143"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_120
#AT_START_121
at_fn_group_banner 121 'syn_subscripts.at:151' \
  "Number of subscripts" "                           " 2
at_xfail=no
(
  $as_echo "121. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           OCCURS 2.
           03 Y         PIC X OCCURS 3.
       PROCEDURE        DIVISION.
           DISPLAY X
           END-DISPLAY.
           DISPLAY X(1)
           END-DISPLAY.
           DISPLAY X(1, 2)
           END-DISPLAY.
           DISPLAY Y(1)
           END-DISPLAY.
           DISPLAY Y(1, 2)
           END-DISPLAY.
           DISPLAY Y(1, 2, 3)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_subscripts.at:178: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.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:10: error: 'X' requires one subscript
prog.cob:14: error: 'X' requires one subscript
prog.cob:16: error: 'Y' requires 2 subscripts
prog.cob:20: error: 'Y' requires 2 subscripts
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_subscripts.at:185: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_subscripts.at:185"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: subscript missing for 'X' - defaulting to 1
prog.cob:14: error: 'X' requires one subscript
prog.cob:16: warning: subscript missing for 'Y' - defaulting to 1
prog.cob:20: error: 'Y' requires 2 subscripts
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:185"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_121
#AT_START_122
at_fn_group_banner 122 'syn_subscripts.at:195' \
  "SET SSRANGE syntax" "                             " 2
at_xfail=no
(
  $as_echo "122. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       *> Valid
      $SET SSRANGE
      $SET SSRANGE(1)
      $SET SSRANGE "2"
      $SET SSRANGE (3)

       *> Invalid
      $SET SSRANGE(0)
      $SET SSRANGE(4)
      $SET SSRANGE "variable"

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       PROCEDURE DIVISION.
           GOBACK
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_subscripts.at:217: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_subscripts.at:217"
( $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 SSRANGE directive option '0'
prog.cob:10: error: invalid SSRANGE directive option '4'
prog.cob:11: error: invalid SSRANGE directive option 'variable'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_subscripts.at:217"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_122
#AT_START_123
at_fn_group_banner 123 'syn_occurs.at:29' \
  "OCCURS with level 01 and 77" "                    " 2
at_xfail=no
(
  $as_echo "123. $at_setup_line: testing $at_desc ..."
  $at_traceon

#AT_KEYWORDS([occurs])

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-01          PIC X OCCURS 10.
       01 G             OCCURS 10.
         02 X-02        PIC X OCCURS 10.
       01 G2.
         02 X2-02       PIC X OCCURS 10.
       77 X-77          PIC X OCCURS 10.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:45: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_occurs.at:45"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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-01' cannot have a OCCURS clause
prog.cob:7: error: level 01 item 'G' cannot have a OCCURS clause
prog.cob:11: error: level 77 item 'X-77' cannot have a 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/syn_occurs.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:51: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:51"
( $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/syn_occurs.at:51"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_occurs.at:52: \$COMPILE_ONLY -ftop-level-occurs-clause=warning prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -ftop-level-occurs-clause=warning prog.cob" "syn_occurs.at:52"
( $at_check_trace; $COMPILE_ONLY -ftop-level-occurs-clause=warning 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: 01/77 OCCURS used
prog.cob:7: warning: 01/77 OCCURS used
prog.cob:11: warning: 01/77 OCCURS used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_occurs.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_123
#AT_START_124
at_fn_group_banner 124 'syn_occurs.at:84' \
  "OCCURS with level 66" "                           " 2
at_xfail=no
(
  $as_echo "124. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  x PIC X.
       66  y RENAMES x OCCURS 10.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:96: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:96"
( $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: syntax error, unexpected OCCURS, expecting .
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:96"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_124
#AT_START_125
at_fn_group_banner 125 'syn_occurs.at:103' \
  "OCCURS with level 78" "                           " 2
at_xfail=no
(
  $as_echo "125. $at_setup_line: testing $at_desc ..."
  $at_traceon

#AT_KEYWORDS([occurs])

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       78  c value "a" OCCURS 10.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:114: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.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:6: error: syntax error, unexpected OCCURS, expecting .
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:114"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_125
#AT_START_126
at_fn_group_banner 126 'syn_occurs.at:121' \
  "OCCURS with level 88" "                           " 2
at_xfail=no
(
  $as_echo "126. $at_setup_line: testing $at_desc ..."
  $at_traceon

#AT_KEYWORDS([occurs])

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  x PIC X.
           88  y VALUE "a" OCCURS 10.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:133: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:133"
( $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: syntax error, unexpected OCCURS, expecting .
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:133"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_126
#AT_START_127
at_fn_group_banner 127 'syn_occurs.at:141' \
  "OCCURS with variable-occurrence data item" "      " 2
at_xfail=no
(
  $as_echo "127. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1.
         02 G-2         OCCURS 10.
           03 X         PIC X(10) OCCURS 1 TO 4 DEPENDING ON I.
       77 I             PIC 9.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1.
         02 G-2         OCCURS 1 TO 10 DEPENDING ON I.
           03 X         PIC X(10) OCCURS 1 TO 4 DEPENDING ON I.
       77 I             PIC 9.
       PROCEDURE        DIVISION.
           DISPLAY  X(I, I) END-DISPLAY
           DISPLAY  G-2 (I) END-DISPLAY
           DISPLAY  G-1     END-DISPLAY
           .

_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:172: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:172"
( $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/syn_occurs.at:172"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:176: \$COMPILE_ONLY -fcomplex-odo prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fcomplex-odo prog.cob" "syn_occurs.at:176"
( $at_check_trace; $COMPILE_ONLY -fcomplex-odo 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/syn_occurs.at:176"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:178: \$COMPILE_ONLY -fcomplex-odo prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fcomplex-odo prog2.cob" "syn_occurs.at:178"
( $at_check_trace; $COMPILE_ONLY -fcomplex-odo prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:8: error: 'X' cannot have nested OCCURS DEPENDING
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:182: \$COMPILE_ONLY -fodoslide prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fodoslide prog2.cob" "syn_occurs.at:182"
( $at_check_trace; $COMPILE_ONLY -fodoslide prog2.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/syn_occurs.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_127
#AT_START_128
at_fn_group_banner 128 'syn_occurs.at:189' \
  "OCCURS data-items for INDEXED and KEY" "          " 2
at_xfail=no
(
  $as_echo "128. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  TAB.
           05  TAB-ENTRY1
                  OCCURS 5 TIMES
                  ASCENDING KEY IS X1
                                OF TAB-ENTRY1
                                OF TAB
                  INDEXED BY IDX1 OF TAB.
              10 X1 PIC 9.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:207: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:207"
( $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: a subscripted data-item cannot be used here
prog.cob:12: error: a subscripted data-item cannot be used here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:207"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_128
#AT_START_129
at_fn_group_banner 129 'syn_occurs.at:229' \
  "Nested OCCURS clause" "                           " 2
at_xfail=no
(
  $as_echo "129. $at_setup_line: testing $at_desc ..."
  $at_traceon

#AT_KEYWORDS([occurs])

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1.
        02 G-2          OCCURS 2.
         03 G-3         OCCURS 2.
          04 G-4        OCCURS 2.
           05 G-5       OCCURS 2.
            06 G-6      OCCURS 2.
             07 G-7     OCCURS 2.
              08 G-8    OCCURS 2.
               09 X     PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:248: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:248"
( $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/syn_occurs.at:248"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_129
#AT_START_130
at_fn_group_banner 130 'syn_occurs.at:266' \
  "OCCURS DEPENDING with wrong size" "               " 2
at_xfail=no
(
  $as_echo "130. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 FILLER.
         02 G-1         PIC X OCCURS  1 TO 1 DEPENDING ON I.
       01 FILLER.
         02 G-2         PIC X OCCURS -1 TO 1 DEPENDING ON I.
       01 FILLER.
         02 G-3         PIC X OCCURS +1 TO 1 DEPENDING ON I.
       01 FILLER.
         02 G-4         PIC X OCCURS  0 TO 1 DEPENDING ON I.
       01 I             PIC 9.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:285: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:285"
( $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: OCCURS TO must be greater than OCCURS FROM
prog.cob:9: error: unsigned integer value expected
prog.cob:11: error: unsigned integer value expected
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:285"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_130
#AT_START_131
at_fn_group_banner 131 'syn_occurs.at:305' \
  "OCCURS DEPENDING followed by another field" "     " 2
at_xfail=no
(
  $as_echo "131. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1.
         02 X           PIC X OCCURS 1 TO 3 DEPENDING ON I.
         02 Y           PIC X.
       01 G-2.
         02 G-3         OCCURS 1 TO 3 DEPENDING ON I.
           03 X         PIC X.
         02 Y           PIC X.
       01 G-4.
         02 G-5.
           03 X         PIC X OCCURS 1 TO 3 DEPENDING ON I.
         02 Y           PIC X.
       01 I             PIC 9.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:327: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:327"
( $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 because of 'Y'
prog.cob:10: error: 'G-3' cannot have OCCURS DEPENDING because of 'Y'
prog.cob:15: error: 'X' cannot have OCCURS DEPENDING because of 'Y'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:327"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:333: \$COMPILE_ONLY -fcomplex-odo prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fcomplex-odo prog.cob" "syn_occurs.at:333"
( $at_check_trace; $COMPILE_ONLY -fcomplex-odo 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/syn_occurs.at:333"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_131
#AT_START_132
at_fn_group_banner 132 'syn_occurs.at:347' \
  "OCCURS with unmatched DEPENDING / TO phrases" "   " 2
at_xfail=no
(
  $as_echo "132. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 Y             PIC 9.
       01 XTAB.
          03 X  PIC X OCCURS 10 DEPENDING ON Y.
       01 XTAB2.
          03 X2 PIC X OCCURS 1 TO 10.
       01 XTAB3.
          03 X3 PIC X OCCURS 1 TO 10 DEPENDING ON MISSING.
       PROCEDURE DIVISION.
           MOVE 'A' TO X(1), X2(2), X3(3)
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:367: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_occurs.at:367"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: OCCURS DEPENDING ON without TO phrase does not conform to COBOL 2014
prog.cob:10: error: TO phrase without DEPENDING phrase
prog.cob:12: error: 'MISSING' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:367"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_occurs.at:372: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:372"
( $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: OCCURS DEPENDING ON without TO phrase used
prog.cob:10: error: TO phrase without DEPENDING phrase
prog.cob:12: error: 'MISSING' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:372"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_occurs.at:377: \$COMPILE_ONLY -frelax-syntax prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax prog.cob" "syn_occurs.at:377"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax 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: OCCURS DEPENDING ON without TO phrase used
prog.cob:10: warning: TO phrase without DEPENDING phrase
prog.cob:10: warning: maximum number of occurrences assumed to be exact number
prog.cob:12: error: 'MISSING' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:377"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_132
#AT_START_133
at_fn_group_banner 133 'syn_occurs.at:390' \
  "OCCURS INDEXED before KEY" "                      " 2
at_xfail=no
(
  $as_echo "133. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  TAB.
           05  TAB-ENTRY1
                  OCCURS 5 TIMES
                  INDEXED BY IDX1
                  ASCENDING KEY IS X1
                  DESCENDING Y1.
             10  X1 PIC 9(4).
             10  Y1 PIC X.
           05  TAB-ENTRY
                  OCCURS 2 TIMES
                  INDEXED BY IDX2
                  DESCENDING KEY IS X2
                  ASCENDING  Y2.
             10  X2 PIC 9(4).
             10  Y2 PIC X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:415: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:415"
( $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: INDEXED should follow ASCENDING/DESCENDING
prog.cob:17: error: INDEXED should follow ASCENDING/DESCENDING
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:415"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_occurs.at:420: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_occurs.at:420"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: INDEXED should follow ASCENDING/DESCENDING
prog.cob:17: warning: INDEXED should follow ASCENDING/DESCENDING
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_occurs.at:420"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_133
#AT_START_134
at_fn_group_banner 134 'syn_occurs.at:428' \
  "OCCURS size check" "                              " 2
at_xfail=no
(
  $as_echo "134. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X1.
          03 X  PIC X OCCURS 1530001234 TIMES.
       01 X2.
          03 X  PIC X OCCURS 2147483648 TIMES.
       01 X3.
          03 X  PIC X OCCURS 9223372036854775808 TIMES.
_ATEOF


# Don't check actual output here as the actual limit depends on INT_MAX, therefore
# all entries may raise this error but only the last error message is guaranteed.
{ set +x
$as_echo "$at_srcdir/syn_occurs.at:446: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_occurs.at:446"
( $at_check_trace; $COMPILE_ONLY prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_occurs.at:446"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_occurs.at:447: \$COMPILE_ONLY prog.cob 2>&1 | \\
\$GREP \"prog.cob:11: error: numeric literal '9223372036854775808' exceeds limit\""
at_fn_check_prepare_notrace 'an embedded newline' "syn_occurs.at:447"
( $at_check_trace; $COMPILE_ONLY prog.cob 2>&1 | \
$GREP "prog.cob:11: error: numeric literal '9223372036854775808' exceeds limit"
) >>"$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/syn_occurs.at:447"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_134
#AT_START_135
at_fn_group_banner 135 'syn_redefines.at:28' \
  "REDEFINES: not following entry-name" "            " 2
at_xfail=no
(
  $as_echo "135. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 Y             PIC 9 REDEFINES X.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:40: \$COMPILE_ONLY -ffree-redefines-position=error prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -ffree-redefines-position=error prog.cob" "syn_redefines.at:40"
( $at_check_trace; $COMPILE_ONLY -ffree-redefines-position=error 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 not following entry-name used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:44: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:44"
( $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: REDEFINES clause not following entry-name used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_redefines.at:44"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_135
#AT_START_136
at_fn_group_banner 136 'syn_redefines.at:53' \
  "REDEFINES: level 02 by 01" "                      " 2
at_xfail=no
(
  $as_echo "136. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X.
       01 Y             REDEFINES X PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:68: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:68"
( $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/syn_redefines.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_136
#AT_START_137
at_fn_group_banner 137 'syn_redefines.at:74' \
  "REDEFINES: level 03 by 02" "                      " 2
at_xfail=no
(
  $as_echo "137. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 G2.
           03 X         PIC X.
         02 Y           REDEFINES X PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:90: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.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:9: error: 'X' is not defined 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/syn_redefines.at:90"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_137
#AT_START_138
at_fn_group_banner 138 'syn_redefines.at:96' \
  "REDEFINES: level 66" "                            " 2
at_xfail=no
(
  $as_echo "138. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X.
         66 A           RENAMES X.
         66 B           REDEFINES A PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:112: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:112"
( $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: syntax error, unexpected REDEFINES, expecting RENAMES
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:112"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_138
#AT_START_139
at_fn_group_banner 139 'syn_redefines.at:118' \
  "REDEFINES: level 88" "                            " 2
at_xfail=no
(
  $as_echo "139. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
         88 A           VALUE "A".
         88 B           REDEFINES A VALUE "B".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:133: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:133"
( $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: syntax error, unexpected REDEFINES, expecting VALUE
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:133"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_139
#AT_START_140
at_fn_group_banner 140 'syn_redefines.at:147' \
  "REDEFINES: lower level number" "                  " 2
at_xfail=no
(
  $as_echo "140. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 G2.
           03 X         PIC X.
         02 G3.
           03 A         REDEFINES X PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:164: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:164"
( $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' is not defined 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/syn_redefines.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_140
#AT_START_141
at_fn_group_banner 141 'syn_redefines.at:173' \
  "REDEFINES: with OCCURS" "                         " 2
at_xfail=no
(
  $as_echo "141. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 2.
         02 Y           REDEFINES X PIC XX.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:188: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:188"
( $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 clause
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_redefines.at:188"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_141
#AT_START_142
at_fn_group_banner 142 'syn_redefines.at:194' \
  "REDEFINES: with subscript" "                      " 2
at_xfail=no
(
  $as_echo "142. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 G2          OCCURS 2.
           03 X         PIC X.
           03 Y         REDEFINES X(1) PIC X.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:210: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:210"
( $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/syn_redefines.at:210"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_142
#AT_START_143
at_fn_group_banner 143 'syn_redefines.at:216' \
  "REDEFINES: with variable occurrence" "            " 2
at_xfail=no
(
  $as_echo "143. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC XX.
         02 Y           REDEFINES X PIC X OCCURS 1 TO 2 DEPENDING ON I.
       01 G2.
         02 X           PIC XX.
         02 Y           REDEFINES X.
           03 A         PIC X OCCURS 1 TO 2 DEPENDING ON I.
       01 G3.
         02 X.
           03 A         PIC X OCCURS 1 TO 2 DEPENDING ON I.
         02 Y           REDEFINES X PIC X.
       01 I             PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:240: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:240"
( $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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_143
#AT_START_144
at_fn_group_banner 144 'syn_redefines.at:251' \
  "REDEFINES: with qualification" "                  " 2
at_xfail=no
(
  $as_echo "144. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC X.
       01 G2.
         02 X           PIC X.
         02 A           REDEFINES X IN G1.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:268: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:268"
( $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/syn_redefines.at:268"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_144
#AT_START_145
at_fn_group_banner 145 'syn_redefines.at:277' \
  "REDEFINES: multiple redefinition" "               " 2
at_xfail=no
(
  $as_echo "145. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC X.
         02 A           REDEFINES X PIC 9.
         02 B           REDEFINES X PIC 9.
         02 C           REDEFINES B PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:294: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:294"
( $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' is 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/syn_redefines.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:298: \$COMPILE_ONLY -std=mvs prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mvs prog.cob" "syn_redefines.at:298"
( $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/syn_redefines.at:298"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_145
#AT_START_146
at_fn_group_banner 146 'syn_redefines.at:305' \
  "REDEFINES: size exceeds" "                        " 2
at_xfail=no
(
  $as_echo "146. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC X.
         02 A           REDEFINES X PIC 99.
       01 G2.
         02 X           PIC X.
         02 A           REDEFINES X PIC 9 OCCURS 2.
       01 WRK-X         PIC X.
       01 WRK-X-REDEF   REDEFINES WRK-X PIC 99.
       01 EXT-X         PIC X EXTERNAL.
       01 EXT-X-REDEF   REDEFINES EXT-X PIC 99.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:327: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:327"
( $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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:327"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_146
#AT_START_147
at_fn_group_banner 147 'syn_redefines.at:338' \
  "REDEFINES: with VALUE" "                          " 2
at_xfail=no
(
  $as_echo "147. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 A             REDEFINES X PIC X VALUE "A".
       01 G             REDEFINES X.
         02 B           PIC X VALUE "A".
       01 Y             REDEFINES X PIC X.
         88 C           VALUE "A".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


# FIXME: add a compiler configuration as the COBOL standard forbids this
#        default.conf will allow it (with a warning)

{ set +x
$as_echo "$at_srcdir/syn_redefines.at:359: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:359"
( $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: initial VALUE clause ignored for REDEFINES item 'A'
prog.cob:9: warning: initial VALUE clause ignored for REDEFINES item 'B'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_redefines.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_redefines.at:363: \$COMPILE -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -frelax-syntax-checks prog.cob" "syn_redefines.at:363"
( $at_check_trace; $COMPILE -frelax-syntax-checks 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/syn_redefines.at:363"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_147
#AT_START_148
at_fn_group_banner 148 'syn_redefines.at:370' \
  "REDEFINES: with intervention" "                   " 2
at_xfail=no
(
  $as_echo "148. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 Y             PIC X.
       01 A             REDEFINES X PIC X.
       01 G.
         02 G-X         PIC X.
         02 G-Y         PIC X.
         02 G-A         REDEFINES G-X PIC X.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:389: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:389"
( $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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_redefines.at:389"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_148
#AT_START_149
at_fn_group_banner 149 'syn_redefines.at:399' \
  "REDEFINES: within REDEFINES" "                    " 2
at_xfail=no
(
  $as_echo "149. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 G             REDEFINES X.
         02 A           PIC X.
         02 B           REDEFINES A PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:415: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:415"
( $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/syn_redefines.at:415"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_149
#AT_START_150
at_fn_group_banner 150 'syn_redefines.at:420' \
  "REDEFINES: non-referenced ambiguous item" "       " 2
at_xfail=no
(
  $as_echo "150. $at_setup_line: testing $at_desc ..."
  $at_traceon



# bad extension, supported for compatibility to at least MicroFocus
# the redefines always applies to the item defined before, verified in
# run_extensions.at, syntax check for redefinition in syn_definition.at

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 X             PIC X.
       01 G             REDEFINES X PIC 9.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_redefines.at:439: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_redefines.at:439"
( $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: note: 'X' previously defined here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_redefines.at:439"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_150
#AT_START_151
at_fn_group_banner 151 'syn_value.at:43' \
  "Numeric item (integer)" "                         " 2
at_xfail=no
(
  $as_echo "151. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-SPACE       PIC 999 VALUE SPACE.
       01 X-ABC         PIC 999 VALUE "abc".
       01 X-12-3        PIC 999 VALUE 12.3.
       01 X-123         PIC 999 VALUE 123.
       01 X-1234        PIC 999 VALUE 1234.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_value.at:60: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:60"
( $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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_value.at:60"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_151
#AT_START_152
at_fn_group_banner 152 'syn_value.at:70' \
  "Numeric item (non-integer)" "                     " 2
at_xfail=no
(
  $as_echo "152. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-12          PIC 99V9 VALUE 12.
       01 X-123         PIC 99V9 VALUE 123.
       01 X-12-3        PIC 99V9 VALUE 12.3.
       01 X-12-34       PIC 99V9 VALUE 12.34.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_value.at:86: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:86"
( $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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:86"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_152
#AT_START_153
at_fn_group_banner 153 'syn_value.at:94' \
  "Numeric item with picture P" "                    " 2
at_xfail=no
(
  $as_echo "153. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-99PP-0      PIC 99PP VALUE 0.
       01 X-99PP-1200   PIC 99PP VALUE 1200.
       01 X-99PP-1230   PIC 99PP VALUE 1230.
       01 X-99PP-10000  PIC 99PP VALUE 10000.
       01 X-PP99--0     PIC PP99 VALUE .0.
       01 X-PP99--0012  PIC PP99 VALUE .0012.
       01 X-PP99--0123  PIC PP99 VALUE .0123.
       01 X-PP99--00001 PIC PP99 VALUE .00001.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_value.at:114: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:114"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_153
#AT_START_154
at_fn_group_banner 154 'syn_value.at:126' \
  "Signed numeric literal" "                         " 2
at_xfail=no
(
  $as_echo "154. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-9P          PIC 9  VALUE +1.
       01 X-9N          PIC 9  VALUE -1.
       01 X-S9P         PIC S9 VALUE +1.
       01 X-S9N         PIC S9 VALUE -1.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_value.at:142: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_value.at:142"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_154
#AT_START_155
at_fn_group_banner 155 'syn_value.at:152' \
  "Alphabetic item" "                                " 2
at_xfail=no
(
  $as_echo "155. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-123         PIC AAA VALUE 123.
       01 X-ZERO        PIC AAA VALUE ZERO.
       01 X-AB1         PIC AAA VALUE "ab1".
       01 X-ABC         PIC AAA VALUE "abc".
       01 X-ABCD        PIC AAA VALUE "abcd".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_value.at:169: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_value.at:169"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_155
#AT_START_156
at_fn_group_banner 156 'syn_value.at:179' \
  "Alphanumeric item" "                              " 2
at_xfail=no
(
  $as_echo "156. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-123         PIC XXX VALUE 123.
       01 X-ABC         PIC XXX VALUE "abc".
       01 X-ABCD        PIC XXX VALUE "abcd".
       01 X-SPACE       PIC XXX VALUE "abc   ".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_value.at:195: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:195"
( $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
prog.cob:9: warning: value does not fit the picture string
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_156
#AT_START_157
at_fn_group_banner 157 'syn_value.at:204' \
  "Alphanumeric group item" "                        " 2
at_xfail=no
(
  $as_echo "157. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1           VALUE 123.
         02 X           PIC XXX.
       01 G-2           VALUE "abc".
         02 X           PIC XXX.
       01 G-3           VALUE "abcd".
         02 X           PIC XXX.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_value.at:222: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:222"
( $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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_157
#AT_START_158
at_fn_group_banner 158 'syn_value.at:239' \
  "Numeric-edited item" "                            " 2
at_xfail=no
(
  $as_echo "158. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-SPACE       PIC **99.00  VALUE SPACE.
       01 X-123         PIC **999.00 VALUE 123.
       01 X-ABC         PIC **99.00  VALUE "abc".
       01 X-MATCH       PIC **99.00  VALUE "*123.00".
       01 X-OVERFLOW    PIC **99.00  VALUE "*123.000".
       PROCEDURE        DIVISION.
           MOVE     320.00 TO X-123
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_value.at:257: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:257"
( $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: warning: value size exceeds data size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_value.at:260: \$COMPILE_ONLY -std=ibm-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm-strict prog.cob" "syn_value.at:260"
( $at_check_trace; $COMPILE_ONLY -std=ibm-strict 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: numeric literal in VALUE clause of numeric-edited item used
prog.cob:10: warning: value size exceeds data size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_value.at:260"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_value.at:264: \$COMPILE_ONLY -std=ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_value.at:264"
( $at_check_trace; $COMPILE_ONLY -std=ibm 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: numeric literal in VALUE clause of numeric-edited item used
prog.cob:10: warning: value size exceeds data size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_158
#AT_START_159
at_fn_group_banner 159 'syn_value.at:272' \
  "Alphanumeric-edited item" "                       " 2
at_xfail=no
(
  $as_echo "159. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-123         PIC BXX VALUE 123.
       01 X-ABC         PIC BXX VALUE "abc".
       01 X-MATCH       PIC BXX VALUE " ab".
       01 X-OVERFLOW    PIC BXX VALUE " abc".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_value.at:288: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_value.at:288"
( $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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:288"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_159
#AT_START_160
at_fn_group_banner 160 'syn_value.at:340' \
  "Implicit picture from value" "                    " 2
at_xfail=no
(
  $as_echo "160. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 IMPHEAD.
          05 IMPPIC     VALUE " abc".
       PROCEDURE        DIVISION.
           DISPLAY IMPPIC END-DISPLAY
           STOP RUN.
_ATEOF


# Check: should we raise an error without -frelax-syntax-checks?
#AT_CHECK([$COMPILE_ONLY prog.cob], [1], [],
#[prog.cob:7: error: PICTURE clause required for 'IMPPIC'
#])

{ set +x
$as_echo "$at_srcdir/syn_value.at:360: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_value.at:360"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks 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: defining implicit picture size 4 for 'IMPPIC'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_value.at:360"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_value.at:364: \$COMPILE_ONLY -frelax-syntax-checks -w prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks -w prog.cob" "syn_value.at:364"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks -w 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/syn_value.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_160
#AT_START_161
at_fn_group_banner 161 'syn_file.at:23' \
  "Missing SELECT" "                                 " 2
at_xfail=no
(
  $as_echo "161. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT file2 ASSIGN DISK.
       DATA DIVISION.
       FILE SECTION.
       FD  file1.
       01  file1-rec PIC X.
       FD  file2.
       01  file2-rec PIC X.
       PROCEDURE DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:43: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:43"
( $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: 'file1' is not defined
prog.cob:10: error: 'file1' is not a file name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_161
#AT_START_162
at_fn_group_banner 162 'syn_file.at:50' \
  "Duplicated SELECT" "                              " 2
at_xfail=no
(
  $as_echo "162. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN DISK.
       SELECT file2 ASSIGN DISK.
       SELECT file1 ASSIGN DISK.
       DATA DIVISION.
       FILE SECTION.
       FD  file1.
       01  file1-rec PIC X.
       FD  file2.
       01  file2-rec PIC X.
       PROCEDURE DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:72: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:72"
( $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: redefinition of 'file1'
prog.cob:7: note: 'file1' previously defined here
prog.cob:9: error: missing file description for FILE SELECT on line 9
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:72"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_162
#AT_START_163
at_fn_group_banner 163 'syn_file.at:82' \
  "Missing FD" "                                     " 2
at_xfail=no
(
  $as_echo "163. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN DISK.
       SELECT file2 ASSIGN DISK.
       DATA DIVISION.
       FILE SECTION.
       FD file2.
       01 file2-rec PIC X.
       PROCEDURE DIVISION.
           OPEN input file1
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:102: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:102"
( $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: missing file description for FILE file1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:102"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_163
#AT_START_164
at_fn_group_banner 164 'syn_file.at:108' \
  "Duplicated FD" "                                  " 2
at_xfail=no
(
  $as_echo "164. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN DISK.
       SELECT file2 ASSIGN DISK.
       DATA DIVISION.
       FILE SECTION.
       FD  file1.
       01  file1-rec PIC X.
       FD  file2.
       01  file2-rec PIC X.
       FD  file1.
       01  file1-rec-2 PIC X.
       PROCEDURE DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:131: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.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:15: error: duplicate file description for FILE file1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:131"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_164
#AT_START_165
at_fn_group_banner 165 'syn_file.at:137' \
  "ASSIGN to device-name" "                          " 2
at_xfail=no
(
  $as_echo "165. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       TO DISK
                        ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       TO DISK 'TFILE'
                        ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       TO DISK FNAME OF F1
                        ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       WORKING-STORAGE  SECTION.
       01 F1.
          05 FNAME      PIC X(255) VALUE 'TFILEOF'.
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:197: \$COMPILE_ONLY -std=acu prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_file.at:197"
( $at_check_trace; $COMPILE_ONLY -std=acu 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/syn_file.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:198: \$COMPILE_ONLY -std=acu prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog2.cob" "syn_file.at:198"
( $at_check_trace; $COMPILE_ONLY -std=acu prog2.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/syn_file.at:198"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:199: \$COMPILE_ONLY -std=acu prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog3.cob" "syn_file.at:199"
( $at_check_trace; $COMPILE_ONLY -std=acu prog3.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/syn_file.at:199"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_165
#AT_START_166
at_fn_group_banner 166 'syn_file.at:204' \
  "ASSIGN to printer-name" "                         " 2
at_xfail=no
(
  $as_echo "166. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       TO PRINT
                        ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       TO PRINTER 'PFILE'
                        ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       TO PRINTER-1 FNAME OF F1
                        ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       WORKING-STORAGE  SECTION.
       01 F1.
          05 FNAME      PIC X(255) VALUE 'PFILEOF'.
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:264: \$COMPILE_ONLY -std=acu prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_file.at:264"
( $at_check_trace; $COMPILE_ONLY -std=acu 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/syn_file.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:265: \$COMPILE_ONLY -std=acu prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog2.cob" "syn_file.at:265"
( $at_check_trace; $COMPILE_ONLY -std=acu prog2.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/syn_file.at:265"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:266: \$COMPILE_ONLY -std=acu prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog3.cob" "syn_file.at:266"
( $at_check_trace; $COMPILE_ONLY -std=acu prog3.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/syn_file.at:266"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_166
#AT_START_167
at_fn_group_banner 167 'syn_file.at:271' \
  "ASSIGN to lsq-device-name" "                      " 2
at_xfail=no
(
  $as_echo "167. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TST-FILE1 ASSIGN       TO CARD-PUNCH  "F1".
       SELECT TST-FILE2 ASSIGN       TO CARD-READER "F2".
       SELECT TST-FILE3 ASSIGN       TO CASSETTE    "F3".
       SELECT TST-FILE4 ASSIGN       TO INPUT       "F4".
       SELECT TST-FILE5 ASSIGN       TO INPUT-OUTPUT.
       SELECT TST-FILE6 ASSIGN       TO MAGNETIC-TAPE.
       SELECT TST-FILE7 ASSIGN       TO OUTPUT      "F7".
       DATA             DIVISION.
       FILE             SECTION.
       FD TST-FILE1.
       01 TST1-REC      PIC X(4).
       FD TST-FILE2.
       01 TST2-REC      PIC X(4).
       FD TST-FILE3.
       01 TST3-REC      PIC X(4).
       FD TST-FILE4.
       01 TST4-REC      PIC X(4).
       FD TST-FILE5.
       01 TST5-REC      PIC X(4).
       FD TST-FILE6.
       01 TST6-REC      PIC X(4).
       FD TST-FILE7.
       01 TST7-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN  INPUT TST-FILE1.
           CLOSE TST-FILE1.
           OPEN  INPUT TST-FILE2.
           CLOSE TST-FILE2.
           OPEN  INPUT TST-FILE3.
           CLOSE TST-FILE3.
           OPEN  INPUT TST-FILE4.
           CLOSE TST-FILE4.
           OPEN  INPUT TST-FILE5.
           CLOSE TST-FILE5.
           OPEN  INPUT TST-FILE6.
           CLOSE TST-FILE6.
           OPEN  INPUT TST-FILE7.
           CLOSE TST-FILE7.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:321: \$COMPILE_ONLY -std=acu prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_file.at:321"
( $at_check_trace; $COMPILE_ONLY -std=acu 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/syn_file.at:321"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_167
#AT_START_168
at_fn_group_banner 168 'syn_file.at:326' \
  "ASSIGN to variable" "                             " 2
at_xfail=no
(
  $as_echo "168. $at_setup_line: testing $at_desc ..."
  $at_traceon



# Valid ASSIGNs
cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           SELECT test-file-1 ASSIGN TO var-1
               ORGANIZATION IS SEQUENTIAL.
           SELECT test-file-2 ASSIGN USING var-2
              ORGANIZATION IS SEQUENTIAL.
           SELECT test-file-3 ASSIGN TO VARYING var-3
               ORGANIZATION IS SEQUENTIAL.
           SELECT test-file-4 ASSIGN DISK USING var-4
               ORGANIZATION IS SEQUENTIAL.
           SELECT test-file-5 ASSIGN DYNAMIC DISK var-5
               ORGANIZATION IS SEQUENTIAL.
           SELECT test-file-6 ASSIGN DISK FROM var-6
               ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD test-file-1.
       01 test-rec-1    PIC X(4).
       FD test-file-2.
       01 test-rec-2    PIC X(4).
       FD test-file-3.
       01 test-rec-3    PIC X(4).
       FD test-file-4.
       01 test-rec-4    PIC X(4).
       FD test-file-5.
       01 test-rec-5    PIC X(4).
       FD test-file-6.
       01 test-rec-6    PIC X(4).
       WORKING-STORAGE  SECTION.
       01  var-1        PIC X(255).
       01  var-2        PIC X(255).
       01  var-3        PIC X(255).
       01  var-4        PIC X(255).
       01  var-5        PIC X(255).
       01  var-6        PIC X(255).
       PROCEDURE        DIVISION.
           OPEN INPUT test-file-1
           CLOSE test-file-1
           OPEN INPUT test-file-2
           CLOSE test-file-2
           OPEN INPUT test-file-3
           CLOSE test-file-3
           OPEN INPUT test-file-4
           CLOSE test-file-4
           OPEN INPUT test-file-5
           CLOSE test-file-5
           OPEN INPUT test-file-6
           CLOSE test-file-6
           .
_ATEOF


# Invalid assigns
cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           SELECT test-file-1 ASSIGN USING not-a-var
              ORGANIZATION IS SEQUENTIAL.
           SELECT test-file-2 ASSIGN DYNAMIC not-a-var
               ORGANIZATION IS SEQUENTIAL.
           SELECT test-file-3 ASSIGN DISK FROM not-a-var
               ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD test-file-1.
       01 test-rec-1    PIC X(4).
       FD test-file-2.
       01 test-rec-2    PIC X(4).
       FD test-file-3.
       01 test-rec-3    PIC X(4).
       PROCEDURE        DIVISION.
           OPEN INPUT test-file-1
           CLOSE test-file-1
           OPEN INPUT test-file-2
           CLOSE test-file-2
           OPEN INPUT test-file-3
           CLOSE test-file-3
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:416: \$COMPILE_ONLY -fassign-variable=warning -fassign-using-variable=warning -fassign-ext-dyn=warning -fassign-disk-from=warning prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fassign-variable=warning -fassign-using-variable=warning -fassign-ext-dyn=warning -fassign-disk-from=warning prog.cob" "syn_file.at:416"
( $at_check_trace; $COMPILE_ONLY -fassign-variable=warning -fassign-using-variable=warning -fassign-ext-dyn=warning -fassign-disk-from=warning prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: ASSIGN USING/VARYING variable used
prog.cob:12: warning: ASSIGN USING/VARYING variable used
prog.cob:14: warning: ASSIGN USING/VARYING variable used
prog.cob:15: warning: ASSIGN EXTERNAL/DYNAMIC used
prog.cob:18: warning: ASSIGN DISK FROM used
prog.cob:7: warning: ASSIGN variable used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:416"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:424: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_file.at:424"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:11: error: 'not-a-var' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:424"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_168
#AT_START_169
at_fn_group_banner 169 'syn_file.at:431' \
  "SELECT without ASSIGN" "                          " 2
at_xfail=no
(
  $as_echo "169. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE
              ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:452: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:452"
( $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: ASSIGN clause is required for file 'TEST-FILE'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:452"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_169
#AT_START_170
at_fn_group_banner 170 'syn_file.at:459' \
  "START on SEQUENTIAL file" "                       " 2
at_xfail=no
(
  $as_echo "170. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE  ASSIGN       "./TEST-FILE"
                         ORGANIZATION IS SEQUENTIAL.
       SELECT TEST-FILE2 ASSIGN       "./TEST-FILE"
                         ORGANIZATION IS LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       FD TEST-FILE2.
       01 TEST-REC2     PIC X(4).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE TEST-FILE2
           START TEST-FILE  KEY EQUAL TEST-REC
           END-START
           START TEST-FILE2 KEY EQUAL TEST-REC2
           END-START
           CLOSE TEST-FILE TEST-FILE2
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:488: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:488"
( $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:19: error: START not allowed on SEQUENTIAL files
prog.cob:21: 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/syn_file.at:488"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_170
#AT_START_171
at_fn_group_banner 171 'syn_file.at:496' \
  "OPEN SEQUENTIAL file REVERSED" "                  " 2
at_xfail=no
(
  $as_echo "171. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: only allowed for INPUT + sequential files (currently not checked).
# If added we likely can allow this for LINE SEQUENTIAL, too.

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE
           READ TEST-FILE NEXT
           END-READ
           CLOSE TEST-FILE
           OPEN  INPUT TEST-FILE REVERSED
           READ TEST-FILE NEXT
           END-READ
           CLOSE TEST-FILE
           OPEN  INPUT TEST-FILE WITH LOCK REVERSED
           READ TEST-FILE NEXT
           END-READ
           CLOSE TEST-FILE
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:530: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:530"
( $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:18: warning: OPEN REVERSED is not implemented
prog.cob:22: warning: OPEN REVERSED is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:530"
$at_failed && at_fn_log_failure
$at_traceon; }


# note: as soon as implemented: won't be obsolete in GnuCOBOL, but leave message for now...
{ set +x
$as_echo "$at_srcdir/syn_file.at:536: \$COMPILE_ONLY -Werror=obsolete -fdiagnostics-show-option prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Werror=obsolete -fdiagnostics-show-option prog.cob" "syn_file.at:536"
( $at_check_trace; $COMPILE_ONLY -Werror=obsolete -fdiagnostics-show-option prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:18: error: OPEN REVERSED is obsolete in GnuCOBOL [-Werror=obsolete]
prog.cob:22: error: OPEN REVERSED is obsolete in GnuCOBOL [-Werror=obsolete]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:536"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_171
#AT_START_172
at_fn_group_banner 172 'syn_file.at:544' \
  "OPEN SEQUENTIAL file NO REWIND" "                 " 2
at_xfail=no
(
  $as_echo "172. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: only allowed for INPUT/OUTPUT sequential files (currently not checked).

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN  OUTPUT TEST-FILE NO REWIND
           WRITE TEST-REC FROM "tEsT"
           END-WRITE
           WRITE TEST-REC FROM "TeSt"
           END-WRITE
           CLOSE TEST-FILE WITH NO REWIND
           OPEN  INPUT TEST-FILE WITH LOCK WITH NO REWIND
           READ TEST-FILE NEXT  *> should get EOF
           END-READ
           CLOSE TEST-FILE
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:575: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:575"
( $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:14: warning: OPEN WITH NO REWIND is not implemented
prog.cob:20: warning: OPEN WITH NO REWIND is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:575"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_172
#AT_START_173
at_fn_group_banner 173 'syn_file.at:583' \
  "valid key items" "                                " 2
at_xfail=no
(
  $as_echo "173. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-SOME ASSIGN TO 'FILE-TEST'
                        ORGANIZATION  IS INDEXED
                        ACCESS MODE   IS DYNAMIC
                        RECORD    KEY IS TEST-P2 IN TEST-SOME
                        ALTERNATE KEY IS TEST-P3 IN TEST-SOME.
       SELECT TEST-FILE ASSIGN TO 'FILE-TEST2'
                        ORGANIZATION  IS INDEXED
                        ACCESS MODE   IS DYNAMIC
                        RECORD    KEY IS TEST-P1
                        ALTERNATE KEY IS TEST-P4.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-SOME.
       01  SOME-REC.
           05  TEST-P2   PIC S9(4) COMP.
           05  TEST-P3   PIC S9(5) COMP-3.
       FD TEST-FILE.
       01  TEST-REC.
           05 TEST-P1   PIC X(4).
           05 FILLER    PIC X(4).
           05 TEST-P4   PIC X(4).
       WORKING-STORAGE  SECTION.
       01  WS-REC.
           05  TEST-P2   PIC S9(4) COMP.
           05  TEST-P3   PIC S9(5) COMP-3.
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE
           CLOSE TEST-FILE
           OPEN  OUTPUT TEST-SOME
           MOVE CORRESPONDING WS-REC TO SOME-REC
           WRITE SOME-REC
           CLOSE TEST-SOME
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:628: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:628"
( $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/syn_file.at:628"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_173
#AT_START_174
at_fn_group_banner 174 'syn_file.at:633' \
  "INDEXED file invalid key items" "                 " 2
at_xfail=no
(
  $as_echo "174. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-SOME ASSIGN TO 'FILE-TEST'
                        ORGANIZATION  IS INDEXED
                        ACCESS MODE   IS DYNAMIC
                        RECORD    KEY IS TEST-P2
                        ALTERNATE KEY IS TEST-P1
                        ALTERNATE KEY IS TEST-P3.
       SELECT TEST-FILE ASSIGN TO 'FILE-TEST2'
                        ORGANIZATION  IS INDEXED
                        ACCESS MODE   IS DYNAMIC
                        RECORD    KEY IS TEST-P1
                        ALTERNATE KEY IS TEST-P4
                        ALTERNATE KEY IS NOT-THERE
                        ALTERNATE KEY IS SOME-REC.
       SELECT TEST-MORE ASSIGN TO 'FILE-TEST-EXT'
                        ORGANIZATION  IS INDEXED
                        ACCESS MODE   IS DYNAMIC
                        RECORD KEY    IS NOT-HERE-KEY
                           SOURCE     IS NOT-IN-FILE1
                                         NOT-IN-FILE2.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-SOME.
       01  SOME-REC  PIC X(20).
       FD TEST-FILE.
       01  TEST-REC.
           05 TEST-P1   PIC X(4).
           05 FILLER    PIC X(4).
           05 TEST-P4   PIC X(4).
       FD TEST-MORE.
       01  MORE-REC.
           05 MORE-DATA PIC X(4).
       WORKING-STORAGE  SECTION.
       77  TEST-P2   PIC S9(4) COMP.
       77  TEST-P3   PIC S9(5) COMP-3.
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


# FIXME: "is not defined" should be changed in "is not defined in file ..."
{ set +x
$as_echo "$at_srcdir/syn_file.at:683: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:683"
( $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: 'TEST-P2' is not defined
prog.cob:11: error: 'TEST-P1' is not defined
prog.cob:12: error: 'TEST-P3' is not defined
prog.cob:18: error: 'NOT-THERE' is not defined
prog.cob:13: error: invalid KEY item 'SOME-REC', not in file 'TEST-FILE'
prog.cob:24: error: 'NOT-IN-FILE1' is not defined
prog.cob:20: error: invalid KEY item 'NOT-HERE-KEY', not in file 'TEST-MORE'
prog.cob:25: error: 'NOT-IN-FILE2' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:683"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_174
#AT_START_175
at_fn_group_banner 175 'syn_file.at:697' \
  "variable record length" "                         " 2
at_xfail=no
(
  $as_echo "175. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN TO 'FILE-TEST'
                        ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE
           RECORD IS VARYING IN SIZE
           RECORD CONTAINS  1 TO 1250 CHARACTERS.
       01  TEST-REC.
           05 TEST-P1   PIC X(4).
           05 TEST-P2   PIC S9(4) COMP.
           05 TEST-P3   PIC S9(5) COMP-3.
           05 TEST-P4   PIC S9(5).
           05 TEST-P5   PIC S9(2) BINARY.
           05 FILLER    PIC X(129).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN TO 'FILE-TEST'
                        ORGANIZATION IS INDEXED
                        ACCESS MODE  IS DYNAMIC
                        RECORD KEY IS TEST-P2
                        ALTERNATE KEY IS TEST-P1
                        ALTERNATE KEY IS TEST-P3.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE
           RECORD IS VARYING IN SIZE
              FROM 2 TO 1250 CHARACTERS.
       01  TEST-REC.
           05 TEST-P1   PIC X(4).
           05 TEST-P2   PIC S9(4) COMP.
           05 TEST-P3   PIC S9(5) COMP-3.
           05 TEST-P4   PIC S9(5).
           05 TEST-P5   PIC S9(2) BINARY.
           05 FILLER    PIC X(129).
       01  RECORDSIZE   PIC X(04).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN TO 'FILE-TEST'
                        ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE
           RECORD CONTAINS  5 TO 10 CHARACTERS.
       01  TEST-REC-1.
           05 FILLER    PIC X(4).
       01  TEST-REC-2.
           05 FILLER    PIC X(50).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:779: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:779"
( $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: duplicate RECORD clause
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:779"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_file.at:783: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_file.at:783"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:13: warning: duplicate RECORD clause
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:783"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_file.at:787: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_file.at:787"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:20: error: minimal record length 2 can not hold the key item 'TEST-P2'; needs to be at least 6
prog2.cob:19: error: minimal record length 2 can not hold the key item 'TEST-P1'; needs to be at least 4
prog2.cob:21: error: minimal record length 2 can not hold the key item 'TEST-P3'; needs to be at least 9
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:787"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_file.at:793: \$COMPILE_ONLY -std=cobol2014 prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog3.cob" "syn_file.at:793"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:13: error: size of record 'TEST-REC-1' (4) smaller than minimum of file 'TEST-FILE' (5)
prog3.cob:15: error: size of record 'TEST-REC-2' (50) larger than maximum of file 'TEST-FILE' (10)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:793"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_file.at:798: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_file.at:798"
( $at_check_trace; $COMPILE_ONLY prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:13: warning: size of record 'TEST-REC-1' (4) smaller than minimum of file 'TEST-FILE' (5)
prog3.cob:13: warning: file size adjusted
prog3.cob:15: warning: size of record 'TEST-REC-2' (50) larger than maximum of file 'TEST-FILE' (10)
prog3.cob:15: warning: file size adjusted
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:798"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_175
#AT_START_176
at_fn_group_banner 176 'syn_file.at:808' \
  "variable record length DEPENDING item" "          " 2
at_xfail=no
(
  $as_echo "176. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN TO 'FILE-TEST'
                        ORGANIZATION IS SEQUENTIAL.
       SELECT TEST-FIL2 ASSIGN TO 'FILE-TEST-2'
                        ORGANIZATION IS SEQUENTIAL.
       SELECT TEST-FIL3 ASSIGN TO 'FILE-TEST-3'
                        ORGANIZATION IS SEQUENTIAL.
       SELECT TEST-FIL4 ASSIGN TO 'FILE-TEST-4'
                        ORGANIZATION IS SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE
           RECORD IS VARYING IN SIZE
              FROM 12 TO 125 CHARACTERS
                 DEPENDING ON RECORDSIZE.
       01  TEST-REC.
           05 FILLER    PIC X(40).
       FD TEST-FIL2
           RECORD IS VARYING IN SIZE
              FROM 20 TO 250 CHARACTERS
                 DEPENDING ON TEST-FILE.
       01  TEST-REC2.
           05 FILLER       PIC X(129).
           05 RECORDSIZE3  PIC 9(04).
           05 RECORDSIZE4  PIC X(04).
       FD TEST-FIL3
           RECORD IS VARYING IN SIZE
              FROM 40 TO 50  CHARACTERS
                 DEPENDING ON RECORDSIZE3.
       01  TEST-REC3.
           05 FILLER    PIC X(50).
       FD TEST-FIL4
           RECORD IS VARYING IN SIZE
              FROM 1 TO 2  CHARACTERS
                 DEPENDING ON RECORDSIZE4.
       01  TEST-REC4.
           05 FILLER    PIC X(2).
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           OPEN  INPUT TEST-FIL2.
           CLOSE TEST-FIL2.
           OPEN  INPUT TEST-FIL3.
           CLOSE TEST-FIL3.
           OPEN  INPUT TEST-FIL4.
           CLOSE TEST-FIL4.
           STOP RUN.
_ATEOF


# FIXME: the check misses "prog.cob:40: error: RECORD DEPENDING item must be unsigned numeric"
{ set +x
$as_echo "$at_srcdir/syn_file.at:866: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:866"
( $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:20: error: 'RECORDSIZE' is not defined
prog.cob:26: error: RECORD DEPENDING must reference a data-item
prog.cob:34: error: RECORD DEPENDING item 'RECORDSIZE3' should be defined in WORKING-STORAGE, LOCAL-STORAGE or LINKAGE SECTION
prog.cob:40: error: RECORD DEPENDING item 'RECORDSIZE4' should be defined in WORKING-STORAGE, LOCAL-STORAGE or LINKAGE SECTION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:866"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:872: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_file.at:872"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:20: error: 'RECORDSIZE' is not defined
prog.cob:26: error: RECORD DEPENDING must reference a data-item
prog.cob:34: warning: RECORD DEPENDING item 'RECORDSIZE3' should be defined in WORKING-STORAGE, LOCAL-STORAGE or LINKAGE SECTION
prog.cob:40: warning: RECORD DEPENDING item 'RECORDSIZE4' should be defined in WORKING-STORAGE, LOCAL-STORAGE or LINKAGE SECTION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:872"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_176
#AT_START_177
at_fn_group_banner 177 'syn_file.at:882' \
  "DECLARATIVES invalid procedure reference (1)" "   " 2
at_xfail=no
(
  $as_echo "177. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT GO-FILE   ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS LINE SEQUENTIAL.
       SELECT PERF-FILE ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD GO-FILE.
       01 GO-REC      PIC X(4).
       FD PERF-FILE.
       01 PERF-REC      PIC X(4).
       PROCEDURE        DIVISION.
       DECLARATIVES.
       G01 SECTION.
           USE AFTER ERROR PROCEDURE ON GO-FILE.
       G02.
           DISPLAY "OK"
           END-DISPLAY.
           GO TO GG02.
       P01 SECTION.
           USE AFTER ERROR PROCEDURE ON PERF-FILE.
       P02.
           DISPLAY "OK"
           END-DISPLAY.
      * programs may do this -> nothing happens there with PERF-FILE
           PERFORM PPOK.
      * programs should not do this
      * (the compiler currently cannot distinguish this)
           PERFORM PP02.
       END DECLARATIVES.
       GG01 SECTION.
       GG02.
           OPEN  INPUT GO-FILE.
           CLOSE GO-FILE.
       PP01 SECTION.
       PP02.
           OPEN  INPUT PERF-FILE.
           CLOSE PERF-FILE.
       PP03.
           DISPLAY 'LOG OUTPUT HERE'.
       PPOK.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:934: \$COMPILE_ONLY -Wno-dialect prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-dialect prog.cob" "syn_file.at:934"
( $at_check_trace; $COMPILE_ONLY -Wno-dialect 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/syn_file.at:934"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_file.at:936: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:936"
( $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 'G01':
prog.cob: in paragraph 'G02':
prog.cob:24: warning: 'GG02' is not in DECLARATIVES
prog.cob: in section 'P01':
prog.cob: in paragraph 'P02':
prog.cob:31: warning: 'PPOK' is not in DECLARATIVES
prog.cob:34: warning: 'PP02' is not in DECLARATIVES
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:936"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_file.at:946: \$COMPILE_ONLY -freference-out-of-declaratives=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -freference-out-of-declaratives=ok prog.cob" "syn_file.at:946"
( $at_check_trace; $COMPILE_ONLY -freference-out-of-declaratives=ok 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/syn_file.at:946"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_file.at:948: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_file.at:948"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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 'G01':
prog.cob: in paragraph 'G02':
prog.cob:24: error: 'GG02' is not in DECLARATIVES
prog.cob: in section 'P01':
prog.cob: in paragraph 'P02':
prog.cob:31: error: 'PPOK' is not in DECLARATIVES
prog.cob:34: error: 'PP02' is not in DECLARATIVES
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:948"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_file.at:958: \$COMPILE_ONLY -std=cobol2014 -frelax-syntax prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 -frelax-syntax prog.cob" "syn_file.at:958"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 -frelax-syntax 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 'G01':
prog.cob: in paragraph 'G02':
prog.cob:24: warning: 'GG02' is not in DECLARATIVES
prog.cob: in section 'P01':
prog.cob: in paragraph 'P02':
prog.cob:31: warning: 'PPOK' is not in DECLARATIVES
prog.cob:34: warning: 'PP02' is not in DECLARATIVES
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:958"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_177
#AT_START_178
at_fn_group_banner 178 'syn_file.at:971' \
  "DECLARATIVES invalid procedure reference (2)" "   " 2
at_xfail=no
(
  $as_echo "178. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
       DECLARATIVES.
       P01 SECTION.
           USE AFTER ERROR PROCEDURE ON TEST-FILE.
       P02.
           DISPLAY "OK"
           END-DISPLAY.
       END DECLARATIVES.
       PP01 SECTION.
       PP02.
           OPEN  INPUT TEST-FILE.
           CLOSE TEST-FILE.
           PERFORM P02.
           GO TO P02.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1003: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1003"
( $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 'PP01':
prog.cob: in paragraph 'PP02':
prog.cob:26: error: invalid reference to 'P02' (in DECLARATIVES)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1003"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_178
#AT_START_179
at_fn_group_banner 179 'syn_file.at:1012' \
  "EXTERNAL file" "                                  " 2
at_xfail=no
(
  $as_echo "179. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT my-file
               ASSIGN TO "somefile"
               ORGANIZATION IS SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD my-file EXTERNAL.
       01 my-record.
           03 my-record-data PIC X(80).

       PROCEDURE DIVISION.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1036: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1036"
( $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/syn_file.at:1036"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_179
#AT_START_180
at_fn_group_banner 180 'syn_file.at:1040' \
  "RECORDING MODE" "                                 " 2
at_xfail=no
(
  $as_echo "180. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN "f.dat" LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  f RECORDING MODE IS U.
       01  x PIC X.

       PROCEDURE DIVISION.
           OPEN INPUT f
           CLOSE f
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1063: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1063"
( $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:12: error: RECORDING MODE U or S can only be used with RECORD 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/syn_file.at:1063"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_180
#AT_START_181
at_fn_group_banner 181 'syn_file.at:1069' \
  "CODE-SET clause" "                                " 2
at_xfail=no
(
  $as_echo "181. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           ALPHABET A IS ASCII.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f, ASSIGN "f.dat", LINE SEQUENTIAL.
           SELECT g, ASSIGN "g.dat", LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  f CODE-SET A.
       01  f-rec PIC X(10).

       FD  g CODE-SET foo.
       01  g-rec PIC X(10).
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1095: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1095"
( $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:17: warning: ignoring CODE-SET 'A'
prog.cob:20: error: 'foo' is not defined
prog.cob:20: error: 'foo' is not an alphabet-name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1095"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_181
#AT_START_182
at_fn_group_banner 182 'syn_file.at:1103' \
  "CODE-SET FOR clause" "                            " 2
at_xfail=no
(
  $as_echo "182. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           ALPHABET A IS EBCDIC.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN "f.dat" LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  f CODE-SET A FOR x, y, z.
       01  x.
           03  y PIC X(10).
       01  x-2.
           03  z PIC X(10).
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1128: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1128"
( $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: warning: FOR sub-records is not implemented
prog.cob:16: warning: CODE-SET is not implemented
prog.cob:16: error: FOR item 'x' is a record
prog.cob:16: error: FOR item 'z' is in different record 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/syn_file.at:1128"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_182
#AT_START_183
at_fn_group_banner 183 'syn_file.at:1137' \
  "WRITE / REWRITE FROM clause and FILE" "           " 2
at_xfail=no
(
  $as_echo "183. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       ENVIRONMENT    DIVISION.
       INPUT-OUTPUT   SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN TO 'FILE-TEST'
                        ORGANIZATION IS INDEXED
                        ACCESS MODE  IS DYNAMIC
                        RECORD KEY   IS TEST-P1.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01  TEST-REC.
           05 TEST-P1   PIC X(4).
           05 TEST-P2   PIC S9(4) COMP.
       WORKING-STORAGE  SECTION.
       01  SOME-REC     PIC X(04).
           88  SOME-VAL VALUE 'ABCD'.
       PROCEDURE        DIVISION.
           OPEN  I-O TEST-FILE.
           WRITE   SOME-VAL.
           WRITE   SOME-REC.
           WRITE   TEST-REC.
           WRITE   TEST-REC FROM SOME-REC.
           WRITE   TEST-FILE.
           WRITE   FILE TEST-REC.
           WRITE   FILE TEST-FILE.
           WRITE   FILE TEST-FILE FROM TEST-REC.
           WRITE   FILE TEST-FILE FROM SOME-REC.
           REWRITE SOME-VAL.
           REWRITE SOME-REC.
           REWRITE TEST-REC.
           REWRITE TEST-REC FROM SOME-REC.
           REWRITE TEST-FILE.
           REWRITE FILE TEST-REC.
           REWRITE FILE TEST-FILE.
           REWRITE FILE TEST-FILE FROM TEST-REC.
           REWRITE FILE TEST-FILE FROM SOME-REC.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1183: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1183"
( $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:22: error: condition-name not allowed here: 'SOME-VAL'
prog.cob:23: error: WRITE subject does not refer to a record name
prog.cob:26: error: WRITE requires a record name as subject
prog.cob:27: error: 'TEST-REC' is not a file name
prog.cob:28: error: WRITE FILE requires a FROM clause
prog.cob:31: error: condition-name not allowed here: 'SOME-VAL'
prog.cob:32: error: REWRITE subject does not refer to a record name
prog.cob:35: error: REWRITE requires a record name as subject
prog.cob:36: error: 'TEST-REC' is not a file name
prog.cob:37: error: REWRITE FILE requires a FROM clause
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1183"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_183
#AT_START_184
at_fn_group_banner 184 'syn_file.at:1198' \
  "Clauses following invalid ACCESS clause" "        " 2
at_xfail=no
(
  $as_echo "184. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.

       ENVIRONMENT    DIVISION.
       INPUT-OUTPUT   SECTION.
       FILE-CONTROL.
           SELECT testfile
               ASSIGN TO filename
               ORGANIZATION RELATIVE
               ACCESS IS sequentia
               STATUS IS stat.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1215: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1215"
( $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: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
prog.cob:8: error: missing file description for FILE testfile
prog.cob:13: warning: variable 'filename' will be implicitly defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1215"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_184
#AT_START_185
at_fn_group_banner 185 'syn_file.at:1223' \
  "RELATIVE KEY type checks" "                       " 2
at_xfail=no
(
  $as_echo "185. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
            SELECT FILE1 ASSIGN DISK
            ORGANIZATION RELATIVE ACCESS MODE RANDOM
            RELATIVE KEY FILE1-KEY.
            SELECT FILE2 ASSIGN DISK
            ORGANIZATION RELATIVE ACCESS MODE RANDOM
            RELATIVE KEY FILE2-KEY.
            SELECT FILE3 ASSIGN DISK
            ORGANIZATION RELATIVE ACCESS MODE RANDOM
            RELATIVE KEY FILE3-KEY.
            SELECT FILE4 ASSIGN DISK
            ORGANIZATION RELATIVE ACCESS MODE RANDOM
            RELATIVE KEY FILE4-KEY.
            SELECT FILE5 ASSIGN DISK
            ORGANIZATION RELATIVE ACCESS MODE RANDOM
            RELATIVE KEY FILE5-KEY.
       DATA DIVISION.
       FILE SECTION.
       FD FILE1.
       01  FILE1-REC PIC X.
       FD FILE2.
       01  FILE2-REC PIC X.
       FD FILE3.
       01  FILE3-REC PIC X.
       FD FILE4.
       01  FILE4-REC.
          05  FLD1      PIC X.
          05  FILE4-KEY PIC 999.
       FD FILE5.
       01  FILE5-REC PIC X.
       WORKING-STORAGE SECTION.
       77  FILE1-KEY PIC XXXX.
       01  FILE2-KEY.
           05  F2-KEY PIC 9(5).
       01  F3-KEY.
           05  FILE3-KEY PIC 9(5) OCCURS 2 TIMES.
       77  FILE5-KEY PIC 999V9.
       PROCEDURE DIVISION.
            STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1272: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1272"
( $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: file FILE1: RELATIVE KEY FILE1-KEY is not numeric
prog.cob:12: error: file FILE2: RELATIVE KEY FILE2-KEY is not numeric
prog.cob:15: error: file FILE3: RELATIVE KEY FILE3-KEY cannot have OCCURS
prog.cob:18: error: RELATIVE KEY FILE4-KEY cannot be in file record belonging to FILE4
prog.cob:21: error: file FILE5: RELATIVE KEY FILE5-KEY must be integer
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1272"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_185
#AT_START_186
at_fn_group_banner 186 'syn_file.at:1283' \
  "Mismatched KEY clause" "                          " 2
at_xfail=no
(
  $as_echo "186. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
            SELECT file-1 ASSIGN DISK,
                INDEXED, RELATIVE KEY file-1-key.
            SELECT file-2 ASSIGN DISK,
                RELATIVE, RECORD KEY file-2-key.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1298: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1298"
( $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: cannot use RELATIVE KEY clause on INDEXED files
prog.cob:10: error: cannot use RECORD KEY clause on RELATIVE files
prog.cob:7: error: missing file description for FILE file-1
prog.cob:8: error: 'file-1-key' is not defined
prog.cob:9: error: missing file description for FILE file-2
prog.cob:10: error: 'file-2-key' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1298"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_186
#AT_START_187
at_fn_group_banner 187 'syn_file.at:1310' \
  "RECORD DELIMITER" "                               " 2
at_xfail=no
(
  $as_echo "187. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           *> Valid.
           SELECT good-1 ASSIGN "a"
               RECORD DELIMITER LINE-SEQUENTIAL.

           SELECT good-2 ASSIGN "a"
               SEQUENTIAL
               RECORD DELIMITER LINE-SEQUENTIAL.

           SELECT good-3 ASSIGN "a"
               RECORD DELIMITER LINE-SEQUENTIAL
               LINE SEQUENTIAL.

           SELECT good-4 ASSIGN "a"
               RECORD DELIMITER BINARY-SEQUENTIAL.

           *> Warning.
           SELECT ok-i-guess-1 ASSIGN "a"
               RECORD DELIMITER STANDARD-1.

           SELECT ok-i-guess-2 ASSIGN "a"
               RECORD DELIMITER THE-END-OF-THE-WORLD.

           *> Not valid.
           SELECT bad-1 ASSIGN "a"
               RECORD DELIMITER LINE-SEQUENTIAL
               INDEXED
               RECORD KEY bad-1-rec.

           SELECT bad-2 ASSIGN "a"
               INDEXED
               RECORD KEY bad-2-rec
               RECORD DELIMITER LINE-SEQUENTIAL.

           SELECT bad-3 ASSIGN "a"
               LINE SEQUENTIAL
               RECORD DELIMITER BINARY-SEQUENTIAL.

           SELECT bad-4 ASSIGN "a"
               LINE SEQUENTIAL
               RECORD DELIMITER STANDARD-1.

           SELECT bad-5 ASSIGN "a"
               RECORD DELIMITER BINARY-SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  good-1.
       01  good-1-rec PIC 9.
       01  good-1-rec-2 PIC 99.

       FD  good-2 RECORD VARYING FROM 1 TO 5 CHARACTERS.
       01  good-2-rec PIC 9.

       FD  good-3.
       01  good-3-rec PIC 9.
       01  good-3-rec-2 PIC 99.

       FD  good-4 RECORD CONTAINS 1 TO 5 CHARACTERS.
       01  good-4-rec PIC 9.

       FD  ok-i-guess-1.
       01  ok-i-guess-1-rec PIC 9.
       01  ok-i-guess-1-rec-2 PIC 99.

       FD  ok-i-guess-2.
       01  ok-i-guess-2-rec PIC 9.
       01  ok-i-guess-2-rec-2 PIC 99.

       FD  bad-1.
       01  bad-1-rec PIC 9.

       FD  bad-2.
       01  bad-2-rec PIC 9.

       FD  bad-3.
       01  bad-3-rec PIC 9.

       FD  bad-4.
       01  bad-4-rec PIC 9.

       FD  bad-5 RECORD CONTAINS 1 CHARACTERS.
       01  bad-5-rec PIC 9.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1404: \$COMPILE_ONLY -frecord-delim-with-fixed-recs=warning prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frecord-delim-with-fixed-recs=warning prog.cob" "syn_file.at:1404"
( $at_check_trace; $COMPILE_ONLY -frecord-delim-with-fixed-recs=warning prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:25: warning: RECORD DELIMITER STANDARD-1 ignored
prog.cob:28: warning: RECORD DELIMITER THE-END-OF-THE-WORLD not recognized; will be ignored
prog.cob:33: error: ORGANIZATION INDEXED is incompatible with RECORD DELIMITER
prog.cob:39: error: RECORD DELIMITER LINE-SEQUENTIAL only allowed with (LINE) SEQUENTIAL files
prog.cob:36: error: RECORD clause is invalid for file 'bad-2' (file type)
prog.cob:43: error: RECORD DELIMITER BINARY-SEQUENTIAL only allowed with SEQUENTIAL files
prog.cob:47: error: RECORD DELIMITER STANDARD-1 only allowed with SEQUENTIAL files
prog.cob:76: warning: RECORD DELIMITER clause on file with fixed-length records used
prog.cob:88: warning: RECORD DELIMITER clause on file with fixed-length records used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1404"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_187
#AT_START_188
at_fn_group_banner 188 'syn_file.at:1418' \
  "FILE STATUS" "                                    " 2
at_xfail=no
(
  $as_echo "188. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN "f.txt" FILE STATUS fs.
           SELECT g ASSIGN "g.txt" FILE STATUS gs.
           SELECT h ASSIGN "h.txt" FILE STATUS hs.
           SELECT j ASSIGN "j.txt" FILE STATUS js.
           SELECT k ASSIGN "k.txt" FILE STATUS ks.
           SELECT l ASSIGN "l.txt" FILE STATUS ls.
           SELECT m ASSIGN "m.txt" FILE STATUS ms.
           SELECT n ASSIGN "n.txt" FILE STATUS ns.
           SELECT o ASSIGN "o.txt" FILE STATUS os.
           SELECT p ASSIGN "p.txt" FILE STATUS ps.
           SELECT q ASSIGN "q.txt" FILE STATUS non-existent.
           SELECT r ASSIGN "r.txt" FILE STATUS rs.

       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  hs    PIC XX.
       FD  g.
       01  g-rec PIC X.
       FD  h.
       01  h-rec PIC X.
       FD  j.
       01  j-rec PIC X.
       FD  k.
       01  k-rec PIC X.
       FD  l.
       01  l-rec PIC X.
       FD  m.
       01  m-rec PIC X.
       FD  n.
       01  n-rec PIC X.
       FD  o.
       01  o-rec PIC X.
       FD  p.
       01  p-rec PIC X.
       FD  q.
       01  q-rec PIC X.
       FD  r.
       01  r-rec PIC X.

       WORKING-STORAGE SECTION.
       *> Valid
       01  fs          PIC XX.

       LOCAL-STORAGE   SECTION.
       *> Valid, but warning
       01  gs          PIC 99.

       *> Invalid
       01  js          PIC N.
       01  ks          PIC XX COMP-X.
       01  ls          PIC V99.
       01  ms          PIC 99PP.
       01  ns          PIC XXX.
       01  x.
           03  y       PIC 99.
           03  z       PIC XX OCCURS 1 TO 10 TIMES DEPENDING ON y.
           03  os      PIC XX.
               88  ps  VALUE "00".
           03  z2      PIC XX OCCURS 1 TO 10 TIMES DEPENDING ON y.

       01  rs          CONSTANT "00".

       PROCEDURE DIVISION.
           CONTINUE
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1497: \$COMPILE_ONLY -fodoslide prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fodoslide prog.cob" "syn_file.at:1497"
( $at_check_trace; $COMPILE_ONLY -fodoslide prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:57: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
prog.cob:18: error: 'non-existent' is not defined
prog.cob:9: warning: FILE STATUS 'gs' is a numeric field, but I-O status codes are not numeric in general
prog.cob:10: error: FILE STATUS 'hs' must be in WORKING-STORAGE, LOCAL-STORAGE or LINKAGE
prog.cob:11: error: FILE STATUS 'js' must be alphanumeric or numeric field
prog.cob:12: warning: FILE STATUS 'ks' is a numeric field, but I-O status codes are not numeric in general
prog.cob:12: error: FILE STATUS 'ks' must be USAGE DISPLAY
prog.cob:13: error: FILE STATUS 'ls' may not be a decimal or have a PIC with a P
prog.cob:13: warning: FILE STATUS 'ls' is a numeric field, but I-O status codes are not numeric in general
prog.cob:14: error: FILE STATUS 'ms' may not be a decimal or have a PIC with a P
prog.cob:14: warning: FILE STATUS 'ms' is a numeric field, but I-O status codes are not numeric in general
prog.cob:15: error: FILE STATUS 'ns' must be 2 characters long
prog.cob:16: error: FILE STATUS 'os' may not be located after an OCCURS DEPENDING field
prog.cob:17: error: FILE STATUS 'ps' must be alphanumeric or numeric field
prog.cob:19: error: FILE STATUS 'rs' must be alphanumeric or numeric field
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1497"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_188
#AT_START_189
at_fn_group_banner 189 'syn_file.at:1517' \
  "VSAM status" "                                    " 2
at_xfail=no
(
  $as_echo "189. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT file1 ASSIGN TO 'FILE-TEST'
                        ORGANIZATION IS INDEXED
                        ACCESS MODE  IS DYNAMIC
                        RECORD KEY   IS file1-key
                        STATUS       IS STATUS-1.
           SELECT file2 ASSIGN TO 'FILE-TEST'
                        ORGANIZATION IS INDEXED
                        ACCESS MODE  IS DYNAMIC
                        RECORD KEY   IS file2-key
                        STATUS       IS STATUS-1, STATUS-2.
       DATA DIVISION.
       FILE SECTION.
       FD  FILE1.
       01  FILE1-REC.
           05 FILE1-KEY PIC X.
       FD  FILE2.
       01  FILE2-REC.
           05 FILE2-KEY PIC 9.
           05 FILE2-DAT PIC X.
       WORKING-STORAGE SECTION.
       77  STATUS-1 PIC X(02).
       77  STATUS-2 PIC X(06).
       PROCEDURE DIVISION.
            STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1552: \$COMPILE_ONLY -std=ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_file.at:1552"
( $at_check_trace; $COMPILE_ONLY -std=ibm 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/syn_file.at:1552"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:1553: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1553"
( $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: warning: VSAM status ignored
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:1553"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:1556: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_file.at:1556"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: VSAM status does not conform to COBOL 2014
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1556"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_189
#AT_START_190
at_fn_group_banner 190 'syn_file.at:1563' \
  "INDEXED file PASSWORD clause" "                   " 2
at_xfail=no
(
  $as_echo "190. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT file1 ASSIGN TO 'FILE-TEST'
                        ORGANIZATION  IS INDEXED
                        ACCESS MODE   IS DYNAMIC
                        RECORD KEY    IS file1-key PASSWORD IS PASS1
                        STATUS        IS FSTAT.
           SELECT file2 ASSIGN TO 'FILE-TEST-EXT'
                        ORGANIZATION  IS INDEXED
                        ACCESS MODE   IS DYNAMIC
                        RECORD KEY    IS file2-key PASSWORD IS PASS2
                        ALTERNATE RECORD KEY IS NOTHEREKEY
                           SOURCE     IS file2-dat file2-key
                           PASSWORD   IS PASS-EXT
                        STATUS        IS FSTAT.
       DATA DIVISION.
       FILE SECTION.
       FD  FILE1.
       01  FILE1-REC.
           05 FILE1-KEY PIC X.
       FD  FILE2  EXTERNAL.
       01  FILE2-REC.
           05 FILE2-KEY PIC 9.
           05 FILE2-DAT PIC X.
       WORKING-STORAGE SECTION.
       77  FSTAT       PIC X(02).
      *> note: IBM specifies PASSWORDs are cut at / space filled to 8 bytes
       77  PASS1       PIC X(08).
       77  PASS2       PIC X(10).
       77  PASS-EXT    PIC X(04) EXTERNAL.
       PROCEDURE DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1604: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1604"
( $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: warning: PASSWORD clause is not implemented
prog.cob:15: warning: PASSWORD clause is not implemented
prog.cob:18: warning: PASSWORD clause is not implemented
prog.cob:15: error: PASSWORD 'PASS2' for EXTERNAL file 'file2' must have EXTERNAL attribute
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1604"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_190
#AT_START_191
at_fn_group_banner 191 'syn_file.at:1614' \
  "RECORD clause equal limits" "                     " 2
at_xfail=no
(
  $as_echo "191. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f1 ASSIGN "f1".
           SELECT f2 ASSIGN "f2".
           SELECT f3 ASSIGN "f3".
           SELECT f4 ASSIGN "f4".

       DATA DIVISION.
       FILE SECTION.
       FD  f1 RECORD VARYING.
       01  f1-rec-1 PIC X.
       01  f1-rec-2 PIC 9.

       FD  f2 RECORD VARYING 1 TO 1.
       01  f2-rec PIC X.

       FD  f3 RECORD 1 TO 1.
       01  f3-rec PIC X.

       FD  f4 RECORD IS VARYING IN SIZE.
       01  f4-rec-1 PIC X.
       01  f4-rec-2 PIC 99.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1646: \$COMPILE_ONLY -Wadditional prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wadditional prog.cob" "syn_file.at:1646"
( $at_check_trace; $COMPILE_ONLY -Wadditional prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:15: warning: RECORD VARYING specified without limits, but implied limits are equal
prog.cob:19: error: RECORD clause invalid
prog.cob:22: error: RECORD clause invalid
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1646"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_191
#AT_START_192
at_fn_group_banner 192 'syn_file.at:1654' \
  "FILE ... FROM literal" "                          " 2
at_xfail=no
(
  $as_echo "192. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN TO "ssad".

       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  f-rec PIC 999999.

       WORKING-STORAGE SECTION.
       01  num PIC 9(6) VALUE 123456.

       PROCEDURE DIVISION.
           OPEN OUTPUT f
           WRITE FILE f FROM zero
           WRITE FILE f FROM 0
           WRITE FILE f FROM "abc"
           REWRITE FILE f FROM zero
           REWRITE FILE f FROM 0
           REWRITE FILE f FROM "abc"
           CLOSE f
           .
_ATEOF


# FIXME: the references to ZERO should actually show one less

{ set +x
$as_echo "$at_srcdir/syn_file.at:1688: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1688"
( $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:21: error: figurative constants not allowed in FROM clause
prog.cob:21: error: literal in FROM clause must be alphanumeric, national or boolean
prog.cob:22: warning: numeric value is expected
prog.cob:13: note: 'f-rec' defined here as PIC 999999
prog.cob:24: error: figurative constants not allowed in FROM clause
prog.cob:24: error: literal in FROM clause must be alphanumeric, national or boolean
prog.cob:25: warning: numeric value is expected
prog.cob:13: note: 'f-rec' defined here as PIC 999999
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1688"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:1698: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_file.at:1698"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:22: warning: numeric value is expected
prog.cob:13: note: 'f-rec' defined here as PIC 999999
prog.cob:25: warning: numeric value is expected
prog.cob:13: note: 'f-rec' defined here as PIC 999999
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:1698"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:1704: \$COMPILE_ONLY -std=mf-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_file.at:1704"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:22: warning: source is non-numeric - substituting zero
prog.cob:25: warning: source is non-numeric - substituting zero
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:1704"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_192
#AT_START_193
at_fn_group_banner 193 'syn_file.at:1713' \
  "WRITE / REWRITE on LINE SEQUENTIAL files" "       " 2
at_xfail=no
(
  $as_echo "193. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: this should be depending on a compilation flag,
#        see reportwriter branch for this feature

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN TO "ssad" LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  f-rec PIC X(05).

       PROCEDURE DIVISION.
           OPEN OUTPUT f
           WRITE FILE f FROM "abc"
           REWRITE FILE f FROM "abc"
           CLOSE f
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1741: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1741"
( $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:18: error: REWRITE not allowed on LINE 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/syn_file.at:1741"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_193
#AT_START_194
at_fn_group_banner 194 'syn_file.at:1748' \
  "WRITE / REWRITE on REPORT files" "                " 2
at_xfail=no
(
  $as_echo "194. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN TO "ssad" LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  f REPORT f-rep.
       01  f-rec PIC X(05).

       REPORT SECTION.
       RD  f-rep.
       01  f-rep-line TYPE DE PIC XXX.

       PROCEDURE DIVISION.
           OPEN OUTPUT f
           WRITE FILE f FROM "abc"
           REWRITE FILE f FROM "abc"
           CLOSE f
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1777: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1777"
( $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:21: error: WRITE not allowed on REPORT files
prog.cob:22: error: REWRITE not allowed on REPORT files
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1777"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_194
#AT_START_195
at_fn_group_banner 195 'syn_file.at:1785' \
  "SELECT without fd-name" "                         " 2
at_xfail=no
(
  $as_echo "195. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT ASSIGN "asd".
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1798: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1798"
( $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: syntax error, unexpected ASSIGN, expecting Identifier
prog.cob:8: error: syntax error, unexpected Literal
prog.cob:8: error: missing file description for FILE SELECT on line 8
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1798"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_195
#AT_START_196
at_fn_group_banner 196 'syn_file.at:1805' \
  "Undeclared FILE-ID variable" "                    " 2
at_xfail=no
(
  $as_echo "196. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT file1 ASSIGN DISK.
       DATA DIVISION.
       FILE SECTION.
       FD  file1 VALUE OF FILE-ID fid-file1.
       01  file1-rec PIC X.
       PROCEDURE DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1823: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1823"
( $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: warning: VALUE OF is obsolete in GnuCOBOL
prog.cob:12: warning: variable 'fid-file1' 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/syn_file.at:1823"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_196
#AT_START_197
at_fn_group_banner 197 'syn_file.at:1830' \
  "OPEN I-O with LINE SEQUENTIAL" "                  " 2
at_xfail=no
(
  $as_echo "197. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT file1 ASSIGN DISK ORGANIZATION LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD  file1.
       01  file1-rec PIC X.
       PROCEDURE DIVISION.
           OPEN I-O file1.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1848: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1848"
( $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: OPEN I-O not allowed on LINE 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/syn_file.at:1848"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_197
#AT_START_198
at_fn_group_banner 198 'syn_file.at:1855' \
  "ACCESS RANDOM with ORG SEQUENTIAL" "              " 2
at_xfail=no
(
  $as_echo "198. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT file1 ASSIGN DISK ORGANIZATION SEQUENTIAL
               ACCESS RANDOM.
       DATA DIVISION.
       FILE SECTION.
       FD  file1.
       01  file1-rec PIC X.
       PROCEDURE DIVISION.
           STOP RUN.
_ATEOF


# TO-DO: Improve error message - say ACCESS RANDOM is incompatible with ORGANIZATION SEQUENTIAL.
{ set +x
$as_echo "$at_srcdir/syn_file.at:1875: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1875"
( $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: ORGANIZATION clause is invalid for file 'file1'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:1875"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_198
#AT_START_199
at_fn_group_banner 199 'syn_file.at:1882' \
  "ALTERNATE RECORD KEY SUPPRESS WHEN" "             " 2
at_xfail=no
(
  $as_echo "199. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE
              ASSIGN        "TESTFILE"
              ACCESS        DYNAMIC
              ORGANIZATION  INDEXED
              RECORD KEY    TESTKEY-P1
              ALTERNATE RECORD KEY TESTKEY-P2
                 WITH DUPLICATES
                 SUPPRESS WHEN ZEROES
              ALTERNATE RECORD KEY TESTKEY-P3
                 WITH DUPLICATES
                 SUPPRESS WHEN SPACES
              ALTERNATE RECORD KEY TESTKEY-P4
                 WITH DUPLICATES
                 SUPPRESS WHEN ALL "A"
              ALTERNATE RECORD KEY TESTKEY-P5
                 WITH DUPLICATES
                 SUPPRESS WHEN ALL SPACES
              .
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE.
       01  TEST-REC.
           03  TESTKEY-P1 PIC X(4).
           03  TESTKEY-P2 PIC 9(4).
           03  TESTDATA   PIC X(4).
           03  TESTKEY-P3 PIC X(4).
           03  TESTKEY-P4 PIC X(4).
           03  TESTKEY-P5 PIC X(4).
       PROCEDURE DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1923: \$COMPILE_ONLY -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf prog.cob" "syn_file.at:1923"
( $at_check_trace; $COMPILE_ONLY -std=mf 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/syn_file.at:1923"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_199
#AT_START_200
at_fn_group_banner 200 'syn_file.at:1927' \
  "RECORD definition with SOURCE IS / =" "           " 2
at_xfail=no
(
  $as_echo "200. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE1
              ASSIGN         "TESTFILE"
              ACCESS         DYNAMIC
              ORGANIZATION   INDEXED
              RECORD KEY     TESTKEY-P1 OF TEST-REC1
              ALTERNATE RECORD KEY
                 TEST1KEY2 = TESTKEY-P2 OF TEST-REC1,
                             TESTKEY-P3 OF TEST-REC1
                 WITH DUPLICATES
              .
       SELECT TEST-FILE2
              ASSIGN         "TESTFILE"
              ACCESS         DYNAMIC
              ORGANIZATION   INDEXED
              RECORD KEY     TESTKEY-P1 OF TEST-REC2
              ALTERNATE RECORD KEY
                 TEST2KEY2 SOURCE IS TESTKEY-P2 OF TEST-REC2,
                                     TESTKEY-P3 OF TEST-REC2
                 WITH DUPLICATES
                 .
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE1.
       01  TEST-REC1.
           03  TESTKEY-P1 PIC X(4).
           03  TESTKEY-P2 PIC 9(4).
           03  TESTDATA   PIC X(4).
           03  TESTKEY-P3 PIC X(4).
       FD  TEST-FILE2.
       01  TEST-REC2.
           03  TESTKEY-P1 PIC X(4).
           03  TESTKEY-P2 PIC 9(4).
           03  TESTDATA   PIC X(4).
           03  TESTKEY-P3 PIC X(4).
       PROCEDURE DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:1974: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:1974"
( $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/syn_file.at:1974"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_200
#AT_START_201
at_fn_group_banner 201 'syn_file.at:1978' \
  "ALTERNATE RECORD definition WITH NO DUPLICATES" " " 2
at_xfail=yes
(
  $as_echo "201. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE
              ASSIGN        "TESTFILE"
              ACCESS        DYNAMIC
              ORGANIZATION  INDEXED
              RECORD KEY    TESTKEY1
              ALTERNATE RECORD KEY TESTKEY2
                               WITH DUPLICATES
              ALTERNATE RECORD KEY TESTKEY3
                               WITH NO DUPLICATES
              .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:2001: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:2001"
( $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:15: error: non-standard 'NO DUPLICATES'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:2001"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:2004: \$COMPILE_ONLY -frelax-syntax prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax prog.cob" "syn_file.at:2004"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax 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/syn_file.at:2004"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_201
#AT_START_202
at_fn_group_banner 202 'syn_file.at:2008' \
  "ALTERNATE RECORD definition omitting RECORD" "    " 2
at_xfail=yes
(
  $as_echo "202. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE
              ASSIGN        "TESTFILE"
              ACCESS        DYNAMIC
              ORGANIZATION  INDEXED
              RECORD     KEY  TESTKEY1
              ALTERNATE  KEY  TESTKEY2
              .
       PROCEDURE DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:2030: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:2030"
( $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:12: error: 'RECORD' is mandatory here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:2030"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:2033: \$COMPILE_ONLY -frelax-syntax prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax prog.cob" "syn_file.at:2033"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax 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/syn_file.at:2033"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_202
#AT_START_203
at_fn_group_banner 203 'syn_file.at:2037' \
  "SELECT/OPEN syntax extensions" "                  " 2
at_xfail=no
(
  $as_echo "203. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: split tests, possibly add dialect configuration,
#        add checks for "mutually exclusive" and ORGANIZATION

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE1
              ASSIGN        "TESTFILE1"
      *>      WITH ENCRYPTION    shift/reduce conflict ?
              ORGANIZATION  INDEXED
              ACCESS        DYNAMIC
              RECORD KEY    TESTKEY-1P1
                 WITH DUPLICATES
              ALTERNATE RECORD KEY TESTKEY-1P2
                 WITH NO DUPLICATES
              LOCK EXCLUSIVE MASS-UPDATE
              .
       SELECT TEST-FILE2
              ASSIGN        "TESTFILE2"
      *>      ENCRYPTION         shift/reduce conflict ?
              ORGANIZATION  INDEXED
              ACCESS        DYNAMIC
              RECORD KEY    TESTKEY-2P1
                 WITH NO DUPLICATES
              ALTERNATE RECORD KEY TESTKEY-2P2
                 WITH DUPLICATES
              .
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE1.
       01  TEST-REC1.
           03  TESTKEY-1P1 PIC X(4).
           03  TESTKEY-1P2 PIC 9(4).
           03  ENCRYPTION  PIC X(4).
       FD  TEST-FILE2.
       01  TEST-REC2.
           03  TESTKEY-2P1 PIC X(4).
           03  ALLOWING    PIC X(4).
           03  TESTKEY-2P2 PIC 9(4).
       PROCEDURE DIVISION.
           OPEN EXCLUSIVE INPUT TEST-FILE2
           CLOSE TEST-FILE2
           OPEN I-O TEST-FILE1 TEST-FILE2 ALLOWING UPDATERS
           CLOSE TEST-FILE1
           OPEN I-O TEST-FILE1 ALLOWING UPDATERS
           CLOSE TEST-FILE1
           CLOSE TEST-FILE1
           OPEN I-O TEST-FILE1 ALLOWING READERS
           CLOSE TEST-FILE1
           CLOSE TEST-FILE1
           OPEN I-O TEST-FILE1 ALLOWING WRITERS
           CLOSE TEST-FILE1
           CLOSE TEST-FILE1
           OPEN I-O TEST-FILE1 ALLOWING ALL
           CLOSE TEST-FILE1
           CLOSE TEST-FILE1
           OPEN I-O TEST-FILE1 ALLOWING NO
           CLOSE TEST-FILE1
           OPEN I-O TEST-FILE1 ALLOWING NO OTHERS
           CLOSE TEST-FILE1
           OPEN I-O TEST-FILE1 FOR LOCK
           CLOSE TEST-FILE1
           OPEN I-O TEST-FILE1 LOCK
           CLOSE TEST-FILE1
           OPEN I-O TEST-FILE1 BULK-ADDITION
           CLOSE TEST-FILE1
           OPEN I-O TEST-FILE1 MASS-UPDATE
           CLOSE TEST-FILE1
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:2115: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:2115"
( $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: warning: DUPLICATES for primary keys is not implemented
prog.cob:16: warning: WITH MASS-UPDATE is not implemented
prog.cob:65: warning: WITH BULK-ADDITION is not implemented
prog.cob:67: warning: WITH MASS-UPDATE is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_file.at:2115"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_file.at:2121: \$COMPILE_ONLY -std=acu-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_file.at:2121"
( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:13: warning: DUPLICATES for primary keys is not implemented
prog.cob:16: warning: WITH MASS-UPDATE is not implemented
prog.cob:34: error: syntax error, unexpected ENCRYPTION
prog.cob:38: error: syntax error, unexpected ALLOWING
prog.cob:65: warning: WITH BULK-ADDITION is not implemented
prog.cob:67: warning: WITH MASS-UPDATE is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:2121"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_203
#AT_START_204
at_fn_group_banner 204 'syn_file.at:2132' \
  "GLOBAL FD nested progam" "                        " 2
at_xfail=no
(
  $as_echo "204. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN "foo.dat"
               ORGANIZATION INDEXED
               RECORD KEY f-key.

       DATA DIVISION.
       FILE SECTION.
       FD  f                                   GLOBAL.
       01  f-rec                               GLOBAL.
           03  f-key                           PIC 9.

       PROCEDURE DIVISION.
           CALL "output-statement".

       IDENTIFICATION DIVISION.
       PROGRAM-ID. output-statement.

       PROCEDURE DIVISION.
           WRITE f-rec.
           END PROGRAM output-statement.
       END PROGRAM prog.
_ATEOF


# note: we actually want to check codegen -> C compilation here
{ set +x
$as_echo "$at_srcdir/syn_file.at:2165: \$COMPILE -std=cobol2002 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=cobol2002 prog.cob" "syn_file.at:2165"
( $at_check_trace; $COMPILE -std=cobol2002 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/syn_file.at:2165"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_204
#AT_START_205
at_fn_group_banner 205 'syn_file.at:2170' \
  "Invalid file name in SELECT" "                    " 2
at_xfail=no
(
  $as_echo "205. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. HELLO.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT input ASSIGN "in.txt".

       DATA DIVISION.
       FILE SECTION.
       FD input.
       01 input-rec PIC X.

       PROCEDURE DIVISION.
           CONTINUE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_file.at:2192: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_file.at:2192"
( $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: syntax error, unexpected INPUT, expecting Identifier
prog.cob:12: error: syntax error, unexpected INPUT, expecting Identifier
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_file.at:2192"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_205
#AT_START_206
at_fn_group_banner 206 'syn_reportwriter.at:23' \
  "REPORT error/warning" "                           " 2
at_xfail=no
(
  $as_echo "206. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           SELECT TRANSACTION-DATA
           ASSIGN TO EXTERNAL DATAIN
           ORGANIZATION IS LINE SEQUENTIAL.

           SELECT REPORT-FILE
           ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.

       DATA             DIVISION.
       FILE             SECTION.
       FD TRANSACTION-DATA.
       01 TRANSACTION-RECORD.
          03 TR-CUSTOMER-NUMBER     PIC 9(04).
          03 FILLER                 PIC X(01).
          03 TR-CUSTOMER-NAME       PIC X(16).
          03 FILLER                 PIC X(01).
          03 TR-ITEM-NUMBER         PIC 9(05).
          03 FILLER                 REDEFINES TR-ITEM-NUMBER.
             05 TR-ITEM-DEPARTMENT  PIC 9(01).
             05 FILLER              PIC 9(04).
          03 FILLER                 PIC X(01).
          03 TR-ITEM-COST           PIC 9(03)V99.
          03 FILLER                 PIC X(47).
       FD REPORT-FILE
          REPORT IS NO-REPORT.
       WORKING-STORAGE  SECTION.
       01 END-OF-FILE-SWITCH        PIC X(1)    VALUE 'N'.
          88 END-OF-FILE            VALUE 'Y'.
          88 GOFOREVER              VALUE 'X'.

       REPORT           SECTION.
       RD NO-REPORT
          PAGE LIMIT IS 66 LINES
          HEADING 1
          FIRST DETAIL 5
          LAST DETAIL 58.

       01 PAGE-HEAD-GROUP TYPE PAGE HEADING.
          02 LINE 1.
             03 COLUMN 27   PIC X(41) VALUE
                'S A M P L E  R E P O R T'.
          02 LINE PLUS 2.
             03 COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
             03 COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
             03 COLUMN 30   PIC X(05) VALUE 'DEPT.'.
             03 COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
             03 COLUMN 51   PIC X(09) VALUE 'ITEM COST'.

       01 CHARGE-DETAIL TYPE DETAIL.
          02 LINE PLUS 1.
             03 COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
             03 COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
             03 COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
             03 COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
             03 COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.

       PROCEDURE        DIVISION.

           OPEN INPUT TRANSACTION-DATA,
                OUTPUT REPORT-FILE.

           INITIATE CUSTOMER-REPORT.

           READ TRANSACTION-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH
           END-READ.

           PERFORM UNTIL GOFOREVER
              GENERATE CHARGE-DETAIL
              READ TRANSACTION-DATA
                  AT END
                     EXIT PERFORM
              END-READ
           END-PERFORM.

           TERMINATE CUSTOMER-REPORT.

           CLOSE TRANSACTION-DATA,
                 REPORT-FILE.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_reportwriter.at:115: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:115"
( $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:67: error: 'CUSTOMER-REPORT' is not defined
prog.cob:67: error: 'CUSTOMER-REPORT' is not a valid report name
prog.cob:82: error: 'CUSTOMER-REPORT' is not a valid report name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:115"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_206
#AT_START_207
at_fn_group_banner 207 'syn_reportwriter.at:124' \
  "REPORT not positive integers in COL / LINE PLUS" "" 2
at_xfail=no
(
  $as_echo "207. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT out-file ASSIGN "blah.txt"
           ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  out-file REPORT rp.

       REPORT SECTION.
       RD  rp.
       01  rp-head TYPE PH.
          02  LINE NUMBER IS 1, COLUMNS 0 VALUE "Hello!".
          02  LINE IS 2,        COLS    2 VALUE "Hello!".
          02  LINE NUMBERS ARE PLUS 1.
              03 COLUMN NUMBER 01  PIC X(09) VALUE 'CUST. NO.'.
              03 COLUMN PLUS 0     PIC X(09) VALUE 'ITEM'.
          02  LINES ARE PLUS 2 COL NUMBERS PLUS 0.
              03 COLUMN 1.5        PIC X(09) VALUE 'CUST. NO.'.
              03 COLUMN + -10      PIC X(09) VALUE 'ITEM'.

       01 rp-detail TYPE DETAIL.
          02 LINE PLUS 1.
             03 COLUMN 03   PIC X(06) VALUE 'SAMPLE'.
             03 COLUMN +9   PIC X(06) VALUE 'REPORT'.

       PROCEDURE DIVISION.
           OPEN OUTPUT out-file.
           INITIATE rp.
           GENERATE rp-detail.
           TERMINATE rp.
           CLOSE out-file.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_reportwriter.at:167: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:167"
( $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:18: error: invalid COLUMN integer; must be > 0
prog.cob:24: error: unsigned integer value expected
prog.cob:25: error: unsigned integer value expected
prog.cob:30: error: unsigned integer value expected
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_207
#AT_START_208
at_fn_group_banner 208 'syn_reportwriter.at:177' \
  "Missing DETAIL line" "                            " 2
at_xfail=no
(
  $as_echo "208. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT out-file ASSIGN "blah.txt"
           ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  out-file REPORT rp.

       REPORT SECTION.
       RD  rp.
       01  rp-head TYPE PH.
          02  LINE 1, COL 2 VALUE "Hello!".
          02  LINE PLUS 1.
              03 COLUMN 01      PIC X(09) VALUE 'CUST. NO.'.
              03 COLUMN PLUS 20 PIC X(09) VALUE 'ITEM'.


       PROCEDURE DIVISION.
           OPEN OUTPUT out-file.
           INITIATE rp.
           GENERATE rp-detail.
           TERMINATE rp.
           CLOSE out-file.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_reportwriter.at:212: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:212"
( $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: warning: no DETAIL line defined in report rp
prog.cob:27: error: 'rp-detail' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:212"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_208
#AT_START_209
at_fn_group_banner 209 'syn_reportwriter.at:220' \
  "REPORT LINE PLUS ZERO" "                          " 2
at_xfail=no
(
  $as_echo "209. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT out-file ASSIGN "blah.txt"
           ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  out-file REPORT rp.

       REPORT SECTION.
       RD  rp.
       01  rp-head TYPE PH.
          02  LINE 1  COL 5 PIC X(20) VALUE "Hello World!".
          02  LINE 2  COL 4 PIC X(20) VALUE "Hello Goodbye!".
          02  LINE PLUS 0.
              03 COLUMN  1      PIC X(09) VALUE 'CUST. No.'.
              03 COLUMN PLUS 0  PIC X(09) VALUE 'ITEM'.
          02  LINE PLUS ZERO.
              03 COLUMN 1       PIC X(09) VALUE 'Cust. No.'.
              03 COLUMN + 10    PIC X(09) VALUE 'Item'.

       01 rp-detail TYPE DETAIL.
          02 LINE PLUS 1.
             03 COLUMN 03   PIC X(06) VALUE 'SAMPLE'.

       PROCEDURE DIVISION.
           OPEN OUTPUT out-file.
           INITIATE rp.
           GENERATE rp-detail.
           TERMINATE rp.
           CLOSE out-file.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_reportwriter.at:262: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:262"
( $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:20: warning: LINE PLUS 0 is not implemented
prog.cob:23: warning: LINE PLUS 0 is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_reportwriter.at:262"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_209
#AT_START_210
at_fn_group_banner 210 'syn_reportwriter.at:270' \
  "Incorrect REPORT NAME" "                          " 2
at_xfail=no
(
  $as_echo "210. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           SELECT TRANSACTION-DATA
           ASSIGN TO EXTERNAL DATAIN
           ORGANIZATION IS LINE SEQUENTIAL.

           SELECT REPORT-FILE
           ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.

       DATA             DIVISION.
       FILE             SECTION.
       FD TRANSACTION-DATA
          LABEL RECORDS ARE OMITTED
         BLOCK CONTAINS 0 RECORDS
         RECORD CONTAINS 80 CHARACTERS
         DATA RECORD IS TRANSACTION-RECORD.
       01 TRANSACTION-RECORD.
          03 TR-CUSTOMER-NUMBER     PIC 9(04).
          03 FILLER                 PIC X(01).
          03 TR-CUSTOMER-NAME       PIC X(16).
          03 FILLER                 PIC X(01).
          03 TR-ITEM-NUMBER         PIC 9(05).
          03 FILLER                 REDEFINES TR-ITEM-NUMBER.
             05 TR-ITEM-DEPARTMENT  PIC 9(01).
             05 FILLER              PIC 9(04).
          03 FILLER                 PIC X(01).
          03 TR-ITEM-COST           PIC 9(03)V99.
          03 FILLER                 PIC X(47).
       FD REPORT-FILE
          LABEL RECORDS ARE OMITTED
          REPORT IS NO-REPORT.
       WORKING-STORAGE  SECTION.
       01 END-OF-FILE-SWITCH        PIC X(1)    VALUE 'N'.
          88 END-OF-FILE            VALUE 'Y'.
          88 GOFOREVER              VALUE 'X'.

       REPORT           SECTION.
       RD SOME-REPORT
          PAGE LIMIT IS 66 LINES
          HEADING 1
          FIRST DETAIL 5
          LAST DETAIL 58.

       01 PAGE-HEAD-GROUP TYPE PAGE HEADING.
          02 LINE 1.
             03 COLUMN 27   PIC X(41) VALUE
                'S A M P L E  R E P O R T'.
          02 LINE PLUS 2.
             03 COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
             03 COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
             03 COLUMN 30   PIC X(05) VALUE 'DEPT.'.
             03 COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
             03 COLUMN 51   PIC X(09) VALUE 'ITEM COST'.

       01 CHARGE-DETAIL TYPE DETAIL.
          02 LINE PLUS 1.
             03 COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
             03 COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
             03 COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
             03 COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
             03 COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.

       PROCEDURE DIVISION.

           OPEN INPUT  TRANSACTION-DATA,
                OUTPUT REPORT-FILE.

           INITIATE CUSTOMER-REPORT.

           READ TRANSACTION-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH
           END-READ.

           PERFORM UNTIL GOFOREVER
              GENERATE CHARGE-DETAIL
              READ TRANSACTION-DATA
                  AT END
                     EXIT PERFORM
              END-READ
           END-PERFORM.

           TERMINATE CUSTOMER-REPORT.

           CLOSE TRANSACTION-DATA,
                 REPORT-FILE.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_reportwriter.at:367: \$COMPILE_ONLY -std=mf-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_reportwriter.at:367"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:17: warning: LABEL RECORDS is obsolete in Micro Focus COBOL
prog.cob:19: warning: RECORD clause ignored for LINE SEQUENTIAL
prog.cob:20: warning: DATA RECORDS is obsolete in Micro Focus COBOL
prog.cob:34: warning: LABEL RECORDS is obsolete in Micro Focus COBOL
prog.cob:42: error: 'SOME-REPORT' is not defined
prog.cob:42: error: 'SOME-REPORT' is not a valid report name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:367"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_reportwriter.at:376: \$COMPILE_ONLY -std=cobol2002 -fassign-ext-dyn=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2002 -fassign-ext-dyn=ok prog.cob" "syn_reportwriter.at:376"
( $at_check_trace; $COMPILE_ONLY -std=cobol2002 -fassign-ext-dyn=ok prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:17: error: syntax error, unexpected Identifier, expecting EXTERNAL or GLOBAL
prog.cob:34: error: syntax error, unexpected Identifier, expecting EXTERNAL or GLOBAL
prog.cob:36: error: RECORD description missing or invalid
prog.cob:42: error: 'SOME-REPORT' is not defined
prog.cob:42: error: 'SOME-REPORT' is not a valid report name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:376"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_210
#AT_START_211
at_fn_group_banner 211 'syn_reportwriter.at:387' \
  "REPORT with PLUS RIGHT/CENTER" "                  " 2
at_xfail=no
(
  $as_echo "211. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
               SELECT INPUT-FILE ASSIGN TO EXTERNAL STUDENT
                              ORGANIZATION IS LINE SEQUENTIAL.
               SELECT PRINT-FILE ASSIGN TO EXTERNAL
                              LINE ADVANCING REPORT1.

       DATA DIVISION.
       FILE SECTION.
       FD   INPUT-FILE.
       01   INPUT-REC.
               05  STUDENT-ID               PIC  9(5).
               05  STUDENT-NAME             PIC  X(20).
               05  MAJOR                    PIC  XXX.
               05  NUM-COURSES              PIC  9(6).

       FD   PRINT-FILE
             REPORT IS STUDENT-REPORT.

       WORKING-STORAGE SECTION.
       01   ARE-THERE-MORE-RECORDS       PIC  XXX   VALUE  "YES".

       REPORT SECTION.
       RD   STUDENT-REPORT
           PAGE LIMIT 30 LINES
           HEADING 1
           FIRST DETAIL 3
           LAST DETAIL 25
           FOOTING 28.
       01   HEADING-LINE
            TYPE PAGE HEADING LINE PLUS 1.
            05  COLUMN 1      PIC X(2)  VALUE "Ln".
            05  COLUMN 4      PIC X(6)  VALUE "--ID--".
            05  COLUMN 16     PIC X(20) VALUE "--------Name--------".
            05  COLUMN 39     PIC X(5)  VALUE "  Mjr".
            05  COLUMN 48     PIC XXX   VALUE "*-*".
            05  COLUMN 54     PIC X(5)  VALUE "+Num+".

       01   REPORT-LINE
            TYPE DETAIL LINE PLUS  1.
            05  COLUMN PLUS 1 PIC 9(2)
                  SOURCE LINE-COUNTER OF STUDENT-REPORT.
            05  COLUMN LEFT PLUS 1   PIC Z(5)9 SOURCE STUDENT-ID.
            05  COLUMN CENTER 25     PIC X(20) SOURCE STUDENT-NAME.
            05  COLUMN RIGHT  43     PIC X(5)  SOURCE MAJOR.
            05  COLUMN        48     PIC XXX   VALUE "<->".
            05  COLUMN CENTER 56     PIC Z(4)9 SOURCE NUM-COURSES.
            05  COLUMN 60 62 65      PIC Z9 OCCURS 3 TIMES.

       PROCEDURE DIVISION.
       A000-MAINLINE.
           OPEN  INPUT  INPUT-FILE
                 OUTPUT PRINT-FILE
           PERFORM DO-INIT.
           READ INPUT-FILE
               AT END
                   MOVE "NO" TO ARE-THERE-MORE-RECORDS.
           PERFORM A001-LOOP
               UNTIL ARE-THERE-MORE-RECORDS = "NO ".
           PERFORM DO-TERM.
           CLOSE INPUT-FILE
                 PRINT-FILE.
           STOP RUN.

       A001-LOOP.
           GENERATE REPORT-LINE.
           READ INPUT-FILE
               AT END
                   MOVE "NO " TO ARE-THERE-MORE-RECORDS.
       DO-INIT.
           INITIATE STUDENT-REPORT.

       DO-TERM.
           TERMINATE STUDENT-REPORT.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_reportwriter.at:471: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:471"
( $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:46: warning: PLUS is ignored on first field of line
prog.cob:48: error: PLUS is not allowed with LEFT, RIGHT or CENTER
prog.cob:53: error: OCCURS and multi COLUMNs is not allowed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:471"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_211
#AT_START_212
at_fn_group_banner 212 'syn_reportwriter.at:480' \
  "PAGE LIMITS clause" "                             " 2
at_xfail=no
(
  $as_echo "212. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       ENVIRONMENT     DIVISION.
       INPUT-OUTPUT    SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN "f.txt".

       DATA            DIVISION.
       FILE            SECTION.
       FD  f           REPORT r1, r2.
       01  f-rec       PIC XXXXX.

       REPORT          SECTION.
       RD  r1          PAGE LIMIT 1 LINES 1 COLUMNS
                       HEADING f-rec,
                       HEADING f-rec,
                       LINE LIMIT 1.

       RD  r2          PAGE LIMIT 1 COLUMNS
                       HEADING f-rec.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_reportwriter.at:507: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_reportwriter.at:507"
( $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:19: error: duplicate HEADING clause
prog.cob:19: error: duplicate LINE LIMIT clause
prog.cob:22: error: Cannot specify HEADING without number of lines on page
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:507"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_212
#AT_START_213
at_fn_group_banner 213 'syn_reportwriter.at:515' \
  "Report FD without period" "                       " 2
at_xfail=no
(
  $as_echo "213. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       ENVIRONMENT     DIVISION.
       INPUT-OUTPUT    SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN "f.txt".

       DATA            DIVISION.
       FILE            SECTION.
       FD  f           REPORT r
_ATEOF


# In this case, the error handler enters an infinite loop, but it's OK as the
# error is still easy to identify and it doesn't occur if anything follows the
# "REPORT r".
{ set +x
$as_echo "$at_srcdir/syn_reportwriter.at:535: \$COMPILE_ONLY -fmax-errors=4 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fmax-errors=4 prog.cob" "syn_reportwriter.at:535"
( $at_check_trace; $COMPILE_ONLY -fmax-errors=4 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: syntax error, unexpected end of file
prog.cob:13: error: syntax error, unexpected end of file
prog.cob:13: error: syntax error, unexpected end of file
prog.cob:13: error: syntax error, unexpected end of file
prog.cob:13: error: syntax error, unexpected end of file
cobc: too many errors

cobc: aborting compile of prog.cob at line 13 (PROGRAM-ID: prog)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 97 $at_status "$at_srcdir/syn_reportwriter.at:535"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_213
#AT_START_214
at_fn_group_banner 214 'syn_reportwriter.at:548' \
  "REPORT with unreferenced control field" "         " 2
at_xfail=no
(
  $as_echo "214. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT     DIVISION.
       INPUT-OUTPUT    SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN "f.txt".

       DATA            DIVISION.
       FILE            SECTION.
       FD  f           REPORT r.
       01  f-rec       PIC X.

       REPORT          SECTION.
       RD  r.
       01  r0          TYPE DETAIL, PRESENT AFTER NEW f-rec.
_ATEOF


# no compile_only here as we check the C generation
{ set +x
$as_echo "$at_srcdir/syn_reportwriter.at:571: \$COMPILE prog.cob "
at_fn_check_prepare_dynamic "$COMPILE prog.cob " "syn_reportwriter.at:571"
( $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/syn_reportwriter.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_214
#AT_START_215
at_fn_group_banner 215 'syn_reportwriter.at:576' \
  "Incorrect USAGE clause" "                         " 2
at_xfail=no
(
  $as_echo "215. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT report-file ASSIGN EXTERNAL PRINTOUT
            ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  report-file REPORT rp.

       WORKING-STORAGE SECTION.
       01  foo  PIC X(20).

       REPORT SECTION.
       RD  rp PAGE LIMIT 3.

       01  rp-detail TYPE DE.
         02  LINE PLUS 1.
            03  FILLER   SOURCE foo  PIC X(30).
            03  FILLER                PIC X(6) VALUE "<--->".
            03  THING1                PIC 9(3) BINARY VALUE 12.
            03  FILLER                PIC 9 COMP-5 VALUE 1.
            03  THING3                COMP-2          VALUE 12.

       PROCEDURE DIVISION.
           OPEN OUTPUT report-file.
           INITIATE rp.

           MOVE "hello" TO foo.
            GENERATE rp-detail.

           MOVE "goodbye" TO foo.
            GENERATE rp-detail.

           TERMINATE rp.
             CLOSE report-file.
           STOP RUN.
           END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_reportwriter.at:623: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_reportwriter.at:623"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:25: error: REPORT SECTION item 'THING1' should be USAGE DISPLAY
prog.cob:26: error: REPORT SECTION item 'FILLER 4' should be USAGE DISPLAY
prog.cob:27: error: REPORT SECTION item 'THING3' should be USAGE DISPLAY
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_reportwriter.at:623"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_215
#AT_START_216
at_fn_group_banner 216 'syn_refmod.at:25' \
  "valid reference modification" "                   " 2
at_xfail=no
(
  $as_echo "216. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "abcd".
       PROCEDURE        DIVISION.
           DISPLAY X(1:1) ":" X(1:2) ":" X(1:3) ":" X(1:4) ":" X(1:)
           END-DISPLAY.
           DISPLAY X(2:1) ":" X(2:2) ":" X(2:3) ":" X(2:)
           END-DISPLAY.
           DISPLAY X(3:1) ":" X(3:2) ":" X(3:)
           END-DISPLAY.
           DISPLAY X(4:1) ":" X(4:)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_refmod.at:46: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_refmod.at:46"
( $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/syn_refmod.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_216
#AT_START_217
at_fn_group_banner 217 'syn_refmod.at:51' \
  "Static out of bounds" "                           " 2
at_xfail=no
(
  $as_echo "217. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4).
       01 Y             PIC 9 VALUE 1.
       PROCEDURE        DIVISION.
           DISPLAY X(0:1)
           END-DISPLAY.
           DISPLAY X(0:Y)
           END-DISPLAY.
           DISPLAY X(5:1)
           END-DISPLAY.
           DISPLAY X(5:Y)
           END-DISPLAY.
           DISPLAY X(1:0)
           END-DISPLAY.
           DISPLAY X(Y:0)
           END-DISPLAY.
           DISPLAY X(1:5)
           END-DISPLAY.
           DISPLAY X(Y:5)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_refmod.at:81: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_refmod.at:81"
( $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: offset of 'X' out of bounds: 0
prog.cob:11: error: offset of 'X' out of bounds: 0
prog.cob:13: error: offset of 'X' out of bounds: 5
prog.cob:15: error: offset of 'X' out of bounds: 5
prog.cob:17: error: length of 'X' out of bounds: 0
prog.cob:19: error: length of 'X' out of bounds: 0
prog.cob:21: error: length of 'X' out of bounds: 5
prog.cob:23: error: 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/syn_refmod.at:81"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_217
#AT_START_218
at_fn_group_banner 218 'syn_refmod.at:95' \
  "constant-folding out of bounds" "                 " 2
at_xfail=no
(
  $as_echo "218. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       78 VAR-LEN       VALUE 4.
       01 X             PIC X(VAR-LEN).
       PROCEDURE        DIVISION.
           IF VAR-LEN < 4
              DISPLAY X(4 - VAR-LEN:1)
              END-DISPLAY
              DISPLAY X(1: 4 - VAR-LEN)
              END-DISPLAY
              DISPLAY X(9 - VAR-LEN:1)
              END-DISPLAY
              DISPLAY X(1:9 - VAR-LEN)
              END-DISPLAY
      *>      special test...
              INSPECT X CONVERTING "DEF"  TO X (1:0 + VAR-LEN)
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_refmod.at:121: \$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expr prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expr prog.cob" "syn_refmod.at:121"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expr prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: offset of 'X' out of bounds: 0 [-Wignored-error]
prog.cob:12: warning: length of 'X' out of bounds: 0 [-Wignored-error]
prog.cob:14: warning: offset of 'X' out of bounds: 5 [-Wignored-error]
prog.cob:16: warning: length of 'X' out of bounds: 5 [-Wignored-error]
prog.cob:19: warning: CONVERTING operands differ in size [-Wignored-error]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_refmod.at:121"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_refmod.at:128: \$COMPILE_ONLY -Wno-constant-expr  -fno-constant-folding prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-constant-expr  -fno-constant-folding prog.cob" "syn_refmod.at:128"
( $at_check_trace; $COMPILE_ONLY -Wno-constant-expr  -fno-constant-folding 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/syn_refmod.at:128"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_218
#AT_START_219
at_fn_group_banner 219 'syn_misc.at:23' \
  "ambiguous AND/OR" "                               " 2
at_xfail=no
(
  $as_echo "219. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 ONE   PIC 9 VALUE 1.
       01 TWO   PIC 9 VALUE 2.
       01 THREE PIC 9 VALUE 3.
       PROCEDURE        DIVISION.
           IF THREE = ONE AND TWO OR THREE
               DISPLAY "OK"
               END-DISPLAY
           END-IF.
           IF 3 = 1 OR 2 AND 3
               DISPLAY "NO"
               END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:46: \$COMPILE_ONLY -Wno-constant-expression prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-constant-expression prog.cob" "syn_misc.at:46"
( $at_check_trace; $COMPILE_ONLY -Wno-constant-expression prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: suggest parentheses around AND within OR
prog.cob:14: warning: suggest parentheses around OR within AND
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_219
#AT_START_220
at_fn_group_banner 220 'syn_misc.at:54' \
  "warn constant expressions" "                      " 2
at_xfail=no
(
  $as_echo "220. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           IF 3 = 1
           AND 2 OR 3
              DISPLAY "OK"
              END-DISPLAY
           END-IF.
           IF 3 = 1 OR
              2 AND 3
              DISPLAY "NO"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


# FIXME positions broken
{ set +x
$as_echo "$at_srcdir/syn_misc.at:75: \$COMPILE_ONLY -w -Wconstant-expression prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -w -Wconstant-expression prog.cob" "syn_misc.at:75"
( $at_check_trace; $COMPILE_ONLY -w -Wconstant-expression prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:5: warning: expression '3' EQUALS '1' is always FALSE
prog.cob:6: warning: expression '3' EQUALS '2' is always FALSE
prog.cob:6: warning: expression '3' EQUALS '3' is always TRUE
prog.cob:10: warning: expression '3' EQUALS '1' is always FALSE
prog.cob:11: warning: expression '3' EQUALS '2' is always FALSE
prog.cob:11: warning: expression '3' EQUALS '3' is always TRUE
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_220
#AT_START_221
at_fn_group_banner 221 'syn_misc.at:87' \
  "warn literal size" "                              " 2
at_xfail=no
(
  $as_echo "221. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-LINE-NUMBER         PIC 9(3) VALUE ZERO.
       01 WS-NUMBER              PIC 9(3)V99 VALUE ZERO.
       01 WS-TEXT                PIC X(5) VALUE 'CAT'.
       01 PIC-9-SIGNED           PIC S9(2) VALUE 5.
       01 PIC-9-SIGNED-DECIMAL   PIC S9(2)V99 VALUE 5.
       01 PIC-9-NOT-SIGNED       PIC 9(3) VALUE 5.
       01 PIC-9-NOT-DECIMAL      PIC 9(3) VALUE 5.
       01 XX                     PIC 9(2) VALUE 2.
       01 PIC-9-DECIMAL          PIC 9(3)V9 VALUE 5.
       01 COMPUTE-1              PIC 999V9999 VALUE 654.1873.
       01 GROUP-ITEM-X6.
          05 FILLER              PIC X(6) VALUE 'CAT'.
       78 CONST1                 VALUE 'CAT     '.
       01 CONST2                 CONSTANT AS 00000001234.
       01 IF-D16                 PIC PP99 VALUE .0012.
       PROCEDURE DIVISION.
       MAIN.
           IF GROUP-ITEM-X6 = '1234567'   CONTINUE.
           IF PIC-9-NOT-DECIMAL = 1.1     CONTINUE.
           IF PIC-9-NOT-DECIMAL = 1.0
               CONTINUE.
           IF PIC-9-DECIMAL = 1.01
               CONTINUE.
           IF PIC-9-DECIMAL = 1.100
               CONTINUE.
           IF PIC-9-SIGNED NOT = 11.0
               CONTINUE.
           IF PIC-9-NOT-SIGNED < 0
               CONTINUE.
           IF PIC-9-NOT-SIGNED < ZERO
               CONTINUE.
           IF PIC-9-NOT-SIGNED < (25 - 50)
               CONTINUE.
           IF PIC-9-DECIMAL = (2.24 / 2)
               CONTINUE.
           IF PIC-9-NOT-DECIMAL = "123"
               CONTINUE.
           IF PIC-9-NOT-DECIMAL = "1B0"       *> field is numeric
               CONTINUE.
           IF PIC-9-NOT-DECIMAL (1:3) = "1B0" *> refmod is always alphanumeric
               CONTINUE.
           IF PIC-9-NOT-DECIMAL (1:3) NOT = "Hot Doggy"
               CONTINUE.
           IF PIC-9-NOT-DECIMAL (1:XX) NOT = "Hi"
               CONTINUE.
           IF WS-LINE-NUMBER > '123'
              CONTINUE.
           IF WS-TEXT > 'DOGGY'
              CONTINUE.
           IF WS-NUMBER > 123.999
              CONTINUE.
           IF WS-LINE-NUMBER > 2345
              CONTINUE.
           IF WS-LINE-NUMBER <= 1234
              CONTINUE.
           IF WS-LINE-NUMBER > '1234'
              CONTINUE.
           IF 5432 < WS-LINE-NUMBER
              CONTINUE.
           IF 7855 >= WS-LINE-NUMBER
              CONTINUE.
           IF 1234 < WS-LINE-NUMBER
              CONTINUE.
           IF 5432 >= WS-LINE-NUMBER
              CONTINUE.
           IF WS-TEXT > 'DOGGY++'
              CONTINUE.
           IF WS-TEXT > 3141596
              CONTINUE.
           IF WS-TEXT > 3.141596
              CONTINUE.
           IF WS-TEXT = 3.141596
              CONTINUE.
           IF 'DOG+CAT' NOT = WS-TEXT
              CONTINUE.
           IF WS-TEXT = 'CAT+DOG'
              CONTINUE.
           EVALUATE TRUE
              WHEN 'DOG+CAT' = WS-TEXT
                 CONTINUE
              WHEN CONST1 = 'CAT+DOG'
                 CONTINUE
              WHEN CONST1 = 'CAT'
                 CONTINUE
              WHEN CONST2 = 1234
                 CONTINUE
           END-EVALUATE
           IF WS-LINE-NUMBER > 0000234
              CONTINUE.
           IF WS-TEXT = 'CAT         '
              CONTINUE.
           IF ( COMPUTE-1 < 654.20038) AND
              ( COMPUTE-1 > 654.17422) THEN
              CONTINUE.
           IF ( COMPUTE-1 < 5654.20) CONTINUE.
           IF ( COMPUTE-1 > 5654.20) CONTINUE.
           IF   COMPUTE-1 < 05654.20 CONTINUE.
           IF   COMPUTE-1 > 05654.20 CONTINUE.
           IF ( 5654.20 > COMPUTE-1) CONTINUE.
           IF ( 5654.20 < COMPUTE-1) CONTINUE.
           IF  05654.20 > COMPUTE-1  CONTINUE.
           IF  05654.20 < COMPUTE-1  CONTINUE.
           IF IF-D16 POSITIVE
              CONTINUE.
           IF IF-D16 NOT POSITIVE
              CONTINUE.
           IF IF-D16 NEGATIVE
              CONTINUE.
           IF IF-D16 NOT NEGATIVE
              CONTINUE.
           IF PIC-9-NOT-SIGNED > (25 - 50)
               CONTINUE.
           IF PIC-9-NOT-SIGNED >= -1  CONTINUE.
           IF PIC-9-NOT-SIGNED >= -.1 CONTINUE.
           IF PIC-9-NOT-SIGNED > 0.0  CONTINUE.
           IF PIC-9-NOT-SIGNED >  .0  CONTINUE.
           IF PIC-9-NOT-SIGNED > ZERO
               CONTINUE.
           IF PIC-9-NOT-SIGNED >= 0.0 CONTINUE.
           IF PIC-9-NOT-SIGNED >=  .0 CONTINUE.
           IF PIC-9-NOT-SIGNED >= ZERO
               CONTINUE.
           IF GROUP-ITEM-X6 (1:6) = '123456'
               CONTINUE.
      * Both have correct error check verified in syn_refmod.at
      *    IF GROUP-ITEM-X6 (2:6) = '123456'
      *        CONTINUE.
      *    IF GROUP-ITEM-X6 (WS-LINE-NUMBER:7) = '123456'
      *        CONTINUE.
           IF GROUP-ITEM-X6 (1:5) = '123456'
               CONTINUE.
           IF GROUP-ITEM-X6 (3:) = '12345'
               CONTINUE.
           IF GROUP-ITEM-X6 (3:WS-LINE-NUMBER) = '12345'
               CONTINUE.
           IF GROUP-ITEM-X6 (WS-LINE-NUMBER:3) = '12345'
               CONTINUE.
           IF GROUP-ITEM-X6 (WS-LINE-NUMBER:WS-LINE-NUMBER) = '12345'
               CONTINUE.
           IF GROUP-ITEM-X6 (WS-LINE-NUMBER:) = '12345'
               CONTINUE.
           IF PIC-9-NOT-DECIMAL    >     9     CONTINUE.
           IF PIC-9-NOT-DECIMAL    >   009     CONTINUE.
           IF PIC-9-NOT-DECIMAL    >   900     CONTINUE.
           IF PIC-9-NOT-DECIMAL    >   909     CONTINUE.
           IF PIC-9-NOT-DECIMAL    >   999     CONTINUE.
           IF PIC-9-NOT-DECIMAL    >  0000999  CONTINUE.
           IF PIC-9-DECIMAL        >   999     CONTINUE.
           IF PIC-9-DECIMAL        >   990.9   CONTINUE.
           IF PIC-9-DECIMAL        >   999.9   CONTINUE.
           IF PIC-9-DECIMAL        >  0999.90  CONTINUE.
           IF PIC-9-DECIMAL        > -0999.90  CONTINUE.
           IF PIC-9-SIGNED-DECIMAL >    99.99  CONTINUE.
           IF PIC-9-SIGNED-DECIMAL >=   99.99  CONTINUE.
           IF PIC-9-SIGNED-DECIMAL <   -99.99  CONTINUE.
           IF PIC-9-SIGNED-DECIMAL <= -099.990 CONTINUE.
           IF PIC-9-SIGNED-DECIMAL <= -099.991 CONTINUE.


           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:257: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:257"
( $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 paragraph 'MAIN':
prog.cob:23: warning: literal '1234567' is longer than 'GROUP-ITEM-X6'
prog.cob:23: warning: expression is always FALSE
prog.cob:24: warning: literal '1.1' has more decimals than 'PIC-9-NOT-DECIMAL'
prog.cob:24: warning: expression is always FALSE
prog.cob:27: warning: literal '1.01' has more decimals than 'PIC-9-DECIMAL'
prog.cob:27: warning: expression is always FALSE
prog.cob:33: warning: unsigned 'PIC-9-NOT-SIGNED' may not be LESS THAN ZERO
prog.cob:35: warning: unsigned 'PIC-9-NOT-SIGNED' may not be LESS THAN ZERO
prog.cob:38: warning: unsigned 'PIC-9-NOT-SIGNED' may not be LESS THAN -25
prog.cob:40: warning: literal '1.12' has more decimals than 'PIC-9-DECIMAL'
prog.cob:40: warning: expression is always FALSE
prog.cob:43: warning: literal '1B0' is alphanumeric but 'PIC-9-NOT-DECIMAL' is numeric
prog.cob:47: warning: literal 'Hot Doggy' is longer than 'PIC-9-NOT-DECIMAL'
prog.cob:47: warning: expression is always TRUE
prog.cob:55: warning: literal '123.999' has more decimals than 'WS-NUMBER'
prog.cob:57: warning: literal '2345' has more digits than 'WS-LINE-NUMBER'
prog.cob:57: warning: expression is always FALSE
prog.cob:59: warning: literal '1234' has more digits than 'WS-LINE-NUMBER'
prog.cob:59: warning: expression is always TRUE
prog.cob:61: warning: literal '1234' has more digits than 'WS-LINE-NUMBER'
prog.cob:61: warning: expression is always FALSE
prog.cob:63: warning: literal '5432' has more digits than 'WS-LINE-NUMBER'
prog.cob:63: warning: expression is always FALSE
prog.cob:65: warning: literal '7855' has more digits than 'WS-LINE-NUMBER'
prog.cob:65: warning: expression is always TRUE
prog.cob:67: warning: literal '1234' has more digits than 'WS-LINE-NUMBER'
prog.cob:67: warning: expression is always FALSE
prog.cob:69: warning: literal '5432' has more digits than 'WS-LINE-NUMBER'
prog.cob:69: warning: expression is always TRUE
prog.cob:71: warning: literal 'DOGGY++' is longer than 'WS-TEXT'
prog.cob:73: warning: literal '3141596' is longer than 'WS-TEXT'
prog.cob:75: warning: literal '3.141596' is longer than 'WS-TEXT'
prog.cob:77: warning: literal '3.141596' is longer than 'WS-TEXT'
prog.cob:77: warning: expression is always FALSE
prog.cob:79: warning: literal 'DOG+CAT' is longer than 'WS-TEXT'
prog.cob:79: warning: expression is always TRUE
prog.cob:81: warning: literal 'CAT+DOG' is longer than 'WS-TEXT'
prog.cob:81: warning: expression is always FALSE
prog.cob:84: warning: literal 'DOG+CAT' is longer than 'WS-TEXT'
prog.cob:84: warning: expression is always FALSE
prog.cob:86: warning: expression 'CAT     ' EQUALS 'CAT+DOG' is always FALSE
prog.cob:88: warning: expression 'CAT     ' EQUALS 'CAT' is always TRUE
prog.cob:90: warning: expression '00000001234' EQUALS '1234' is always TRUE
prog.cob:97: warning: literal '654.20038' has more decimals than 'COMPUTE-1'
prog.cob:98: warning: literal '654.17422' has more decimals than 'COMPUTE-1'
prog.cob:100: warning: literal '5654.20' has more digits than 'COMPUTE-1'
prog.cob:100: warning: expression is always TRUE
prog.cob:101: warning: literal '5654.20' has more digits than 'COMPUTE-1'
prog.cob:101: warning: expression is always FALSE
prog.cob:102: warning: literal '5654.20' has more digits than 'COMPUTE-1'
prog.cob:102: warning: expression is always TRUE
prog.cob:103: warning: literal '5654.20' has more digits than 'COMPUTE-1'
prog.cob:103: warning: expression is always FALSE
prog.cob:104: warning: literal '5654.20' has more digits than 'COMPUTE-1'
prog.cob:104: warning: expression is always TRUE
prog.cob:105: warning: literal '5654.20' has more digits than 'COMPUTE-1'
prog.cob:105: warning: expression is always FALSE
prog.cob:106: warning: literal '5654.20' has more digits than 'COMPUTE-1'
prog.cob:106: warning: expression is always TRUE
prog.cob:107: warning: literal '5654.20' has more digits than 'COMPUTE-1'
prog.cob:107: warning: expression is always FALSE
prog.cob:112: warning: unsigned 'IF-D16' may not be LESS THAN ZERO
prog.cob:114: warning: unsigned 'IF-D16' may not be LESS THAN ZERO
prog.cob:117: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER THAN -25
prog.cob:118: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER OR EQUAL -1
prog.cob:119: warning: literal '-.1' has more decimals than 'PIC-9-NOT-SIGNED'
prog.cob:119: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER OR EQUAL -.1
prog.cob:124: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER OR EQUAL ZERO
prog.cob:125: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER OR EQUAL ZERO
prog.cob:126: warning: unsigned 'PIC-9-NOT-SIGNED' may always be GREATER OR EQUAL ZERO
prog.cob:135: warning: literal '123456' is longer than reference-modification of 'GROUP-ITEM-X6'
prog.cob:135: warning: expression is always FALSE
prog.cob:137: warning: literal '12345' is longer than reference-modification of 'GROUP-ITEM-X6'
prog.cob:137: warning: expression is always FALSE
prog.cob:139: warning: literal '12345' is longer than reference-modification of 'GROUP-ITEM-X6'
prog.cob:139: warning: expression is always FALSE
prog.cob:141: warning: literal '12345' is longer than reference-modification of 'GROUP-ITEM-X6'
prog.cob:141: warning: expression is always FALSE
prog.cob:151: warning: 'PIC-9-NOT-DECIMAL' may not be GREATER THAN 999
prog.cob:152: warning: 'PIC-9-NOT-DECIMAL' may not be GREATER THAN 999
prog.cob:155: warning: 'PIC-9-DECIMAL' may not be GREATER THAN 999.9
prog.cob:156: warning: 'PIC-9-DECIMAL' may not be GREATER THAN 999.9
prog.cob:157: warning: unsigned 'PIC-9-DECIMAL' may always be GREATER THAN -999.90
prog.cob:158: warning: 'PIC-9-SIGNED-DECIMAL' may not be GREATER THAN 99.99
prog.cob:159: warning: 'PIC-9-SIGNED-DECIMAL' may not be GREATER THAN 99.99
prog.cob:160: warning: 'PIC-9-SIGNED-DECIMAL' may not be LESS THAN -99.99
prog.cob:161: warning: 'PIC-9-SIGNED-DECIMAL' may not be LESS THAN -99.99
prog.cob:162: warning: literal '-99.991' has more decimals than 'PIC-9-SIGNED-DECIMAL'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_221
#AT_START_222
at_fn_group_banner 222 'syn_misc.at:352' \
  "warn literal size in constant expr. (level 88)" " " 2
at_xfail=no
(
  $as_echo "222. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.

       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC 9.
        88 never-true value 99.
       01  y PIC 9.
        88 never-truen value -9.
       01  xx pic x.
        88 some-not values 'a', 'b', 'cd'.
        88 some-not-s values '00', 'a', 'b', 'cd'.

       PROCEDURE DIVISION.
           if never-true
            continue
           end-if
           if never-truen
            continue
           end-if
           if some-not-s
            set some-not   to true
            set some-not-s to true
           end-if
           set never-true  to true
           goback.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:384: \$COMPILE_ONLY -fdiagnostics-show-option prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option prog.cob" "syn_misc.at:384"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option 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: literal '99' has more digits than 'x' [-Wconstant-expression]
prog.cob:8: warning: expression is always FALSE [-Wconstant-expression]
prog.cob:13: warning: literal '00' is longer than 'xx' [-Wconstant-expression]
prog.cob:13: warning: expression is always FALSE [-Wconstant-expression]
prog.cob:13: warning: literal 'cd' is longer than 'xx' [-Wconstant-expression]
prog.cob:13: warning: expression is always FALSE [-Wconstant-expression]
prog.cob:24: warning: value size exceeds data size [-Wtruncate]
prog.cob:24: note: value size is 2 [-Wtruncate]
prog.cob:11: note: 'xx' defined here as PIC X [-Wtruncate]
prog.cob:26: warning: value size exceeds data size [-Wtruncate]
prog.cob:26: note: value is 99 [-Wtruncate]
prog.cob:7: note: 'x' defined here as PIC 9 [-Wtruncate]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:384"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_222
#AT_START_223
at_fn_group_banner 223 'syn_misc.at:402' \
  "Invalid conditional expression (1)" "             " 2
at_xfail=no
(
  $as_echo "223. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  CON          CONSTANT 10.
       01  V            PIC 9.
       78  C78          VALUE 'A'.
       PROCEDURE        DIVISION.
           IF FUNCTION TRIM (' ')
              CONTINUE
              CONTINUE
           END-IF.
           IF CON
              CONTINUE
              CONTINUE
           END-IF.
           IF V
              CONTINUE
              CONTINUE
           END-IF.
           IF C78
              CONTINUE
              CONTINUE
           END-IF.
           IF '2'
              CONTINUE
              CONTINUE
           END-IF.
           IF C78 OR V
               CONTINUE
               CONTINUE
           END-IF.
           EVALUATE TRUE
              WHEN FUNCTION TRIM (' ')
                 CONTINUE
                 CONTINUE
              WHEN CON
                 CONTINUE
                 CONTINUE
              WHEN V
                 CONTINUE
                 CONTINUE
              WHEN C78
                 CONTINUE
                 CONTINUE
              WHEN '2'
                 CONTINUE
              WHEN OTHER
                 CONTINUE
           END-EVALUATE.
           PERFORM VARYING V
                   FROM 1 BY 1
                   UNTIL FUNCTION TRIM (' ')
              CONTINUE
              CONTINUE
           END-PERFORM.
           PERFORM VARYING V
                   FROM 1 BY 1
                   UNTIL V
              CONTINUE
              CONTINUE
           END-PERFORM.
           PERFORM VARYING V
                   FROM 1 BY 1
                   UNTIL C78
              CONTINUE
              CONTINUE
           END-PERFORM.
           PERFORM VARYING V
                   FROM 1 BY 1
                   UNTIL '2'
              CONTINUE
              CONTINUE
           END-PERFORM.
           IF NOTDEFINED = 1 OR 2
              CONTINUE
           END-IF.

           IF (V = 1) AND V
              CONTINUE
           END-IF

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:491: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:491"
( $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: invalid expression
prog.cob:14: error: invalid expression
prog.cob:18: error: invalid expression
prog.cob:22: error: invalid expression
prog.cob:26: error: invalid expression
prog.cob:30: error: invalid conditional expression
prog.cob:35: error: invalid expression
prog.cob:38: error: invalid expression
prog.cob:41: error: invalid expression
prog.cob:44: error: invalid expression
prog.cob:47: error: invalid expression
prog.cob:54: error: invalid expression
prog.cob:60: error: invalid expression
prog.cob:66: error: invalid expression
prog.cob:72: error: invalid expression
prog.cob:76: error: 'NOTDEFINED' is not defined
prog.cob:76: error: invalid expression
prog.cob:80: error: invalid expression
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:491"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_223
#AT_START_224
at_fn_group_banner 224 'syn_misc.at:515' \
  "Invalid conditional expression (2)" "             " 2
at_xfail=no
(
  $as_echo "224. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 WRKN  PIC S999 VALUE 123.
        01 WRKX  PIC X(8) VALUE 'House'.
        PROCEDURE DIVISION.
        MAIN.
            EVALUATE WRKN
              GREATER ZERO
              < 0
              > 0
            WHEN TRUE
              DISPLAY "WHAT IS IT?"
            END-EVALUATE.
            IF WRKN = 123 EQUAL 456
              DISPLAY "Strange brew! " WRKN
            END-IF.
            IF WRKN NOT EQUAL 123 NOT = 456
              DISPLAY "Strange brew! " WRKN
            END-IF.
            IF WRKN = 123 OR 456
              DISPLAY "Home brew! " WRKN
            END-IF.
            IF WRKX = "Red" OR "White"
              DISPLAY "Home wine! " WRKX
            END-IF.
            IF WRKX <= "Red" = "White"
              DISPLAY "Home wine! " WRKX
            END-IF.
            IF WRKX = "Red" NOT "White"
              DISPLAY "Home wine! " WRKX
            END-IF.
            IF WRKN = (123 - 12) OR
                   >= (456 + 16)
              DISPLAY "And another brew! " WRKN
            END-IF.
            STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:559: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:559"
( $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 paragraph 'MAIN':
prog.cob:10: error: GREATER THAN operator may be misplaced
prog.cob:17: error: EQUALS operator may be misplaced
prog.cob:20: error: NOT EQUAL operator may be misplaced
prog.cob:29: error: LESS OR EQUAL operator may be misplaced
prog.cob:32: error: invalid expression
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:559"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_224
#AT_START_225
at_fn_group_banner 225 'syn_misc.at:571' \
  "Invalid conditional expression (3)" "             " 2
at_xfail=no
(
  $as_echo "225. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
      ******************************************************************
       WORKING-STORAGE SECTION.
      *
       01 FLD1 PIC 9 VALUE 1.
       01 FLD2 PIC 9 VALUE 2.
       01 FLDX PIC 9 VALUE 5.
       01 FLDY PIC 9 VALUE 6.

       PROCEDURE DIVISION.
           IF 1 AND 2 > 1 THEN
                DISPLAY 'Test 1 is WRONG'
           ELSE
                DISPLAY 'Test 1 is OK'.

           IF FLD1 AND FLDX > FLD2 THEN
                DISPLAY 'Test 2 is OK'
           ELSE
                DISPLAY 'Test 2 is Wrong'.

           IF FLD1 OR FLDX > FLD2 THEN
                DISPLAY 'Test 2 is OK'
           ELSE
                DISPLAY 'Test 2 is Wrong'.

           IF FLD1 > 2 AND FLDX > FLD2 THEN
                DISPLAY 'Test 2 is OK'
           ELSE
                DISPLAY 'Test 2 is Wrong'.

           IF FLD2 IS NUMERIC AND FLD1 THEN
                DISPLAY 'Test 2 is OK'
           ELSE
                DISPLAY 'Test 2 is Wrong'.

           IF FLDX > FLD2 AND FLD1 AND 8 THEN
                DISPLAY 'Test 3 is OK ' FLDX ' > ' FLD2 ' & ' FLD1
           ELSE
                DISPLAY 'Test 3 is Wrong'.

           IF FLDX > FLD2 OR FLD1 OR 8 THEN
                DISPLAY 'Test 3 is OK'
           ELSE
                DISPLAY 'Test 3 is Wrong'.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:625: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:625"
( $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:15: error: invalid conditional expression
prog.cob:20: error: invalid conditional expression
prog.cob:25: error: invalid conditional expression
prog.cob:35: error: invalid expression
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:625"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_225
#AT_START_226
at_fn_group_banner 226 'syn_misc.at:635' \
  "Valid conditional expression" "                   " 2
at_xfail=no
(
  $as_echo "226. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  var         PIC 999.

       PROCEDURE       DIVISION.
           IF  var = 83  AND >  1 + 1
              CONTINUE
           END-IF
           IF  var = 83  AND >  2
              CONTINUE
           END-IF
           IF  var = 83  AND > (1 + 1)
              CONTINUE
           END-IF
           IF (var NOT = 1) OR (var NOT = 2)
               CONTINUE
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:662: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:662"
( $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/syn_misc.at:662"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:663: \$COMPILE_ONLY -fno-constant-folding prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fno-constant-folding prog.cob" "syn_misc.at:663"
( $at_check_trace; $COMPILE_ONLY -fno-constant-folding 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/syn_misc.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_226
#AT_START_227
at_fn_group_banner 227 'syn_misc.at:668' \
  "missing headers" "                                " 2
at_xfail=no
(
  $as_echo "227. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       SOURCE-COMPUTER. GNU-LINUX.
       SPECIAL-NAMES.
            SYMBOLIC NL IS 101
                     NL2   102
            NUMERIC SIGN TRAILING SEPARATE
            DECIMAL-POINT IS COMMA
            .

            SELECT PRINT-FILE ASSIGN "EXTRXW"
            ORGANIZATION LINE SEQUENTIAL
            .
       DATA DIVISION.
       FD  PRINT-FILE EXTERNAL.
       01  PRINT-REC          PIC X(64).

           DISPLAY "X"
           END-DISPLAY
           ACCEPT OMITTED
           END-ACCEPT
           GOBACK
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:695: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:695"
( $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:2: error: PROGRAM-ID header missing
prog.cob:2: error: ENVIRONMENT DIVISION header missing
prog.cob:2: error: CONFIGURATION SECTION header missing
prog.cob:10: error: INPUT-OUTPUT SECTION header missing
prog.cob:10: error: FILE-CONTROL header missing
prog.cob:14: error: FILE SECTION header missing
prog.cob:17: error: PROCEDURE DIVISION header missing
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:695"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:705: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_misc.at:705"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:2: warning: PROGRAM-ID header missing - assumed
prog.cob:2: warning: ENVIRONMENT DIVISION header missing - assumed
prog.cob:2: warning: CONFIGURATION SECTION header missing - assumed
prog.cob:10: warning: INPUT-OUTPUT SECTION header missing - assumed
prog.cob:10: warning: FILE-CONTROL header missing - assumed
prog.cob:14: warning: FILE SECTION header missing - assumed
prog.cob:17: warning: PROCEDURE DIVISION header missing - assumed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:705"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_227
#AT_START_228
at_fn_group_banner 228 'syn_misc.at:718' \
  "one line program" "                               " 2
at_xfail=no
(
  $as_echo "228. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'
           DISPLAY "minimal".
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:724: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:724"
( $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:1: error: PROGRAM-ID header missing
prog.cob:1: error: PROCEDURE DIVISION header missing
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:724"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:729: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_misc.at:729"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:1: warning: PROGRAM-ID header missing - assumed
prog.cob:1: warning: PROCEDURE DIVISION header missing - assumed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:729"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_228
#AT_START_229
at_fn_group_banner 229 'syn_misc.at:737' \
  "empty program" "                                  " 2
at_xfail=no
(
  $as_echo "229. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC 999 VALUE 124.
       END PROGRAM prog.
_ATEOF


# Note: we need to test for generating a valid C source (with normal/no flags)
#       here, not only for COBOL compilation
{ set +x
$as_echo "$at_srcdir/syn_misc.at:752: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_misc.at:752"
( $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/syn_misc.at:752"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:753: \$COBC prog.cob"
at_fn_check_prepare_dynamic "$COBC prog.cob" "syn_misc.at:753"
( $at_check_trace; $COBC 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/syn_misc.at:753"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog2.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC 999 VALUE 124.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:764: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "syn_misc.at:764"
( $at_check_trace; $COMPILE prog2.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/syn_misc.at:764"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:765: \$COBC prog2.cob"
at_fn_check_prepare_dynamic "$COBC prog2.cob" "syn_misc.at:765"
( $at_check_trace; $COBC prog2.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/syn_misc.at:765"
$at_failed && at_fn_log_failure
$at_traceon; }


: >prog3.cob

{ set +x
$as_echo "$at_srcdir/syn_misc.at:769: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:769"
( $at_check_trace; $COMPILE_ONLY prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:1: error: PROGRAM-ID header missing
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:769"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:773: \$COMPILE -frelax-syntax-checks prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE -frelax-syntax-checks prog3.cob" "syn_misc.at:773"
( $at_check_trace; $COMPILE -frelax-syntax-checks prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:1: warning: PROGRAM-ID header missing - assumed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:773"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:776: \$COBC -frelax-syntax-checks prog3.cob"
at_fn_check_prepare_dynamic "$COBC -frelax-syntax-checks prog3.cob" "syn_misc.at:776"
( $at_check_trace; $COBC -frelax-syntax-checks prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:1: warning: PROGRAM-ID header missing - assumed [-Wothers]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:776"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_229
#AT_START_230
at_fn_group_banner 230 'syn_misc.at:783' \
  "INITIALIZE constant" "                            " 2
at_xfail=no
(
  $as_echo "230. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  CON          CONSTANT 10.
       01  V            PIC 9.
       78  C78          VALUE 'A'.
       PROCEDURE DIVISION.
           INITIALIZE CON.
           INITIALIZE V.
           INITIALIZE V, 9.
           INITIALIZE C78, V.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:801: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:801"
( $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: invalid INITIALIZE statement
prog.cob:12: error: invalid INITIALIZE statement
prog.cob:13: error: invalid INITIALIZE statement
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:801"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_230
#AT_START_231
at_fn_group_banner 231 'syn_misc.at:810' \
  "CLASS duplicate values" "                         " 2
at_xfail=no
(
  $as_echo "231. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
            SYMBOLIC NL IS 101
                     NL2   102
            CLASS    CHECK-VALID    'a' THRU 'z'
                                    'A' THRU 'Z'
                                    'cdef'
            .
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(8).
       PROCEDURE        DIVISION.
           IF X         IS CHECK-VALID
              DISPLAY "OK"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:836: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:836"
( $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: warning: duplicate character values in class 'CHECK-VALID'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:836"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_231
#AT_START_232
at_fn_group_banner 232 'syn_misc.at:843' \
  "INSPECT invalid size" "                           " 2
at_xfail=no
(
  $as_echo "232. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
       ALPHABET ALPHA IS ASCII.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01.
         02 X-POS       PIC 9 VALUE 3.
         02 X           PIC X(8) OCCURS 2.
       PROCEDURE        DIVISION.
           INSPECT X(1) REPLACING ALL SPACES BY "AA".
           INSPECT X(1) REPLACING ALL "ABC"  BY "AA".
           INSPECT X(1) REPLACING ALL "DEF"  BY SPACES.
           INSPECT X(1) CONVERTING SPACES TO "AA".
           INSPECT X(1) CONVERTING "ABC"  TO "AA".
           INSPECT X(1) (X-POS:2) CONVERTING "DEF"  TO SPACES.
           INSPECT X(1) CONVERTING "GHI"  TO ALPHA.
      *>   the following is allowed, see NC221A and ref-mod definition
           INSPECT X(1) CONVERTING "DEF"  TO X(2) (X-POS:3).
           INSPECT X(1) CONVERTING "DEF"  TO X(2) (X-POS:4).
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:872: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:872"
( $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:14: error: REPLACING operands differ in size
prog.cob:15: error: REPLACING operands differ in size
prog.cob:17: error: CONVERTING operands differ in size
prog.cob:18: error: CONVERTING operands differ in size
prog.cob:20: error: CONVERTING operands differ in size
prog.cob:23: error: CONVERTING operands differ in size
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:872"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_232
#AT_START_233
at_fn_group_banner 233 'syn_misc.at:884' \
  "INSPECT invalid target" "                         " 2
at_xfail=no
(
  $as_echo "233. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(8).
       PROCEDURE        DIVISION.
           INSPECT FUNCTION TRIM(X) REPLACING ALL "ABC" BY "DEF".
           INSPECT FUNCTION TRIM(X) CONVERTING "ABC" TO "AAA".
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:899: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:899"
( $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 target for REPLACING
prog.cob:9: error: invalid target for CONVERTING
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:899"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_233
#AT_START_234
at_fn_group_banner 234 'syn_misc.at:907' \
  "INSPECT missing keyword" "                        " 2
at_xfail=no
(
  $as_echo "234. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(8).
       PROCEDURE        DIVISION.
           INSPECT X REPLACING "AB" BY "CD".
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:921: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:921"
( $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: INSPECT missing ALL/FIRST/LEADING/TRAILING
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:921"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_234
#AT_START_235
at_fn_group_banner 235 'syn_misc.at:928' \
  "INSPECT repeated keywords" "                      " 2
at_xfail=no
(
  $as_echo "235. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC 9(5).

       PROCEDURE DIVISION.
           *> Ok
           INSPECT "abcde" TALLYING x FOR CHARACTERS CHARACTERS

           *> Not ok
           INSPECT "abcde" TALLYING x FOR ALL LEADING
               TRAILING ALL ALL ALL TRAILING
           INSPECT "abcde" TALLYING x FOR x FOR LEADING "a"
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:950: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:950"
( $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:14: error: missing value between ALL/LEADING/TRAILING words
prog.cob:15: error: missing value between ALL/LEADING/TRAILING words
prog.cob:15: error: missing value between ALL/LEADING/TRAILING words
prog.cob:15: error: missing value between ALL/LEADING/TRAILING words
prog.cob:15: error: missing value between ALL/LEADING/TRAILING words
prog.cob:15: error: missing value between ALL/LEADING/TRAILING words
prog.cob:16: error: TALLYING clause is incomplete
prog.cob:16: error: missing CHARACTERS/ALL/LEADING/TRAILING phrase after FOR phrase
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:950"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_235
#AT_START_236
at_fn_group_banner 236 'syn_misc.at:964' \
  "INSPECT incomplete clause" "                      " 2
at_xfail=no
(
  $as_echo "236. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC 9(5).

       PROCEDURE DIVISION.
           INSPECT "abcde" TALLYING x FOR
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:980: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:980"
( $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: TALLYING clause is incomplete
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:980"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_236
#AT_START_237
at_fn_group_banner 237 'syn_misc.at:986' \
  "INSPECT multiple BEFORE/AFTER clauses" "          " 2
at_xfail=no
(
  $as_echo "237. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC X(10).

       PROCEDURE DIVISION.
           INSPECT x REPLACING CHARACTERS BY "x"
               BEFORE "A" BEFORE "b" AFTER "c"
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1003: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1003"
( $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: syntax error, unexpected BEFORE
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1003"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_237
#AT_START_238
at_fn_group_banner 238 'syn_misc.at:1009' \
  "maximum data size" "                              " 2
at_xfail=no
(
  $as_echo "238. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 SINGLE-ITEM   PIC X(999999999).
       01 GROUP-ITEM1.
          05 FILLER     PIC X(999999999).
       01 GROUP-ITEM2.
          05 FILLER     PIC X(199999999).
          05 FILLER     PIC X(199999999).
       PROCEDURE        DIVISION.
           STOP RUN.

_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1028: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1028"
( $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: 'SINGLE-ITEM' cannot be larger than 268435456 bytes
prog.cob:8: error: 'FILLER 1' cannot be larger than 268435456 bytes
prog.cob:7: error: 'GROUP-ITEM1' cannot be larger than 268435456 bytes
prog.cob:9: error: 'GROUP-ITEM2' cannot be larger than 268435456 bytes
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1028"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_238
#AT_START_239
at_fn_group_banner 239 'syn_misc.at:1038' \
  "unreachable statement" "                          " 2
at_xfail=no
(
  $as_echo "239. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN TO 'f' LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  f-rec PIC X.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       DECLARATIVES.
       f-error SECTION.
           USE AFTER ERROR ON f.
           GOBACK
           .
       END DECLARATIVES.

           DISPLAY "VALID"
           END-DISPLAY.

       P01.
           GO TO P02.
           DISPLAY "INVALID"
           END-DISPLAY.
       P02.
           GO TO P03
           CONTINUE.  *> explicit no unreachable warning
       P03.
           GO TO P04
           CONTINUE AFTER 2 SECONDS.  *> that's one again
       P04.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1078: \$COMPILE_ONLY -Wunreachable prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wunreachable prog.cob" "syn_misc.at:1078"
( $at_check_trace; $COMPILE_ONLY -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:26: warning: unreachable statement 'DISPLAY'
prog.cob: in paragraph 'P03':
prog.cob:33: warning: unreachable statement 'CONTINUE AFTER'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1078"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_239
#AT_START_240
at_fn_group_banner 240 'syn_misc.at:1088' \
  "CRT STATUS" "                                     " 2
at_xfail=no
(
  $as_echo "240. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CRT STATUS IS MY-CRT-STATUS.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       PROCEDURE        DIVISION.
           ACCEPT X END-ACCEPT.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CRT STATUS IS MY-CRT-STATUS.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       77 MY-CRT-STATUS PIC 9(04).
       PROCEDURE        DIVISION.
           ACCEPT X END-ACCEPT.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1122: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1122"
( $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: 'MY-CRT-STATUS' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1122"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1125: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:1125"
( $at_check_trace; $COMPILE_ONLY prog2.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/syn_misc.at:1125"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_240
#AT_START_241
at_fn_group_banner 241 'syn_misc.at:1130' \
  "SPECIAL-NAMES clause" "                           " 2
at_xfail=no
(
  $as_echo "241. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: actually this is the only place for some CRT STATUS checks...

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           CRT STATUS IS MY-CRT-STATUS.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  CURSOR-POSITION IS SPECIAL-NAMES CURSOR.
           03  CURSOR-ROW         PIC 999.
           03  CURSOR-COL         PIC 999.
       77  MY-CRT-STATUS PIC 9(04).
       77  CRT-STATUS IS SPECIAL-NAMES CRT STATUS PIC 9(5).
       PROCEDURE        DIVISION.
           ACCEPT OMITTED END-ACCEPT.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  CRT-STATUS IS SPECIAL-NAMES CRT STATUS PIC X(5).
       PROCEDURE        DIVISION.
           ACCEPT OMITTED END-ACCEPT.
           STOP RUN.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  CURSOR-POSITION IS SPECIAL-NAMES CURSOR.
           03  CURSOR-ROW   PIC 999.
           03  CURSOR-COL   PIC 999.
       77  CRT-STATUS       PIC X(4) IS SPECIAL-NAMES CRT STATUS.
       PROCEDURE        DIVISION.
           ACCEPT OMITTED END-ACCEPT.
           STOP RUN.
_ATEOF


cat >prog4.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  CURSOR-POSITION IS SPECIAL-NAMES CURSOR.
           03  CURSOR-ROW   PIC 999.
           03  CURSOR-COL   PIC 999.
       77  CRT-STATUS       PIC 9(5) IS SPECIAL-NAMES CRT STATUS.
       PROCEDURE        DIVISION.
           ACCEPT OMITTED END-ACCEPT.
           STOP RUN.
_ATEOF


cat >prog5.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  CRT-STATUS   PIC 9(3) IS SPECIAL-NAMES CRT STATUS.
       PROCEDURE        DIVISION.
           ACCEPT OMITTED END-ACCEPT.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1204: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1204"
( $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:14: error: duplicate CRT STATUS clause
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1204"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1207: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:1207"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:6: error: 'CRT-STATUS' CRT STATUS must be 4 characters long
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1207"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1210: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:1210"
( $at_check_trace; $COMPILE_ONLY prog3.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/syn_misc.at:1210"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1211: \$COMPILE_ONLY prog4.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog4.cob" "syn_misc.at:1211"
( $at_check_trace; $COMPILE_ONLY prog4.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/syn_misc.at:1211"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1212: \$COMPILE_ONLY prog5.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog5.cob" "syn_misc.at:1212"
( $at_check_trace; $COMPILE_ONLY prog5.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog5.cob:6: error: 'CRT-STATUS' CRT STATUS must have at least 4 digits
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1212"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_241
#AT_START_242
at_fn_group_banner 242 'syn_misc.at:1219' \
  "CURRENCY SIGN" "                                  " 2
at_xfail=no
(
  $as_echo "242. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CURRENCY SIGN IS '*'.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CURRENCY 'DOLLAR'.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CURRENCY 'DOLLAR'
           WITH PICTURE SYMBOL '$'.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 SOME-CASH     PIC 9(04).99$.
       PROCEDURE        DIVISION.
           MOVE 123.4 TO SOME-CASH
           DISPLAY SOME-CASH END-DISPLAY.
           STOP RUN.
_ATEOF


cat >prog4.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog4.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CURRENCY '   '
           PICTURE SYMBOL '*'.
_ATEOF


cat >prog5.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog5.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CURRENCY ' T '
           PICTURE SYMBOL ' '.
_ATEOF


cat >prog6.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog6.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CURRENCY '+-'
           PICTURE SYMBOL 'TT'.
_ATEOF


cat >prog7.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog7.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CURRENCY SIGN IS 'T'.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 SOME-CASH     PIC 9(04).99T.
       PROCEDURE        DIVISION.
           MOVE 123.4 TO SOME-CASH
           DISPLAY SOME-CASH END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1303: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1303"
( $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: invalid character '*' in currency symbol
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1303"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1306: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:1306"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: currency symbol must be one character long
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1306"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1309: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:1309"
( $at_check_trace; $COMPILE_ONLY prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:7: warning: separate currency symbol and currency string is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1309"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1312: \$COMPILE_ONLY prog4.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog4.cob" "syn_misc.at:1312"
( $at_check_trace; $COMPILE_ONLY prog4.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog4.cob:7: warning: separate currency symbol and currency string is not implemented
prog4.cob:7: error: invalid CURRENCY SIGN '   '
prog4.cob:8: error: invalid character '*' in currency symbol
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1312"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1317: \$COMPILE_ONLY prog5.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog5.cob" "syn_misc.at:1317"
( $at_check_trace; $COMPILE_ONLY prog5.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog5.cob:7: warning: separate currency symbol and currency string is not implemented
prog5.cob:8: error: invalid character ' ' in currency symbol
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1317"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1321: \$COMPILE_ONLY prog6.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog6.cob" "syn_misc.at:1321"
( $at_check_trace; $COMPILE_ONLY prog6.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog6.cob:7: warning: separate currency symbol and currency string is not implemented
prog6.cob:7: error: invalid CURRENCY SIGN '+-'
prog6.cob:8: error: currency symbol must be one character long
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1321"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1326: \$COMPILE_ONLY prog7.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog7.cob" "syn_misc.at:1326"
( $at_check_trace; $COMPILE_ONLY prog7.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/syn_misc.at:1326"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_242
#AT_START_243
at_fn_group_banner 243 'syn_misc.at:1331' \
  "SWITCHES" "                                       " 2
at_xfail=no
(
  $as_echo "243. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           SW1
             ON  IS SWIT1-ON
             OFF IS SWIT1-OFF
           .
           SWITCH B IS SWITCH-B
             ON  IS SWIT2-ON
             OFF IS SWIT2-OFF
           .
           SWITCH-25
             ON  IS SWIT25-ON
             OFF IS SWIT25-OFF
           .
           SWITCH-25
             ON  IS SWIT25-IS-ON
             OFF IS SWIT25-IS-OFF
           .
           SWITCH 25
             ON  IS SWIT25-SP-ON
             OFF IS SWIT25-SP-OFF
           .
           SWITCH Y
             ON  IS SWIT25-Y-ON
             OFF IS SWIT25-Y-OFF
           .
           SWITCH Z
             ON  IS SWIT26-ON
             ON  IS SWIT26-OFF
           .
           SWITCH-32
             ON  IS SWIT32-ON
           .
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  SWITCH       PIC 99 VALUE 12.
       PROCEDURE        DIVISION.
           ADD SWITCH 1 GIVING SWITCH
           END-ADD.
           IF SWITCH NOT = 13
              DISPLAY "SWITCH (variable) WRONG: "
                      SWITCH
              END-DISPLAY
           END-IF.
           IF SWIT1-ON
              DISPLAY "ON"
              END-DISPLAY
           ELSE
              DISPLAY "OFF"
              END-DISPLAY
           END-IF.
           IF SWIT2-ON
              DISPLAY " ON"
              END-DISPLAY
           ELSE
              DISPLAY " OFF"
              END-DISPLAY
           END-IF.
           SET SWITCH-B TO OFF
           IF SWIT2-ON
              CONTINUE
           END-IF.
           IF SWIT25-ON
              CONTINUE
           END-IF.
           IF SWIT26-ON
              CONTINUE
           END-IF.
           IF SWIT32-ON
              CONTINUE
           END-IF.
           IF SWIT32-OFF
              CONTINUE
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1415: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1415"
( $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: invalid system-name 'SW1'
prog.cob:8: error: ON/OFF usage requires a SWITCH name
prog.cob:9: error: ON/OFF usage requires a SWITCH name
prog.cob:11: error: invalid system-name 'SWITCH B'
prog.cob:12: error: ON/OFF usage requires a SWITCH name
prog.cob:13: error: ON/OFF usage requires a SWITCH name
prog.cob:23: error: invalid system-name 'SWITCH 25'
prog.cob:24: error: ON/OFF usage requires a SWITCH name
prog.cob:25: error: ON/OFF usage requires a SWITCH name
prog.cob:27: error: invalid system-name 'SWITCH Y'
prog.cob:28: error: ON/OFF usage requires a SWITCH name
prog.cob:29: error: ON/OFF usage requires a SWITCH name
prog.cob:31: error: invalid system-name 'SWITCH Z'
prog.cob:32: error: ON/OFF usage requires a SWITCH name
prog.cob:33: error: ON/OFF usage requires a SWITCH name
prog.cob:49: error: 'SWIT1-ON' is not defined
prog.cob:56: error: 'SWIT2-ON' is not defined
prog.cob:63: error: 'SWITCH-B' is not defined
prog.cob:63: error: syntax error, unexpected OFF
prog.cob:70: error: 'SWIT26-ON' is not defined
prog.cob:76: error: 'SWIT32-OFF' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1415"
$at_failed && at_fn_log_failure
$at_traceon; }

# FIXME: There should be an additional
#prog.cob:19: error: duplicate definition of 'SWITCH-25'
#prog.cob:15: note: 'SWITCH-25' previously defined here
#
{ set +x
$as_echo "$at_srcdir/syn_misc.at:1442: \$COMPILE_ONLY -std=acu-strict -fsystem-name=SW1 -fno-relax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict -fsystem-name=SW1 -fno-relax-syntax-checks prog.cob" "syn_misc.at:1442"
( $at_check_trace; $COMPILE_ONLY -std=acu-strict -fsystem-name=SW1 -fno-relax-syntax-checks prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:33: error: duplicate ON clause
prog.cob:76: error: 'SWIT32-OFF' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1442"
$at_failed && at_fn_log_failure
$at_traceon; }

# FIXME: There should be an additional
#prog.cob:19: error: duplicate definition of 'SWITCH-25'
#prog.cob:15: note: 'SWITCH-25' previously defined here
#prog.cob:23: error: duplicate definition of 'SWITCH 25'
#prog.cob:15: note: 'SWITCH-25' previously defined here
#prog.cob:27: error: duplicate definition of 'SWITCH Y'
#prog.cob:15: note: 'SWITCH-25' previously defined here

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_243
#AT_START_244
at_fn_group_banner 244 'syn_misc.at:1457' \
  "unexpected mnemonic-name location" "              " 2
at_xfail=no
(
  $as_echo "244. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       ENVIRONMENT    DIVISION.
       CONFIGURATION  SECTION.
       SPECIAL-NAMES.
           stdin IS my-stdin
           .
       PROCEDURE      DIVISION.
           CALL "something" USING stdout
           CALL "something" USING stdin
           CALL "something" USING my-stdin
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1475: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1475"
( $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: invalid mnemonic identifier
prog.cob:11: error: invalid mnemonic identifier
prog.cob:12: error: invalid mnemonic identifier
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1475"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_244
#AT_START_245
at_fn_group_banner 245 'syn_misc.at:1484' \
  "wrong device for mnemonic-name" "                 " 2
at_xfail=no
(
  $as_echo "245. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       77 var          PIC x.
       PROCEDURE       DIVISION.
           ACCEPT  var FROM SYSOUT
           DISPLAY var UPON SYSIN
           ACCEPT  var FROM SYSIN
           DISPLAY var UPON SYSOUT
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1501: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1501"
( $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: 'SYSOUT' is not an input device
prog.cob:9: error: 'SYSIN' is not an output device
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1501"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_245
#AT_START_246
at_fn_group_banner 246 'syn_misc.at:1509' \
  "missing mnemonic-name declaration" "              " 2
at_xfail=no
(
  $as_echo "246. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       77 var          PIC x.
       PROCEDURE       DIVISION.
           ACCEPT var FROM mnemonic-name
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1523: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1523"
( $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: unknown device 'mnemonic-name'; not defined in SPECIAL-NAMES
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1523"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_246
#AT_START_247
at_fn_group_banner 247 'syn_misc.at:1530' \
  "unknown device in dialect" "                      " 2
at_xfail=no
(
  $as_echo "247. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       77 var          PIC x.
       PROCEDURE       DIVISION.
           ACCEPT var  FROM COMMAND-LINE
           DISPLAY var UPON COMMAND-LINE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1545: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1545"
( $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/syn_misc.at:1545"
$at_failed && at_fn_log_failure
$at_traceon; }


# Checkme: Error currently doesn't occur for UPON_COMMAND_LINE as this is already tokenized
# in scanner.l. We just ignore this for now and maybe fix it later.
#AT_CHECK([$COMPILE_ONLY -fnot-reserved=COMMAND-LINE prog.cob], [1], [],
#[prog.cob:8: error: unknown device 'COMMAND-LINE'; it may exist in another dialect
#prog.cob:9: error: unknown device 'COMMAND-LINE'; it may exist in another dialect
#])
{ set +x
$as_echo "$at_srcdir/syn_misc.at:1553: \$COMPILE_ONLY -fnot-reserved=COMMAND-LINE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-reserved=COMMAND-LINE prog.cob" "syn_misc.at:1553"
( $at_check_trace; $COMPILE_ONLY -fnot-reserved=COMMAND-LINE 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: unknown device 'COMMAND-LINE'; it may exist in another dialect
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1553"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_247
#AT_START_248
at_fn_group_banner 248 'syn_misc.at:1560' \
  "ACCEPT WITH ( NO ) UPDATE / DEFAULT" "            " 2
at_xfail=no
(
  $as_echo "248. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       PROCEDURE        DIVISION.
           ACCEPT X                 END-ACCEPT.
           ACCEPT X WITH    UPDATE  END-ACCEPT.
           ACCEPT X WITH    DEFAULT END-ACCEPT.
           ACCEPT X WITH NO UPDATE  END-ACCEPT.
           ACCEPT X WITH NO DEFAULT END-ACCEPT.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1580: \$COMPILE_ONLY -faccept-update prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -faccept-update prog.cob" "syn_misc.at:1580"
( $at_check_trace; $COMPILE_ONLY -faccept-update 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/syn_misc.at:1580"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_248
#AT_START_249
at_fn_group_banner 249 'syn_misc.at:1585' \
  "ACCEPT WITH AUTO / TAB" "                         " 2
at_xfail=no
(
  $as_echo "249. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       PROCEDURE        DIVISION.
           ACCEPT X                       END-ACCEPT.
           ACCEPT X WITH    AUTO          END-ACCEPT.
           ACCEPT X WITH    AUTO-SKIP     END-ACCEPT.
           ACCEPT X WITH    AUTOTERMINATE END-ACCEPT.
           ACCEPT X WITH    TAB           END-ACCEPT.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1605: \$COMPILE_ONLY -faccept-auto prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -faccept-auto prog.cob" "syn_misc.at:1605"
( $at_check_trace; $COMPILE_ONLY -faccept-auto 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/syn_misc.at:1605"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_249
#AT_START_250
at_fn_group_banner 250 'syn_misc.at:1610' \
  "ACCEPT WITH LOWER / UPPER" "                      " 2
at_xfail=no
(
  $as_echo "250. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(05).
       PROCEDURE        DIVISION.
           ACCEPT X WITH LOWER     END-ACCEPT.
           ACCEPT X WITH UPPER     END-ACCEPT.
           ACCEPT X      LOWER
           ACCEPT X      UPPER
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1627: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1627"
( $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/syn_misc.at:1627"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_250
#AT_START_251
at_fn_group_banner 251 'syn_misc.at:1632' \
  "ACCEPT WITH SIZE" "                               " 2
at_xfail=no
(
  $as_echo "251. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(05).
       01 Y             PIC 9(04) BINARY VALUE 4.
       PROCEDURE        DIVISION.
           ACCEPT X WITH           SIZE    0 END-ACCEPT.
           ACCEPT X WITH           SIZE IS 1 END-ACCEPT.
           ACCEPT X WITH PROTECTED SIZE    2 END-ACCEPT.
           ACCEPT X WITH PROTECTED SIZE IS 3 END-ACCEPT.
           ACCEPT X                SIZE    Y END-ACCEPT.
           ACCEPT X                SIZE    0
           ACCEPT X                SIZE IS 1
           ACCEPT X      PROTECTED SIZE    2
           ACCEPT X      PROTECTED SIZE IS 3
           ACCEPT X                SIZE    Y
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1656: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1656"
( $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/syn_misc.at:1656"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_251
#AT_START_252
at_fn_group_banner 252 'syn_misc.at:1661' \
  "DISPLAY WITH SIZE" "                              " 2
at_xfail=no
(
  $as_echo "252. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(05).
       01 Y             PIC 9(04) BINARY VALUE 7.
       PROCEDURE        DIVISION.
           DISPLAY X AT 0101 WITH SIZE    5 END-DISPLAY.
           DISPLAY X AT 0101 WITH SIZE IS 6 END-DISPLAY.
           DISPLAY X AT 0101 WITH SIZE IS Y END-DISPLAY.
           DISPLAY X AT 0101      SIZE    5 END-DISPLAY.
           DISPLAY X AT 0101      SIZE IS 6 END-DISPLAY.
           DISPLAY X AT 0101      SIZE IS Y END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1681: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1681"
( $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/syn_misc.at:1681"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_252
#AT_START_253
at_fn_group_banner 253 'syn_misc.at:1686' \
  "source text after program-text area" "            " 2
at_xfail=no
(
  $as_echo "253. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.                                       COMMENT
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1700: \$COMPILE_ONLY -Wextra prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wextra prog.cob" "syn_misc.at:1700"
( $at_check_trace; $COMPILE_ONLY -Wextra 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: source text after program-text area (column 72)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1700"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_253
#AT_START_254
at_fn_group_banner 254 'syn_misc.at:1707' \
  "line overflow in fixed-form / free-form" "        " 2
at_xfail=no
(
  $as_echo "254. $at_setup_line: testing $at_desc ..."
  $at_traceon



# We're testing trailing tabs and whitespace (should not lead to warning)
# along with comments after boundaries (col 72 / col 512)

# remark: some editors remove trailing spaces, the  workaround: add "_" and
# remove it later via sed; AT_DATA would not do that when using double [[  ]]

cat >prog_tmpl.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.                                           																																																																																																																																		_
       DATA             DIVISION.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _
       WORKING-STORAGE  SECTION.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   *> This is a real comment
       PROCEDURE        DIVISION.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  This is commentary only
           CONTINUE.                                              *> comment after column 72
      *    This is a very long comment that exceeds column 72 but doesn't exceed 512 bytes, therefore not leading to a line overflow. As it is a comment line there is no "Source text after column 72" warning
           CONTINUE.                                                    CONTINUE.
           CONTINUE.                                                                        _
           STOP RUN.
_ATEOF


# AT_DATA workaround via sed:
{ set +x
$as_echo "$at_srcdir/syn_misc.at:1732: \$SED -e 's/_\$//' prog_tmpl.cob > prog.cob"
at_fn_check_prepare_dynamic "$SED -e 's/_$//' prog_tmpl.cob > prog.cob" "syn_misc.at:1732"
( $at_check_trace; $SED -e 's/_$//' prog_tmpl.cob > 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/syn_misc.at:1732"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1734: \$COBC -fsyntax-only -fixed -Wextra prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -fixed -Wextra prog.cob" "syn_misc.at:1734"
( $at_check_trace; $COBC -fsyntax-only -fixed -Wextra 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: source text exceeds 512 bytes, will be truncated [-Wothers]
prog.cob:8: warning: source text exceeds 512 bytes, will be truncated [-Wothers]
prog.cob:11: warning: source text after program-text area (column 72) [-Wdangling-text]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1734"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1740: \$COBC -fsyntax-only -free -Wextra prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -free -Wextra prog.cob" "syn_misc.at:1740"
( $at_check_trace; $COBC -fsyntax-only -free -Wextra 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: source text exceeds 512 bytes, will be truncated [-Wothers]
prog.cob:8: warning: source text exceeds 512 bytes, will be truncated [-Wothers]
prog.cob:8: error: unknown statement 'This'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1740"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1746: \$COBC -fsyntax-only -F -Wextra prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -F -Wextra prog.cob" "syn_misc.at:1746"
( $at_check_trace; $COBC -fsyntax-only -F -Wextra 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: source text exceeds 512 bytes, will be truncated [-Wothers]
prog.cob:8: warning: source text exceeds 512 bytes, will be truncated [-Wothers]
prog.cob:8: error: unknown statement 'This'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1746"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_254
#AT_START_255
at_fn_group_banner 255 'syn_misc.at:1755' \
  "missing newline in fixed-form / free-form" "      " 2
at_xfail=no
(
  $as_echo "255. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       PROCEDURE        DIVISION.
           CONTINUE
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:1767: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:1767"
( $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: syntax error, unexpected end of file
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:1767"
$at_failed && at_fn_log_failure
$at_traceon; }


# fixing the initial setup but now producing a missing newline:
printf "           CONTINUE." >> prog.cob

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1774: \$COBC -fsyntax-only -Wextra -fixed prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wextra -fixed prog.cob" "syn_misc.at:1774"
( $at_check_trace; $COBC -fsyntax-only -Wextra -fixed 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: line not terminated by a newline [-Wothers]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1774"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1777: \$COBC -fsyntax-only -Wextra -free prog.cob"
at_fn_check_prepare_dynamic "$COBC -fsyntax-only -Wextra -free prog.cob" "syn_misc.at:1777"
( $at_check_trace; $COBC -fsyntax-only -Wextra -free 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: line not terminated by a newline [-Wothers]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:1777"
$at_failed && at_fn_log_failure
$at_traceon; }

# should not happen if the data only consists of space characters
printf "\n              \t " >> prog.cob

{ set +x
$as_echo "$at_srcdir/syn_misc.at:1783: \$COMPILE_ONLY -Wextra prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wextra prog.cob" "syn_misc.at:1783"
( $at_check_trace; $COMPILE_ONLY -Wextra 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/syn_misc.at:1783"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_255
#AT_START_256
at_fn_group_banner 256 'syn_misc.at:1788' \
  "continuation Indicator - too many lines" "        " 2
at_xfail=no
(
  $as_echo "256. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    ' ' END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2332: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:2332"
( $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:538: error: buffer overrun - too many continuation lines
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2332"
$at_failed && at_fn_log_failure
$at_traceon; }


# extra test with listing as this is an edge case there

{ set +x
$as_echo "$at_srcdir/syn_misc.at:2338: \$COMPILE_ONLY -t prog.lst prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst prog.cob" "syn_misc.at:2338"
( $at_check_trace; $COMPILE_ONLY -t prog.lst prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:538: error: buffer overrun - too many continuation lines
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2338"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_256
#AT_START_257
at_fn_group_banner 257 'syn_misc.at:2345' \
  "continuation of COBOL words" "                    " 2
at_xfail=no
(
  $as_echo "257. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           GO
      -    BACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2356: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:2356"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: continuation of COBOL words is archaic in COBOL 2014
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2356"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:2359: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:2359"
( $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: continuation of COBOL words used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2359"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_257
#AT_START_258
at_fn_group_banner 258 'syn_misc.at:2366' \
  "literal too long" "                               " 2
at_xfail=no
(
  $as_echo "258. $at_setup_line: testing $at_desc ..."
  $at_traceon




cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    ' '.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY '    '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           '                                                                                                                                                                                                                                             '-
           ' ' END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2570: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:2570"
( $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 literal: '                                   ...'
prog.cob:9: error: literal length exceeds 8191 characters
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2570"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2575: \$COMPILE_ONLY -fliteral-length=160 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fliteral-length=160 prog.cob" "syn_misc.at:2575"
( $at_check_trace; $COMPILE_ONLY -fliteral-length=160 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 literal: '                                   ...'
prog.cob:9: error: literal length exceeds 160 characters
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2575"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2580: \$COMPILE_ONLY -free prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free prog2.cob" "syn_misc.at:2580"
( $at_check_trace; $COMPILE_ONLY -free prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:9: error: invalid literal: '                                   ...'
prog2.cob:9: error: literal length 8299 exceeds 8191 characters
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2580"
$at_failed && at_fn_log_failure
$at_traceon; }


# extra test with listing as this is an edge case there

{ set +x
$as_echo "$at_srcdir/syn_misc.at:2587: \$COMPILE_ONLY -t prog.lst prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst prog.cob" "syn_misc.at:2587"
( $at_check_trace; $COMPILE_ONLY -t prog.lst 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 literal: '                                   ...'
prog.cob:9: error: literal length exceeds 8191 characters
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2587"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/syn_misc.at:2593: \$COMPILE_ONLY -free -t prog2.lst prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -t prog2.lst prog2.cob" "syn_misc.at:2593"
( $at_check_trace; $COMPILE_ONLY -free -t prog2.lst prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:9: error: invalid literal: '                                   ...'
prog2.cob:9: error: literal length 8299 exceeds 8191 characters
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2593"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$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_258
#AT_START_259
at_fn_group_banner 259 'syn_misc.at:2601' \
  "line and floating comments" "                     " 2
at_xfail=no
(
  $as_echo "259. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
      *    DISPLAY 'COMMENT'             END-DISPLAY
      /    DISPLAY 'COMMENTSLASH'        END-DISPLAY
*          DISPLAY 'MFCOMMENTASTERISK'   END-DISPLAY
/          DISPLAY 'MFCOMMENTSLASH'      END-DISPLAY
 *         DISPLAY 'NOMFCOMMENTASTERISK' END-DISPLAY
 /         DISPLAY 'NOMFCOMMENTSLASH'    END-DISPLAY
        *> DISPLAY 'FLOATING'            END-DISPLAY
 *>        DISPLAY 'NOFLOATING'          END-DISPLAY
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
      *    DISPLAY 'COMMENT'             END-DISPLAY
      /    DISPLAY 'COMMENTSLASH'        END-DISPLAY
      $    DISPLAY 'COMMENTDOLLAR'       END-DISPLAY
*          DISPLAY 'MFCOMMENTASTERISK'   END-DISPLAY
/          DISPLAY 'MFCOMMENTSLASH'      END-DISPLAY
 *         DISPLAY 'NOMFCOMMENTASTERISK' END-DISPLAY
 /         DISPLAY 'NOMFCOMMENTSLASH'    END-DISPLAY
        *> DISPLAY 'FLOATING'            END-DISPLAY
        |  DISPLAY 'ACUFLOATING'         END-DISPLAY
 |         DISPLAY 'NOACUFLOATING'       END-DISPLAY
 *>        DISPLAY 'NOFLOATING'          END-DISPLAY
           STOP RUN.
_ATEOF


cat >prog3.cob <<'_ATEOF'

IDENTIFICATION   DIVISION.
PROGRAM-ID.      prog3.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA             DIVISION.
WORKING-STORAGE  SECTION.
PROCEDURE        DIVISION.
      * DISPLAY 'NOCOMMENT'           END-DISPLAY
      / DISPLAY 'NOCOMMENTSLASH'      END-DISPLAY
      $ DISPLAY 'NOCOMMENTDOLLAR'     END-DISPLAY
*       DISPLAY 'NOMFCOMMENTASTERISK' END-DISPLAY
/       DISPLAY 'NOMFCOMMENTSLASH'    END-DISPLAY
 |      DISPLAY 'ACUFLOATING'         END-DISPLAY
 *>     DISPLAY 'FLOATING'            END-DISPLAY
      x DISPLAY 'WRONGINDICATOR'      END-DISPLAY
        STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2664: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_misc.at:2664"
( $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/syn_misc.at:2664"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2666: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_misc.at:2666"
( $at_check_trace; $COBCRUN_DIRECT ./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 "MFCOMMENTASTERISK
MFCOMMENTSLASH
NOMFCOMMENTASTERISK
NOMFCOMMENTSLASH
NOFLOATING
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2666"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2674: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:2674"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:11: error: invalid indicator '\$' at column 7
prog2.cob:17: error: invalid symbol '|' - skipping word
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2674"
$at_failed && at_fn_log_failure
$at_traceon; }


# note: for checking the result we actually either need to run the program
#       or change it to string concatenation and raise a constant compile time warning
#       we do (historically) the first (for now)
#
{ set +x
$as_echo "$at_srcdir/syn_misc.at:2683: \$COMPILE -fmfcomment prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fmfcomment prog.cob" "syn_misc.at:2683"
( $at_check_trace; $COMPILE -fmfcomment 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/syn_misc.at:2683"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2686: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "syn_misc.at:2686"
( $at_check_trace; $COBCRUN_DIRECT ./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 "NOMFCOMMENTASTERISK
NOMFCOMMENTSLASH
NOFLOATING
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2686"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2692: \$COMPILE_ONLY -fmfcomment prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fmfcomment prog2.cob" "syn_misc.at:2692"
( $at_check_trace; $COMPILE_ONLY -fmfcomment prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:11: error: invalid indicator '\$' at column 7
prog2.cob:17: error: invalid symbol '|' - skipping word
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2692"
$at_failed && at_fn_log_failure
$at_traceon; }


# COMPILE needed, see note above
{ set +x
$as_echo "$at_srcdir/syn_misc.at:2698: \$COMPILE -facucomment prog.cob -o prog1"
at_fn_check_prepare_dynamic "$COMPILE -facucomment prog.cob -o prog1" "syn_misc.at:2698"
( $at_check_trace; $COMPILE -facucomment prog.cob -o prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2698"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2700: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "syn_misc.at:2700"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$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 "MFCOMMENTASTERISK
MFCOMMENTSLASH
NOMFCOMMENTASTERISK
NOMFCOMMENTSLASH
NOFLOATING
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2700"
$at_failed && at_fn_log_failure
$at_traceon; }


# COMPILE needed, see note above
{ set +x
$as_echo "$at_srcdir/syn_misc.at:2709: \$COMPILE -facucomment prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE -facucomment prog2.cob" "syn_misc.at:2709"
( $at_check_trace; $COMPILE -facucomment prog2.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/syn_misc.at:2709"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2711: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "syn_misc.at:2711"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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 "MFCOMMENTASTERISK
MFCOMMENTSLASH
NOMFCOMMENTASTERISK
NOMFCOMMENTSLASH
NOACUFLOATING
NOFLOATING
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2711"
$at_failed && at_fn_log_failure
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/syn_misc.at:2721: \$COMPILE_ONLY -free prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free prog3.cob" "syn_misc.at:2721"
( $at_check_trace; $COMPILE_ONLY -free prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:11: warning: spurious '\$' detected - ignored
prog3.cob:9: error: syntax error, unexpected *
prog3.cob:10: error: syntax error, unexpected /
prog3.cob:12: error: syntax error, unexpected *
prog3.cob:13: error: syntax error, unexpected /
prog3.cob:14: error: invalid symbol '|' - skipping word
prog3.cob:16: error: syntax error, unexpected Identifier
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2721"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:2730: \$COMPILE_ONLY -free -fmfcomment prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fmfcomment prog3.cob" "syn_misc.at:2730"
( $at_check_trace; $COMPILE_ONLY -free -fmfcomment prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:11: warning: spurious '\$' detected - ignored
prog3.cob:9: error: syntax error, unexpected *
prog3.cob:10: error: syntax error, unexpected /
prog3.cob:12: error: syntax error, unexpected *
prog3.cob:13: error: syntax error, unexpected /
prog3.cob:14: error: invalid symbol '|' - skipping word
prog3.cob:16: error: syntax error, unexpected Identifier
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2730"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:2739: \$COMPILE_ONLY -free -facucomment prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -facucomment prog3.cob" "syn_misc.at:2739"
( $at_check_trace; $COMPILE_ONLY -free -facucomment prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:11: warning: spurious '\$' detected - ignored
prog3.cob:9: error: syntax error, unexpected *
prog3.cob:10: error: syntax error, unexpected /
prog3.cob:12: error: syntax error, unexpected *
prog3.cob:13: error: syntax error, unexpected /
prog3.cob:16: error: syntax error, unexpected Identifier
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2739"
$at_failed && at_fn_log_failure
$at_traceon; }

# Check that invalid indicator and doesn't abort preprocessing
# and that errors in preprocessing doesn't abort compilation
{ set +x
$as_echo "$at_srcdir/syn_misc.at:2749: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:2749"
( $at_check_trace; $COMPILE_ONLY prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:2: error: invalid indicator 'F' at column 7
prog3.cob:3: error: invalid indicator 'M' at column 7
prog3.cob:4: error: invalid indicator 'N' at column 7
prog3.cob:5: error: invalid indicator 'U' at column 7
prog3.cob:7: error: invalid indicator 'G' at column 7
prog3.cob:8: error: invalid indicator 'U' at column 7
prog3.cob:11: error: invalid indicator '\$' at column 7
prog3.cob:16: error: invalid indicator 'x' at column 7
prog3.cob:6: error: PROGRAM-ID header missing
prog3.cob:6: error: PROCEDURE DIVISION header missing
prog3.cob:6: error: syntax error, unexpected DIVISION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2749"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_259
#AT_START_260
at_fn_group_banner 260 'syn_misc.at:2766' \
  "word length" "                                    " 2
at_xfail=no
(
  $as_echo "260. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  FILLER        PIC 9(01) VALUE 0.
           88 SOME-SPECIAL-VAL-WITH-LENGTH30    VALUE 0.
           88 SOME-SPECIAL-VAL-WITH-LENGTH-31   VALUE 1.
           88 SOME-SPECIAL-VAL-WITH-LENGTH-32C  VALUE 1.
           88 SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES      VALUE 3.
           88 SOME-SPECIAL-VAL-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE VALUE 4.
       PROCEDURE        DIVISION.
       SOME-SPECIAL-PAR-WITH-LENGTH30.
           SET  SOME-SPECIAL-VAL-WITH-LENGTH30   TO TRUE.
       SOME-SPECIAL-PAR-WITH-LENGTH-31.
           SET  SOME-SPECIAL-VAL-WITH-LENGTH-31  TO TRUE.
       SOME-SPECIAL-PAR-WITH-LENGTH-32C.
           SET  SOME-SPECIAL-VAL-WITH-LENGTH-32C TO TRUE.
       SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES.
           SET  SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES TO TRUE.
       SOME-SPECIAL-PAR-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE.
           SET  SOME-SPECIAL-VAL-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE TO TRUE.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  FILLER        PIC 9(01) VALUE 0.
           88 SOME-SPECIAL-VAL-WITH-LENGTH30    VALUE 0.
           88 SOME-SPECIAL-VAL-WITH-LENGTH-31   VALUE 1.
           88 SOME-SPECIAL-VAL-WITH-LENGTH-32C  VALUE 1.
           88 SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES      VALUE 3.
       PROCEDURE        DIVISION.
       SOME-SPECIAL-PAR-WITH-LENGTH30.
           SET  SOME-SPECIAL-VAL-WITH-LENGTH30   TO TRUE.
       SOME-SPECIAL-PAR-WITH-LENGTH-31.
           SET  SOME-SPECIAL-VAL-WITH-LENGTH-31  TO TRUE.
       SOME-SPECIAL-PAR-WITH-LENGTH-32C.
           SET  SOME-SPECIAL-VAL-WITH-LENGTH-32C TO TRUE.
       SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES.
           SET  SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES TO TRUE.
           STOP RUN.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 COUNTER       PIC 9 VALUE 0.
       PROCEDURE        DIVISION.

       00000000000000000000000000000000000000000000000000000000000
       SECTION.
       000000000000000000000000000000000000000000000000000000000000.
           ADD 1 TO COUNTER END-ADD
           EVALUATE COUNTER
           WHEN 1
           PERFORM
           00000000000000000000000000000000000000000000000000000000000
           WHEN 2
           PERFORM
           000000000000000000000000000000000000000000000000000000000000
           WHEN 3
           MOVE 0 TO COUNTER
           END-EVALUATE.

       100000000000000000000000000000000000000000000000000000000001
       SECTION.
       20000000000000000000000000000000000000000000000000000000002.
           ADD 1 TO COUNTER END-ADD
           EVALUATE COUNTER
           WHEN 1
           PERFORM
           100000000000000000000000000000000000000000000000000000000001
           WHEN 2
           PERFORM
           20000000000000000000000000000000000000000000000000000000002
           WHEN 3
           MOVE 0 TO COUNTER
           END-EVALUATE.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2861: \$COMPILE_ONLY -free -fword-length=31 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=31 prog.cob" "syn_misc.at:2861"
( $at_check_trace; $COMPILE_ONLY -free -fword-length=31 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: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-32C'
prog.cob:12: error: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
prog.cob:13: error: word length exceeds maximum of 63 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE'
prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-31':
prog.cob:19: error: word length exceeds 31 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-32C'
prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-32C':
prog.cob:20: error: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-32C'
prog.cob:21: error: word length exceeds 31 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES':
prog.cob:22: error: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
prog.cob:23: error: word length exceeds maximum of 63 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE'
prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE':
prog.cob:24: error: word length exceeds maximum of 63 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2861"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2877: \$COMPILE_ONLY -free -fword-length=45 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=45 prog.cob" "syn_misc.at:2877"
( $at_check_trace; $COMPILE_ONLY -free -fword-length=45 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:12: error: word length exceeds 45 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
prog.cob:13: error: word length exceeds maximum of 63 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE'
prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-32C':
prog.cob:21: error: word length exceeds 45 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES':
prog.cob:22: error: word length exceeds 45 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
prog.cob:23: error: word length exceeds maximum of 63 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE'
prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE':
prog.cob:24: error: word length exceeds maximum of 63 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2877"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2889: \$COMPILE_ONLY -free -fword-length=60 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=60 prog.cob" "syn_misc.at:2889"
( $at_check_trace; $COMPILE_ONLY -free -fword-length=60 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: word length exceeds maximum of 63 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE'
prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES':
prog.cob:23: error: word length exceeds maximum of 63 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE'
prog.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE':
prog.cob:24: error: word length exceeds maximum of 63 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-90-CHARS-WHO-NEEDS-THAT-LONG-NAMES-I-CANNOT-THINK-OF-SOMEONE'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2889"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2897: \$COMPILE_ONLY -free -fword-length=45 -frelax-syntax-checks prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=45 -frelax-syntax-checks prog2.cob" "syn_misc.at:2897"
( $at_check_trace; $COMPILE_ONLY -free -fword-length=45 -frelax-syntax-checks prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:12: warning: word length exceeds 45 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
prog2.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-32C':
prog2.cob:20: warning: word length exceeds 45 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
prog2.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES':
prog2.cob:21: warning: word length exceeds 45 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2897"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2905: \$COMPILE_ONLY -free -fword-length=60 prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=60 prog2.cob" "syn_misc.at:2905"
( $at_check_trace; $COMPILE_ONLY -free -fword-length=60 prog2.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/syn_misc.at:2905"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2907: \$COMPILE_ONLY -free -fword-length=31 -frelax-syntax-checks prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free -fword-length=31 -frelax-syntax-checks prog2.cob" "syn_misc.at:2907"
( $at_check_trace; $COMPILE_ONLY -free -fword-length=31 -frelax-syntax-checks prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:11: warning: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-32C'
prog2.cob:12: warning: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
prog2.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-31':
prog2.cob:18: warning: word length exceeds 31 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-32C'
prog2.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-32C':
prog2.cob:19: warning: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-32C'
prog2.cob:20: warning: word length exceeds 31 characters: 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
prog2.cob: in paragraph 'SOME-SPECIAL-PAR-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES':
prog2.cob:21: warning: word length exceeds 31 characters: 'SOME-SPECIAL-VAL-WITH-LENGTH-58C-WHO-NEEDS-THAT-LONG-NAMES'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:2907"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2919: \$COMPILE_ONLY -fword-length=59 prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fword-length=59 prog3.cob" "syn_misc.at:2919"
( $at_check_trace; $COMPILE_ONLY -fword-length=59 prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob: in section '00000000000000000000000000000000000000000000000000000000000':
prog3.cob:11: error: word length exceeds 59 characters: '000000000000000000000000000000000000000000000000000000000000'
prog3.cob: in paragraph '000000000000000000000000000000000000000000000000000000000000':
prog3.cob:25: error: word length exceeds 59 characters: '100000000000000000000000000000000000000000000000000000000001'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2919"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_260
#AT_START_261
at_fn_group_banner 261 'syn_misc.at:2929' \
  "Segmentation Module" "                            " 2
at_xfail=no
(
  $as_echo "261. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       PROCEDURE        DIVISION.

       DECLARATIVES.

       DEC-1 SECTION 49.
           CONTINUE.

       DEC-2 SECTION 50.
           CONTINUE.

       END DECLARATIVES.

       SEC-1 SECTION 00.
           CONTINUE.

       SEC-2 SECTION 01.
           CONTINUE.

       SEC-3 SECTION -00.
           CONTINUE.

       SEC-4 SECTION 100.
           CONTINUE.

       SEC-5 SECTION 49.
           CONTINUE.

       SEC-6 SECTION 50.
           PERFORM SEC-1.

       SEC-7 SECTION 99.
           PERFORM SEC-1.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:2972: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:2972"
( $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 'DEC-1':
prog.cob:9: warning: section segments ignored
prog.cob: in section 'DEC-2':
prog.cob:12: warning: section segments ignored
prog.cob: in section 'SEC-1':
prog.cob:17: warning: section segments ignored
prog.cob: in section 'SEC-2':
prog.cob:20: warning: section segments ignored
prog.cob: in section 'SEC-3':
prog.cob:23: error: unsigned integer value expected
prog.cob:23: warning: section segments ignored
prog.cob: in section 'SEC-4':
prog.cob:26: warning: section segments ignored
prog.cob: in section 'SEC-5':
prog.cob:29: warning: section segments ignored
prog.cob: in section 'SEC-6':
prog.cob:32: warning: section segments ignored
prog.cob: in section 'SEC-7':
prog.cob:35: warning: section segments ignored
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2972"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:2993: \$COMPILE_ONLY -std=cobol85 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:2993"
( $at_check_trace; $COMPILE_ONLY -std=cobol85 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 'DEC-1':
prog.cob:9: warning: section segments is obsolete in COBOL 85
prog.cob:9: warning: SECTION segment within DECLARATIVES is not implemented
prog.cob: in section 'DEC-2':
prog.cob:12: warning: section segments is obsolete in COBOL 85
prog.cob:12: error: SECTION segment-number in DECLARATIVES must be less than 50
prog.cob:12: warning: SECTION segment within DECLARATIVES is not implemented
prog.cob: in section 'SEC-1':
prog.cob:17: warning: section segments is obsolete in COBOL 85
prog.cob: in section 'SEC-2':
prog.cob:20: warning: section segments is obsolete in COBOL 85
prog.cob: in section 'SEC-3':
prog.cob:23: error: unsigned integer value expected
prog.cob:23: warning: section segments is obsolete in COBOL 85
prog.cob: in section 'SEC-4':
prog.cob:26: warning: section segments is obsolete in COBOL 85
prog.cob:26: error: SECTION segment-number must be less than or equal to 99
prog.cob: in section 'SEC-5':
prog.cob:29: warning: section segments is obsolete in COBOL 85
prog.cob: in section 'SEC-6':
prog.cob:32: warning: section segments is obsolete in COBOL 85
prog.cob: in section 'SEC-7':
prog.cob:35: warning: section segments is obsolete in COBOL 85
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_261
#AT_START_262
at_fn_group_banner 262 'syn_misc.at:3021' \
  "ACCEPT FROM ESCAPE KEY" "                         " 2
at_xfail=no
(
  $as_echo "262. $at_setup_line: testing $at_desc ..."
  $at_traceon



# TODO: add function test to run_manual_screen.at

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 KEYNUM        PIC 9(04).
       PROCEDURE        DIVISION.

           ACCEPT KEYNUM FROM ESCAPE KEY
           DISPLAY "Key pressed: " KEYNUM
           ACCEPT KEYNUM FROM ESCAPE
           DISPLAY "Key pressed: " KEYNUM
           ACCEPT OMITTED

           STOP RUN.
_ATEOF

{ set +x
$as_echo "$at_srcdir/syn_misc.at:3042: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3042"
( $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/syn_misc.at:3042"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_262
#AT_START_263
at_fn_group_banner 263 'syn_misc.at:3046' \
  "Numeric literals" "                               " 2
at_xfail=no
(
  $as_echo "263. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 COUNTER       PIC 9 VALUE 0.
       PROCEDURE        DIVISION.

      *> No literals at all
       00000000000000000000000000000000000000000000000000000000000
       SECTION.
       000000000000000000000000000000000000000000000000000000000000.
           ADD 1 TO COUNTER END-ADD
           EVALUATE COUNTER
           WHEN 1
           PERFORM
           00000000000000000000000000000000000000000000000000000000000
           WHEN 2
           PERFORM
           000000000000000000000000000000000000000000000000000000000000
           WHEN 3
           MOVE 0 TO COUNTER
           END-EVALUATE.

       100000000000000000000000000000000000000000000000000000000001
       SECTION.
       20000000000000000000000000000000000000000000000000000000002.
           ADD 1 TO COUNTER END-ADD
           EVALUATE COUNTER
           WHEN 1
           PERFORM
           100000000000000000000000000000000000000000000000000000000001
           WHEN 2
           PERFORM
           20000000000000000000000000000000000000000000000000000000002
           WHEN 3
           MOVE 0 TO COUNTER
           END-EVALUATE.

           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
       PROCEDURE        DIVISION.

           *> Valid literals, depending on numeric literal size
           DISPLAY 1.0076, +100000.03, +1.0, -0078,
               +.1234567890123456789012345678901234
               .123456789012345678901234567890123450
           END-DISPLAY

           *> Invalid literals
           DISPLAY 1.03.0     END-DISPLAY
           DISPLAY --123      END-DISPLAY
           DISPLAY -123-      END-DISPLAY
           DISPLAY -123-456   END-DISPLAY
           DISPLAY -123-4.56  END-DISPLAY
           DISPLAY -12.3-456  END-DISPLAY
           DISPLAY -12.3-4.56 END-DISPLAY
           DISPLAY 1000003+   END-DISPLAY
           DISPLAY 1.000003+  END-DISPLAY
           DISPLAY .3+        END-DISPLAY
           DISPLAY 3.+        END-DISPLAY

           STOP RUN.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
       PROCEDURE        DIVISION.

           *> Valid literals, depending on numeric literal size
           DISPLAY 1,0076, +100000,03, +1,0, -0078,
               +,1234567890123456789012345678901234
               ,123456789012345678901234567890123450
           END-DISPLAY

           *> Invalid literals
           DISPLAY 1,03,0     END-DISPLAY
           DISPLAY --123      END-DISPLAY
           DISPLAY -123-      END-DISPLAY
           DISPLAY -123-456   END-DISPLAY
           DISPLAY -123-4,56  END-DISPLAY
           DISPLAY -12,3-456  END-DISPLAY
           DISPLAY -12,3-4,56 END-DISPLAY
           DISPLAY 1000003+   END-DISPLAY
           DISPLAY 1,000003+  END-DISPLAY
           DISPLAY ,3+        END-DISPLAY
           DISPLAY 3,+        END-DISPLAY

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3151: \$COMPILE_ONLY -fliteral-length=1 -fnumeric-literal-length=1 -fword-length=60 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fliteral-length=1 -fnumeric-literal-length=1 -fword-length=60 prog.cob" "syn_misc.at:3151"
( $at_check_trace; $COMPILE_ONLY -fliteral-length=1 -fnumeric-literal-length=1 -fword-length=60 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/syn_misc.at:3151"
$at_failed && at_fn_log_failure
$at_traceon; }


# result with extended scanner for wrong numeric literals:
#AT_CHECK([$COMPILE_ONLY prog2.cob], [1], [],
#[prog2.cob:16: error: invalid numeric literal: '1.03.0'
#prog2.cob:16: error: literal with more than one decimal point
#prog2.cob:17: error: invalid numeric literal: '--123'
#prog2.cob:17: error: literal with more than one sign character
#prog2.cob:18: error: invalid numeric literal: '-123-'
#prog2.cob:18: error: literal with more than one sign character
#prog2.cob:19: error: invalid numeric literal: '-123-456'
#prog2.cob:19: error: literal with more than one sign character
#prog2.cob:20: error: invalid numeric literal: '-123-4.56'
#prog2.cob:20: error: literal with more than one sign character
#prog2.cob:21: error: invalid numeric literal: '-12.3-456'
#prog2.cob:21: error: literal with more than one sign character
#prog2.cob:22: error: invalid numeric literal: '-12.3-4.56'
#prog2.cob:22: error: literal with more than one sign character
#prog2.cob:22: error: literal with more than one decimal point
#prog2.cob:23: error: invalid numeric literal: '1000003+'
#prog2.cob:23: error: sign must appear as leftmost character
#prog2.cob:24: error: invalid numeric literal: '1.000003+'
#prog2.cob:24: error: sign must appear as leftmost character
#prog2.cob:25: error: invalid numeric literal: '.3+'
#prog2.cob:25: error: sign must appear as leftmost character
#prog2.cob:26: error: invalid numeric literal: '3.+'
#prog2.cob:26: error: sign must appear as leftmost character
#])
#AT_CHECK([$COMPILE_ONLY prog3.cob], [1], [],
#[prog3.cob:16: error: invalid numeric literal: '1,03,0'
#prog3.cob:16: error: literal with more than one decimal point
#prog3.cob:17: error: invalid numeric literal: '--123'
#prog3.cob:17: error: literal with more than one sign character
#prog3.cob:18: error: invalid numeric literal: '-123-'
#prog3.cob:18: error: literal with more than one sign character
#prog3.cob:19: error: invalid numeric literal: '-123-456'
#prog3.cob:19: error: literal with more than one sign character
#prog3.cob:20: error: invalid numeric literal: '-123-4,56'
#prog3.cob:20: error: literal with more than one sign character
#prog3.cob:21: error: invalid numeric literal: '-12,3-456'
#prog3.cob:21: error: literal with more than one sign character
#prog3.cob:22: error: invalid numeric literal: '-12,3-4,56'
#prog3.cob:22: error: literal with more than one sign character
#prog3.cob:22: error: literal with more than one decimal point
#prog3.cob:23: error: invalid numeric literal: '1000003+'
#prog3.cob:23: error: sign must appear as leftmost character
#prog3.cob:24: error: invalid numeric literal: '1,000003+'
#prog3.cob:24: error: sign must appear as leftmost character
#prog3.cob:25: error: invalid numeric literal: ',3+'
#prog3.cob:25: error: sign must appear as leftmost character
#prog3.cob:26: error: invalid numeric literal: '3,+'
#prog3.cob:26: error: sign must appear as leftmost character
#])

{ set +x
$as_echo "$at_srcdir/syn_misc.at:3205: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:3205"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:17: error: syntax error, unexpected -, expecting (
prog2.cob:18: error: syntax error, unexpected -
prog2.cob:23: error: syntax error, unexpected +
prog2.cob:24: error: syntax error, unexpected +
prog2.cob:25: error: syntax error, unexpected +
prog2.cob:26: error: syntax error, unexpected +
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3205"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:3213: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:3213"
( $at_check_trace; $COMPILE_ONLY prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:17: error: syntax error, unexpected -, expecting (
prog3.cob:18: error: syntax error, unexpected -
prog3.cob:23: error: syntax error, unexpected +
prog3.cob:24: error: syntax error, unexpected +
prog3.cob:25: error: syntax error, unexpected +
prog3.cob:26: error: syntax error, unexpected +
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3213"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_263
#AT_START_264
at_fn_group_banner 264 'syn_misc.at:3225' \
  "floating-point literals" "                        " 2
at_xfail=no
(
  $as_echo "264. $at_setup_line: testing $at_desc ..."
  $at_traceon

# Refer to Section 8.3.1.2.2.2 of COBOL 2014.


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           *> Valid literals
           DISPLAY 1.0E6144, +1.0E+3, +1.0E-6143, 123.E1,
               +.123456789012345678901234567890123456E+0000
           END-DISPLAY

           *> invalid literals
           DISPLAY 1.0D3 END-DISPLAY
           DISPLAY 1E3 END-DISPLAY
           DISPLAY '1.0E3'BLAH END-DISPLAY
           DISPLAY 1.0E3.0 END-DISPLAY
           DISPLAY -0.0E-0 END-DISPLAY
           DISPLAY 1.0E00003 END-DISPLAY
           DISPLAY .123456789012345678901234567890123456789E0
           END-DISPLAY
           DISPLAY 0.0E3 END-DISPLAY

           *> Implementor-defined invalid literals
           DISPLAY 1.0E6145 END-DISPLAY
           DISPLAY 1.0E-6144 END-DISPLAY

           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
            DECIMAL-POINT IS COMMA.
       PROCEDURE        DIVISION.
           *> Valid literals
           DISPLAY 1,0E6144; +1,0E+3; +1,0E-6143; 123,E1;
               +,123456789012345678901234567890123456E+0000
           END-DISPLAY

           *> invalid literals
           DISPLAY 1,0D3 END-DISPLAY
           DISPLAY 1E3 END-DISPLAY
           DISPLAY 1,0E3BLAH END-DISPLAY
           DISPLAY 1,0E3,0 END-DISPLAY
           DISPLAY -0,0E-0 END-DISPLAY
           DISPLAY 1,0E00003 END-DISPLAY
           DISPLAY ,123456789012345678901234567890123456789E0
           END-DISPLAY
           DISPLAY 0,0E3 END-DISPLAY

           *> Implementor-defined invalid literals
           DISPLAY 1,0E6145 END-DISPLAY
           DISPLAY 1,0E-6144 END-DISPLAY

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3287: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3287"
( $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: 'D3' is not defined
prog.cob:12: error: '1E3' is not defined
prog.cob:13: error: 'BLAH' is not defined
prog.cob:14: error: invalid floating-point literal: '1.0E3.0'
prog.cob:14: error: exponent has decimal point
prog.cob:15: error: invalid floating-point literal: '-0.0E-0'
prog.cob:15: error: significand of 0 must be positive
prog.cob:15: error: exponent of 0 must be positive
prog.cob:16: error: invalid floating-point literal: '1.0E00003'
prog.cob:16: error: exponent has more than 4 digits
prog.cob:17: error: invalid floating-point literal: '.123456789012345678901234567890123 ...'
prog.cob:17: error: significand has more than 36 digits
prog.cob:19: error: invalid floating-point literal: '0.0E3'
prog.cob:19: error: exponent of 0 must be 0
prog.cob:22: error: invalid floating-point literal: '1.0E6145'
prog.cob:22: error: exponent not between -6143 and 6144
prog.cob:23: error: invalid floating-point literal: '1.0E-6144'
prog.cob:23: error: exponent not between -6143 and 6144
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3287"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3308: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:3308"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:15: error: 'D3' is not defined
prog2.cob:16: error: '1E3' is not defined
prog2.cob:17: error: 'BLAH' is not defined
prog2.cob:18: error: invalid floating-point literal: '1,0E3,0'
prog2.cob:18: error: exponent has decimal point
prog2.cob:19: error: invalid floating-point literal: '-0,0E-0'
prog2.cob:19: error: significand of 0 must be positive
prog2.cob:19: error: exponent of 0 must be positive
prog2.cob:20: error: invalid floating-point literal: '1,0E00003'
prog2.cob:20: error: exponent has more than 4 digits
prog2.cob:21: error: invalid floating-point literal: ',123456789012345678901234567890123 ...'
prog2.cob:21: error: significand has more than 36 digits
prog2.cob:23: error: invalid floating-point literal: '0,0E3'
prog2.cob:23: error: exponent of 0 must be 0
prog2.cob:26: error: invalid floating-point literal: '1,0E6145'
prog2.cob:26: error: exponent not between -6143 and 6144
prog2.cob:27: error: invalid floating-point literal: '1,0E-6144'
prog2.cob:27: error: exponent not between -6143 and 6144
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3308"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_264
#AT_START_265
at_fn_group_banner 265 'syn_misc.at:3332' \
  "X literals" "                                     " 2
at_xfail=no
(
  $as_echo "265. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       PROCEDURE      DIVISION.
           *> Valid form
           DISPLAY X"0123456789ABCDEF"

           *> invalid form
           DISPLAY X"GH"
                   X"1"
           END-DISPLAY.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3348: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3348"
( $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 X literal: 'GH'
prog.cob:9: error: literal contains invalid character 'G'
prog.cob:9: error: literal contains invalid character 'H'
prog.cob:10: error: invalid X literal: '1'
prog.cob:10: error: literal does not have an even number of digits
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3348"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_265
#AT_START_266
at_fn_group_banner 266 'syn_misc.at:3359' \
  "national literals" "                              " 2
at_xfail=no
(
  $as_echo "266. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       PROCEDURE      DIVISION.
           DISPLAY N"UTF-16 string".
           DISPLAY N'0123456789ABCDEF'.
           DISPLAY N"0123456789ABCDEF"-
                   N"0123456789ABCDEF".
           DISPLAY NC"0123456789ABCDEF"-
                   NC'0123456789ABCDEF'.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3374: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3374"
( $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: warning: handling of national literal is unfinished; implementation is likely to be changed
prog.cob:6: warning: handling of national literal is unfinished; implementation is likely to be changed
prog.cob:7: warning: handling of national literal is unfinished; implementation is likely to be changed
prog.cob:8: warning: handling of national literal is unfinished; implementation is likely to be changed
prog.cob:9: warning: national-character literal used
prog.cob:9: warning: handling of national literal is unfinished; implementation is likely to be changed
prog.cob:10: warning: national-character literal used
prog.cob:10: warning: handling of national literal is unfinished; implementation is likely to be changed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3374"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3385: \$COMPILE_ONLY -std=cobol85 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:3385"
( $at_check_trace; $COMPILE_ONLY -std=cobol85 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: national literal does not conform to COBOL 85
prog.cob:6: error: national literal does not conform to COBOL 85
prog.cob:7: error: national literal does not conform to COBOL 85
prog.cob:8: error: national literal does not conform to COBOL 85
prog.cob:9: error: national-character literal does not conform to COBOL 85
prog.cob:10: error: national-character literal does not conform to COBOL 85
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3385"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_266
#AT_START_267
at_fn_group_banner 267 'syn_misc.at:3397' \
  "NX literals" "                                    " 2
at_xfail=no
(
  $as_echo "267. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       PROCEDURE      DIVISION.
           *> Valid form
           DISPLAY NX"265E"
           DISPLAY NX"0123456789ABCDEF"

           *> invalid form
           DISPLAY NX"GH"
                   NX"1".
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3413: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3413"
( $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: handling of national literal is unfinished; implementation is likely to be changed
prog.cob:7: warning: handling of national literal is unfinished; implementation is likely to be changed
prog.cob:10: warning: handling of national literal is unfinished; implementation is likely to be changed
prog.cob:10: error: invalid NX literal: 'GH'
prog.cob:10: error: literal contains invalid character 'G'
prog.cob:10: error: literal contains invalid character 'H'
prog.cob:11: warning: handling of national literal is unfinished; implementation is likely to be changed
prog.cob:11: error: invalid NX literal: '1'
prog.cob:11: error: literal does not have an even number of digits
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3413"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3425: \$COMPILE_ONLY -std=cobol85 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:3425"
( $at_check_trace; $COMPILE_ONLY -std=cobol85 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: hexadecimal-national literal does not conform to COBOL 85
prog.cob:7: error: hexadecimal-national literal does not conform to COBOL 85
prog.cob:10: error: hexadecimal-national literal does not conform to COBOL 85
prog.cob:11: error: hexadecimal-national literal does not conform to COBOL 85
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3425"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_267
#AT_START_268
at_fn_group_banner 268 'syn_misc.at:3435' \
  "binary literals" "                                " 2
at_xfail=no
(
  $as_echo "268. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY B"101010"
           DISPLAY B"111111111111111111111111111111111111111111111111111
      -             "1111111111111" *> " Syntax highlighting hack

           DISPLAY B"23"
           DISPLAY B"111111111111111111111111111111111111111111111111111
      -             "111111111111111111111111111111111111111111111111111
      -             "11111111111111111111111111111111111111111111111111"
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3453: \$COMPILE_ONLY -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf prog.cob" "syn_misc.at:3453"
( $at_check_trace; $COMPILE_ONLY -std=mf 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 B literal: '23'
prog.cob:9: error: literal contains invalid character '2'
prog.cob:9: error: literal contains invalid character '3'
prog.cob:10: error: invalid B literal: '1111111111111111111111111111111111 ...'
prog.cob:10: error: literal length 152 exceeds 64 characters
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3453"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3461: \$COMPILE_ONLY -std=cobol85 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:3461"
( $at_check_trace; $COMPILE_ONLY -std=cobol85 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: numeric boolean literal does not conform to COBOL 85
prog.cob:6: error: numeric boolean literal does not conform to COBOL 85
prog.cob:9: error: numeric boolean literal does not conform to COBOL 85
prog.cob:10: error: numeric boolean literal does not conform to COBOL 85
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3461"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_268
#AT_START_269
at_fn_group_banner 269 'syn_misc.at:3471' \
  "binary-hexadecimal literals" "                    " 2
at_xfail=no
(
  $as_echo "269. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY BX"AB05CD0F"
           DISPLAY        BX"0123456789ABCDEF0123456789ABCDEF0123456789A
      -              "BCDEF" *> " Syntax highlighting hack

           DISPLAY BX"A"
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3486: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3486"
( $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 BX literal: '0123456789ABCDEF0123456789ABCDEF01 ...'
prog.cob:6: error: literal length 192 exceeds 64 characters
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3486"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3491: \$COMPILE_ONLY -std=cobol85 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:3491"
( $at_check_trace; $COMPILE_ONLY -std=cobol85 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: hexadecimal-boolean literal does not conform to COBOL 85
prog.cob:6: error: hexadecimal-boolean literal does not conform to COBOL 85
prog.cob:9: error: hexadecimal-boolean literal does not conform to COBOL 85
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3491"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_269
#AT_START_270
at_fn_group_banner 270 'syn_misc.at:3500' \
  "HP COBOL octal literals" "                        " 2
at_xfail=no
(
  $as_echo "270. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           *> Valid forms
           DISPLAY %17 %37777777777 %456

           *> invalid forms
           DISPLAY %11111111111111111111111
           DISPLAY %89

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3517: \$COMPILE_ONLY -Wno-unfinished -fhp-octal-literals=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-unfinished -fhp-octal-literals=ok prog.cob" "syn_misc.at:3517"
( $at_check_trace; $COMPILE_ONLY -Wno-unfinished -fhp-octal-literals=ok 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 % literal: '11111111111111111111111'
prog.cob:9: error: literal length 23 exceeds 22 characters
prog.cob:10: error: invalid % literal: '89'
prog.cob:10: error: literal contains invalid character '8'
prog.cob:10: error: literal contains invalid character '9'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3517"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3525: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:3525"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: HP COBOL octal literal does not conform to COBOL 2014
prog.cob:6: error: HP COBOL octal literal does not conform to COBOL 2014
prog.cob:6: error: HP COBOL octal literal does not conform to COBOL 2014
prog.cob:9: error: HP COBOL octal literal does not conform to COBOL 2014
prog.cob:10: error: HP COBOL octal literal does not conform to COBOL 2014
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3525"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_270
#AT_START_271
at_fn_group_banner 271 'syn_misc.at:3536' \
  "ACUCOBOL literals" "                              " 2
at_xfail=no
(
  $as_echo "271. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           *> Valid forms
           DISPLAY B#10 O#12345670123 X#12345678 H#90aBcDeF
           END-DISPLAY

           *> invalid forms
       >>SOURCE FREE
           DISPLAY B#11111111111111111111111111111111111111111111111111111111111111111
               O#11111111111111111111111 X#11111111111111111 H#22222222222222222
       >>SOURCE FIXED
           DISPLAY B#23 O#89 X#GG H#HH

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3557: \$COMPILE_ONLY -std=acu prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_misc.at:3557"
( $at_check_trace; $COMPILE_ONLY -std=acu 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: invalid B# literal: '1111111111111111111111111111111111 ...'
prog.cob:11: error: literal length 65 exceeds 64 characters
prog.cob:12: error: invalid O# literal: '11111111111111111111111'
prog.cob:12: error: literal length 23 exceeds 22 characters
prog.cob:12: error: invalid hexadecimal literal: '11111111111111111'
prog.cob:12: error: literal length 17 exceeds 16 characters
prog.cob:12: error: invalid hexadecimal literal: '22222222222222222'
prog.cob:12: error: literal length 17 exceeds 16 characters
prog.cob:14: error: invalid B# literal: '23'
prog.cob:14: error: literal contains invalid character '2'
prog.cob:14: error: literal contains invalid character '3'
prog.cob:14: error: invalid O# literal: '89'
prog.cob:14: error: literal contains invalid character '8'
prog.cob:14: error: literal contains invalid character '9'
prog.cob:14: error: invalid X# literal: 'GG'
prog.cob:14: error: literal contains invalid character 'G'
prog.cob:14: error: literal contains invalid character 'G'
prog.cob:14: error: invalid H# literal: 'HH'
prog.cob:14: error: literal contains invalid character 'H'
prog.cob:14: error: literal contains invalid character 'H'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3557"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3580: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:3580"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: ACUCOBOL numeric literal does not conform to COBOL 2014
prog.cob:6: error: ACUCOBOL numeric literal does not conform to COBOL 2014
prog.cob:6: error: ACUCOBOL numeric literal does not conform to COBOL 2014
prog.cob:6: error: ACUCOBOL numeric literal does not conform to COBOL 2014
prog.cob:11: error: ACUCOBOL numeric literal does not conform to COBOL 2014
prog.cob:12: error: ACUCOBOL numeric literal does not conform to COBOL 2014
prog.cob:12: error: ACUCOBOL numeric literal does not conform to COBOL 2014
prog.cob:12: error: ACUCOBOL numeric literal does not conform to COBOL 2014
prog.cob:14: error: ACUCOBOL numeric literal does not conform to COBOL 2014
prog.cob:14: error: ACUCOBOL numeric literal does not conform to COBOL 2014
prog.cob:14: error: ACUCOBOL numeric literal does not conform to COBOL 2014
prog.cob:14: error: ACUCOBOL numeric literal does not conform to COBOL 2014
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3580"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_271
#AT_START_272
at_fn_group_banner 272 'syn_misc.at:3598' \
  "ACUCOBOL 32bit literal size" "                    " 2
at_xfail=no
(
  $as_echo "272. $at_setup_line: testing $at_desc ..."
  $at_traceon

# ACUCOBOL literal max - the result is system dependent on size of unsigned long int
$as_echo "syn_misc.at:3600" >"$at_check_line_file"
at_fn_check_skip 77 "$at_srcdir/syn_misc.at:3600"



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.

       >>SOURCE FREE
           DISPLAY B#1111111111111111111111111111111111111111111111111111111111111111
               O#1111111111111111111111 X#1111111111111111

           STOP RUN.
_ATEOF


#AT_CHECK([$COMPILE_ONLY -std=acu prog.cob], [0], [], [])
# TODO check the result according to COB_32_BIT_LONG --> 1 should result in the following
{ set +x
$as_echo "$at_srcdir/syn_misc.at:3618: \$COMPILE_ONLY -std=acu prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_misc.at:3618"
( $at_check_trace; $COMPILE_ONLY -std=acu 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: invalid B# literal: '11111111111111111111111111111111111...'
prog.cob:7: error: literal exceeds limit 4294967295
prog.cob:8: error: invalid O# literal: '1111111111111111111111'
prog.cob:8: error: literal exceeds limit 4294967295
prog.cob:8: error: invalid X# literal: '1111111111111111'
prog.cob:8: error: literal exceeds limit 4294967295
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3618"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_272
#AT_START_273
at_fn_group_banner 273 'syn_misc.at:3629' \
  "ACUCOBOL USAGE FLOAT / DOUBLE" "                  " 2
at_xfail=no
(
  $as_echo "273. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       77  myfloat       usage float
                         value is 3.97E+24.
       77  mydouble      usage double
                         value is 3.97E+44.
       PROCEDURE DIVISION.
       MAIN.
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3647: \$COMPILE_ONLY -std=acu-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:3647"
( $at_check_trace; $COMPILE_ONLY -std=acu-strict 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/syn_misc.at:3647"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:3648: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3648"
( $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/syn_misc.at:3648"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3650: \$COMPILE_ONLY -std=mf-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_misc.at:3650"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict 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: 'float' is not defined, but is a reserved word in another dialect
prog.cob:8: error: 'double' is not defined, but is a reserved word in another dialect
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3650"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_273
#AT_START_274
at_fn_group_banner 274 'syn_misc.at:3658' \
  "ACUCOBOL USAGE HANDLE" "                          " 2
at_xfail=no
(
  $as_echo "274. $at_setup_line: testing $at_desc ..."
  $at_traceon



# TODO: need a better test here
# TODO: maybe add a compiler support configuration to provide better messages

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       78  listdir-open                value 1.
       78  listdir-next                value 2.
       78  listdir-close               value 3.
       77  pattern           pic x(5) value "*.cob".
       77  directory         pic x(5) value ".".
       77  filename          pic x(256).
       77  mydir             usage handle.

       77  mythread          usage handle of thread.
       77  unused-thread           handle    thread.

       77  mywindow          usage handle of window.

       77  nor-a-handle      usage handle bananas.
       77  neither-a-handle  usage handle of apes.
       77  control-handle    usage handle of label.

       PROCEDURE DIVISION.
       MAIN.
      * Call LISTDIR-OPEN to get a directory handle.
           call "C$LIST-DIRECTORY"
              using listdir-open, directory, pattern.
           move return-code to mydir.
      * Call LISTDIR-NEXT to get the names of the files.
      * Repeat this operation until a filename containing only
      * spaces is returned.  The filenames are not necessarily
      * returned in any particular order.  Filenames may be
      * sorted on some machines and not on others.
           perform thread with test after until filename = spaces
             handle in mywindow
              call "C$LIST-DIRECTORY"
                 using listdir-next, mydir, filename
           end-perform.
           stop thread mywindow
      * Call LISTDIR-CLOSE to close the directory and deallocate
      * memory. Omitting this call will result in memory leaks.
           call "C$LIST-DIRECTORY" using listdir-close, mydir.
      *
           CALL IN THREAD 'NOTHERE'
                HANDLE IN mywindow
                USING  'STUFF'
              NOT ON EXCEPTION  DISPLAY 'called in THREAD'
           END-CALL
      *
      *    Just to check that the handles are still recognized and usable:
           destroy neither-a-handle, control-handle
      *
      *    check for invalid use
           add  neither-a-handle to control-handle
           compute mywindow = 0
           string mydir delimited by size into filename
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3724: \$COMPILE_ONLY -std=acu-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:3724"
( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:19: error: unknown HANDLE type: bananas
prog.cob:20: error: unknown HANDLE type: apes
prog.cob:21: warning: HANDLE OF control-type is not implemented
prog.cob: in paragraph 'MAIN':
prog.cob:34: warning: THREAD is not implemented
prog.cob:36: warning: THREAD is not implemented
prog.cob:35: error: HANDLE must be either a generic or a THREAD HANDLE
prog.cob:39: error: HANDLE must be either a generic or a THREAD HANDLE
prog.cob:39: warning: STOP THREAD is replaced by STOP RUN
prog.cob:44: warning: THREAD is not implemented
prog.cob:46: warning: THREAD is not implemented
prog.cob:45: error: HANDLE must be either a generic or a THREAD HANDLE
prog.cob:51: warning: GRAPHICAL CONTROL is not implemented
prog.cob:54: error: HANDLE item not allowed here: 'neither-a-handle'
prog.cob:55: error: HANDLE item not allowed here: 'mywindow'
prog.cob:56: error: HANDLE item not allowed here: 'mydir'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3724"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3743: \$COMPILE_ONLY -std=rm-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=rm-strict prog.cob" "syn_misc.at:3743"
( $at_check_trace; $COMPILE_ONLY -std=rm-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:12: error: 'handle' is not defined, but is a reserved word in another dialect
prog.cob:14: error: 'handle' is not defined, but is a reserved word in another dialect
prog.cob:15: error: syntax error, unexpected Identifier
prog.cob:17: error: 'handle' is not defined, but is a reserved word in another dialect
prog.cob:19: error: 'handle' is not defined, but is a reserved word in another dialect
prog.cob:20: error: 'handle' is not defined, but is a reserved word in another dialect
prog.cob:21: error: 'handle' is not defined, but is a reserved word in another dialect
prog.cob:15: error: PICTURE clause required for 'unused-thread'
prog.cob: in paragraph 'MAIN':
prog.cob:35: error: 'handle IN mywindow' is not defined
prog.cob:34: error: invalid expression
prog.cob:38: error: syntax error, unexpected END-PERFORM
prog.cob:39: error: 'thread' is not defined, but is a reserved word in another dialect
prog.cob:39: error: syntax error, unexpected Identifier
prog.cob:44: error: syntax error, unexpected Identifier, expecting THREAD
prog.cob:48: error: syntax error, unexpected END-CALL
prog.cob:51: error: syntax error, unexpected Identifier
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3743"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_274
#AT_START_275
at_fn_group_banner 275 'syn_misc.at:3766' \
  "ACUCOBOL WINDOW statements" "                     " 2
at_xfail=no
(
  $as_echo "275. $at_setup_line: testing $at_desc ..."
  $at_traceon



# TODO: need a better tests when we implement this,
#       likely split into multiple ones

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       77  myhandle      usage handle.
       77  mythread      usage handle of thread.
       77  WINDOW-HANDLE usage handle of window.
       PROCEDURE DIVISION.
       MAIN.
           DISPLAY WINDOW, LINE 1, COLUMN 29, SIZE 51, LINES 12,
               ERASE SCREEN BOXED SHADOW, POP-UP AREA IS WINDOW-HANDLE
           END-DISPLAY
           DISPLAY "THIS IS TEXT IN A WINDOW"
           DISPLAY FLOATING WINDOW UPON WINDOW-HANDLE,
               LINE 5, COLUMN 10, SIZE 20, LINES 2,
               ERASE SCREEN, POP-UP AREA IS myhandle
           END-DISPLAY
           DISPLAY "Some text for the floating window"
           ACCEPT OMITTED
           CLOSE WINDOW myhandle
           DISPLAY FLOATING WINDOW,
               LINE 5, COLUMN 10, SIZE 20, LINES 2,
               ERASE SCREEN, POP-UP AREA mythread
           END-DISPLAY
           ACCEPT OMITTED
           DESTROY WINDOW-HANDLE
           DISPLAY WINDOW AT 1020 SIZE 36 LINES 15 BOXED
              FOREGROUND-COLOR IS 7
              BACKGROUND-COLOR IS 0
              TOP CENTERED TITLE IS 'SOME TITLE'
              pop-up area = WINDOW-HANDLE.
           DISPLAY SUBWINDOW UPON WINDOW-HANDLE SHADOW
              AT 0505 SIZE 25 LINES 10
              BOTTOM LEFT TITLE = 'buttom left'
              BACKGROUND-COLOR IS 10
              FOREGROUND-COLOR IS 5.
           DISPLAY WINDOW UPON WINDOW-HANDLE SHADOW
              AT 0808 SIZE 18 LINES 5
              RIGHT TITLE 'top right'
              BACKGROUND-COLOR 1
              FOREGROUND-COLOR 14.
           ACCEPT OMITTED
           DESTROY WINDOW-HANDLE
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3820: \$COMPILE_ONLY -std=acu-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:3820"
( $at_check_trace; $COMPILE_ONLY -std=acu-strict 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 'MAIN':
prog.cob:11: warning: GRAPHICAL WINDOW is not implemented
prog.cob:15: warning: GRAPHICAL WINDOW is not implemented
prog.cob:21: warning: GRAPHICAL WINDOW is not implemented
prog.cob:22: warning: GRAPHICAL WINDOW is not implemented
prog.cob:24: error: HANDLE must be either a generic or a WINDOW HANDLE or X(10)
prog.cob:27: warning: GRAPHICAL CONTROL is not implemented
prog.cob:28: warning: GRAPHICAL WINDOW is not implemented
prog.cob:33: warning: GRAPHICAL WINDOW is not implemented
prog.cob:38: warning: GRAPHICAL WINDOW is not implemented
prog.cob:44: warning: GRAPHICAL CONTROL is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3820"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3834: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3834"
( $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 paragraph 'MAIN':
prog.cob:11: warning: GRAPHICAL WINDOW is not implemented
prog.cob:15: warning: GRAPHICAL WINDOW is not implemented
prog.cob:21: warning: GRAPHICAL WINDOW is not implemented
prog.cob:22: warning: GRAPHICAL WINDOW is not implemented
prog.cob:24: error: HANDLE must be either a generic or a WINDOW HANDLE or X(10)
prog.cob:27: warning: GRAPHICAL CONTROL is not implemented
prog.cob:28: warning: GRAPHICAL WINDOW is not implemented
prog.cob:33: warning: GRAPHICAL WINDOW is not implemented
prog.cob:38: warning: GRAPHICAL WINDOW is not implemented
prog.cob:44: warning: GRAPHICAL CONTROL is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:3834"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_275
#AT_START_276
at_fn_group_banner 276 'syn_misc.at:3851' \
  "ACUCOBOL GRAPHICAL controls" "                    " 2
at_xfail=no
(
  $as_echo "276. $at_setup_line: testing $at_desc ..."
  $at_traceon



# TODO: need a better tests when we implement this,
#       likely split into multiple ones

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       77  window-handle USAGE HANDLE OF WINDOW.
       77  lb-row        PIC X(10).
       77  lb-color      PIC 9(05) VALUE 8192.
       77  lb-num-lines  PIC 9(02) VALUE 20.
       77  lb-num-rows   PIC 9(02) VALUE 11.
       77  window-lines  PIC 9(02) VALUE 22.
       77  window-rows   PIC 9(02) VALUE 13.
       77  selection-idx PIC S9(02).
       SCREEN SECTION.
       01 lb-screen.
           03 lb-frm LIST-BOX 3-D
      *             FIXME: the following should be possible in any order
                    UNSORTED
                    EXCEPTION-VALUE = 13
                    COLOR lb-color
                    CLINE 1 CCOL 1
                    LINES = lb-num-lines
                    SIZE  IS lb-num-rows
      *             VALUE lb-row  raises error as no identifer according
      *                           to cobol2002, but here it is fine
                    .
       PROCEDURE DIVISION.
       MAIN.
           MODIFY lb-frm ITEM-TO-ADD = 'Row 1'
           MODIFY lb-frm ITEM-TO-ADD = 'Row 2'
           MODIFY lb-frm ITEM-TO-ADD = 'Row 3'
           MODIFY lb-frm ITEM-TO-ADD = 'Row 4'
           MODIFY lb-frm ITEM-TO-ADD = 'Row 5'
           MODIFY lb-frm ITEM-TO-ADD = 'Row 6'
           MODIFY lb-frm ITEM-TO-ADD = 'Row 7'
           DISPLAY FLOATING WINDOW
               LINE 5 COL 5
               LINES window-lines
               SIZE  window-rows
               BOXED
               COLOR lb-color
               HANDLE IS window-handle
           END-DISPLAY
           DISPLAY lb-screen
           ACCEPT  lb-screen
           IF lb-row = SPACES
              INQUIRE lb-frm SELECTION-INDEX IN selection-idx
              IF selection-idx > ZERO
                 MODIFY  lb-frm QUERY-INDEX = selection-idx
                 INQUIRE lb-frm ITEM-VALUE IN lb-row
              END-IF
           END-IF
           CLOSE WINDOW window-handle
           DISPLAY "chosen row value was '" lb-row "'"
           ACCEPT OMITTED
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3916: \$COMPILE_ONLY -std=acu-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:3916"
( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:16: warning: GRAPHICAL CONTROL is not implemented
prog.cob:21: warning: COLOR clause is not implemented
prog.cob:23: warning: LINES clause is not implemented
prog.cob:26: warning: screen positions from data-item is not implemented
prog.cob: in paragraph 'MAIN':
prog.cob:36: warning: GRAPHICAL WINDOW is not implemented
prog.cob:42: warning: COLOR is not implemented
prog.cob:53: warning: GRAPHICAL WINDOW is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3916"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_276
#AT_START_277
at_fn_group_banner 277 'syn_misc.at:3930' \
  "DISPLAY MESSAGE BOX" "                            " 2
at_xfail=no
(
  $as_echo "277. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       77  my-text             pic x(10) value "TEXT".
       78  MB-OK               VALUE 1.
       78  MB-YES-NO           VALUE 2.
       78  MB-OK-CANCEL        VALUE 3.
       78  MB-YES-NO-CANCEL    VALUE 4.
       78  MB-YES              VALUE 1.
       78  MB-NO               VALUE 2.
       78  MB-CANCEL           VALUE 3.
       78  MB-DEFAULT-ICON     VALUE 1.
       78  MB-WARNING-ICON     VALUE 2.
       78  MB-ERROR-ICON       VALUE 3.
       PROCEDURE DIVISION.
           DISPLAY MESSAGE "Important"
                   TITLE "Very important"
                   TYPE = MB-OK
                   ICON IS MB-WARNING-ICON
           DISPLAY MESSAGE "This is" space "my" space my-text
           DISPLAY MESSAGE BOX "More messages?"
                   TYPE  MB-YES-NO
                   TITLE = "box title"
                   DEFAULT IS MB-YES
                   RETURNING RETURN-CODE
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3964: \$COMPILE_ONLY -std=acu-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:3964"
( $at_check_trace; $COMPILE_ONLY -std=acu-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:18: warning: handling of DISPLAY MESSAGE is unfinished; implementation is likely to be changed
prog.cob:22: warning: handling of DISPLAY MESSAGE is unfinished; implementation is likely to be changed
prog.cob:23: warning: handling of DISPLAY MESSAGE is unfinished; implementation is likely to be changed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3964"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_277
#AT_START_278
at_fn_group_banner 278 'syn_misc.at:3973' \
  "DISPLAY OMITTED" "                                " 2
at_xfail=no
(
  $as_echo "278. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE DIVISION.
           DISPLAY OMITTED WITH BELL
           DISPLAY OMITTED LINE 10 COL 15 ERASE EOL
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:3986: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:3986"
( $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: warning: handling of DISPLAY OMITTED is unfinished; implementation is likely to be changed
prog.cob:6: warning: handling of DISPLAY OMITTED is unfinished; implementation is likely to be changed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:3986"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_278
#AT_START_279
at_fn_group_banner 279 'syn_misc.at:3994' \
  "CGI: EXTERNAL-FORM" "                             " 2
at_xfail=no
(
  $as_echo "279. $at_setup_line: testing $at_desc ..."
  $at_traceon



# TODO: need a better tests when we implement this,
#       likely split into multiple ones

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  GNUCOBOL-URL IS EXTERNAL-FORM
                IDENTIFIED BY "http://www.gnu.org/software/gnucobol/".
       01  WEB-PAGE-1 EXTERNAL-FORM,
                IDENTIFIED "cgipage1".
       01  SIMPLE-FORM IS EXTERNAL-FORM.
           03  SIMPLE-FORM-VAR1  PIC X(10).
           03  SIMPLE-FORM-VAR2  PIC 9(5).
       01  MY-FORM EXTERNAL-FORM.
           03  CGI-VAR1 PIC X(20) IDENTIFIED "Name".
           03  CGI-VAR2 PIC X(50) IDENTIFIED BY CGI-VAR1.

       PROCEDURE DIVISION.
       MAIN.
      *>   CGI display of static content (full URL)
           DISPLAY GNUCOBOL-URL
      *>   CGI display of static content (current URL + "cgipage1" + ".html")
           DISPLAY WEB-PAGE-1
      *>   CGI display of output form
           DISPLAY MY-FORM
      *>   CGI display of input  form (docs say: used for debugging purposes)
           DISPLAY SIMPLE-FORM
      *>   CGI accept
           ACCEPT SIMPLE-FORM
      *>   normal accept
           ACCEPT SIMPLE-FORM-VAR1
      *>   CGI accept with first var (with cgi identifier Name)
      *>   setting the cgi identifier of the second
           ACCEPT MY-FORM
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4037: \$COMPILE_ONLY -std=acu-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_misc.at:4037"
( $at_check_trace; $COMPILE_ONLY -std=acu-strict 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: EXTERNAL-FORM is not implemented
prog.cob:8: warning: EXTERNAL-FORM is not implemented
prog.cob:10: warning: EXTERNAL-FORM is not implemented
prog.cob:13: warning: EXTERNAL-FORM is not implemented
prog.cob:14: warning: EXTERNAL-FORM (IDENTIFIED BY) is not implemented
prog.cob:15: warning: EXTERNAL-FORM (IDENTIFIED BY) is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4037"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_279
#AT_START_280
at_fn_group_banner 280 'syn_misc.at:4049' \
  "adding/removing reserved words" "                 " 2
at_xfail=no
(
  $as_echo "280. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  hello       PIC X.
       01  foo         PIC X.
       01  bars        PIC X.
       01  file        PIC X.
       01  background-color PIC X.

       PROCEDURE       DIVISION.
           CONTINUE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4069: \$COMPILE_ONLY -freserved=hello,foo,bars,background-color -fnot-reserved=file prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=hello,foo,bars,background-color -fnot-reserved=file prog.cob" "syn_misc.at:4069"
( $at_check_trace; $COMPILE_ONLY -freserved=hello,foo,bars,background-color -fnot-reserved=file 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: 'hello' is a reserved word, but isn't supported
prog.cob:8: error: 'foo' is a reserved word, but isn't supported
prog.cob:9: error: 'bars' is a reserved word, but isn't supported
prog.cob:11: error: syntax error, unexpected BACKGROUND-COLOR
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4069"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4075: \$COMPILE_ONLY -fnot-reserved=file prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-reserved=file prog.cob" "syn_misc.at:4075"
( $at_check_trace; $COMPILE_ONLY -fnot-reserved=file 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/syn_misc.at:4075"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_280
#AT_START_281
at_fn_group_banner 281 'syn_misc.at:4079' \
  "adding aliases" "                                 " 2
at_xfail=no
(
  $as_echo "281. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.  prog.

       PROCEDURE DIVISION.
           FOO "Hello, world!"
           .
_ATEOF


# FIXME: user defined words need to store a reference to the name originally defining the word
#        otherwise we can't help the user to know where the error came from
#        (command line is only a special case, but even then it may be wrapped and not visible
#        to the user)
#AT_CHECK([$COMPILE_ONLY -freserved=FOO=DISPLAY* -freserved=BARS:FOO prog.cob], [1], [],
#[configuration warning: -freserved=FOO=DISPLAY*: ignored asterisk at end of alias target
#configuration error:
#-freserved=BARS:FOO: alias target 'FOO' is not a default reserved word
#])

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4101: \$COMPILE_ONLY -freserved=FOO=DISPLAY* -freserved=BARS:FOO prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=FOO=DISPLAY* -freserved=BARS:FOO prog.cob" "syn_misc.at:4101"
( $at_check_trace; $COMPILE_ONLY -freserved=FOO=DISPLAY* -freserved=BARS:FOO prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "configuration warning: -freserved=FOO=DISPLAY*: ignored asterisk at end of alias target
configuration error:
alias target 'FOO' is not a default reserved word
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4101"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4107: \$COMPILE_ONLY -freserved=FOO=DISPLAY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=FOO=DISPLAY prog.cob" "syn_misc.at:4107"
( $at_check_trace; $COMPILE_ONLY -freserved=FOO=DISPLAY 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/syn_misc.at:4107"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4108: \$COMPILE_ONLY -freserved=FOO:DISPLAY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=FOO:DISPLAY prog.cob" "syn_misc.at:4108"
( $at_check_trace; $COMPILE_ONLY -freserved=FOO:DISPLAY 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/syn_misc.at:4108"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4109: \$COMPILE_ONLY -freserved=\" FOO = DISPLAY  \" prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=\" FOO = DISPLAY  \" prog.cob" "syn_misc.at:4109"
( $at_check_trace; $COMPILE_ONLY -freserved=" FOO = DISPLAY  " 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/syn_misc.at:4109"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_281
#AT_START_282
at_fn_group_banner 282 'syn_misc.at:4113' \
  "overriding default words" "                       " 2
at_xfail=no
(
  $as_echo "282. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.  prog.

       PROCEDURE DIVISION.
           COMP-1 "Hello, world!"
           DISPLAY "Hello, world!".
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4125: \$COMPILE_ONLY -freserved=COMP-1=DISPLAY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=COMP-1=DISPLAY prog.cob" "syn_misc.at:4125"
( $at_check_trace; $COMPILE_ONLY -freserved=COMP-1=DISPLAY 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/syn_misc.at:4125"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.  prog2.

       PROCEDURE DIVISION.
           COMP-1 "Hello, world!".
           DISPLAY "Hello, world!".
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4136: \$COMPILE_ONLY -fnot-reserved=DISPLAY -freserved=COMP-1=DISPLAY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-reserved=DISPLAY -freserved=COMP-1=DISPLAY prog2.cob" "syn_misc.at:4136"
( $at_check_trace; $COMPILE_ONLY -fnot-reserved=DISPLAY -freserved=COMP-1=DISPLAY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: unknown statement 'DISPLAY'; it may exist in another dialect
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4136"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_282
#AT_START_283
at_fn_group_banner 283 'syn_misc.at:4143' \
  "complete specified word list" "                   " 2
at_xfail=no
(
  $as_echo "283. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.  prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  SQLCA.
           03  SQLCABC         USAGE BINARY-LONG VALUE 136.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4155: \$COMPILE_ONLY -std=ibm-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm-strict prog.cob" "syn_misc.at:4155"
( $at_check_trace; $COMPILE_ONLY -std=ibm-strict 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: 'BINARY-LONG' is not defined, but is a reserved word in another dialect
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4155"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4158: \$COMPILE_ONLY -std=ibm-strict -freserved=BINARY-LONG prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm-strict -freserved=BINARY-LONG prog.cob" "syn_misc.at:4158"
( $at_check_trace; $COMPILE_ONLY -std=ibm-strict -freserved=BINARY-LONG 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/syn_misc.at:4158"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4159: \$COMPILE_ONLY -std=ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_misc.at:4159"
( $at_check_trace; $COMPILE_ONLY -std=ibm 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/syn_misc.at:4159"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_283
#AT_START_284
at_fn_group_banner 284 'syn_misc.at:4163' \
  "ANY LENGTH item as formal parameter" "            " 2
at_xfail=no
(
  $as_echo "284. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.

       DATA           DIVISION.
       LINKAGE        SECTION.
       01  str        ANY LENGTH PIC X.

       PROCEDURE DIVISION USING str.
           GOBACK
           .
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog2.

       DATA           DIVISION.
       LINKAGE        SECTION.
       01  str        ANY LENGTH PIC X.

       PROCEDURE DIVISION.
           GOBACK
           .
_ATEOF

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4191: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4191"
( $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/syn_misc.at:4191"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4192: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:4192"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:7: error: 'str' ANY LENGTH item must be a formal parameter
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4192"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_284
#AT_START_285
at_fn_group_banner 285 'syn_misc.at:4198' \
  "ANY LENGTH item as BY VALUE formal parameter" "   " 2
at_xfail=no
(
  $as_echo "285. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.

       DATA           DIVISION.
       LINKAGE        SECTION.
       01  str        ANY LENGTH PIC X.

       PROCEDURE DIVISION USING VALUE str.
           GOBACK
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4214: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4214"
( $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: warning: handling of parameters passed BY VALUE is unfinished; implementation is likely to be changed
prog.cob:9: error: ANY LENGTH items may only be BY REFERENCE formal parameters
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4214"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_285
#AT_START_286
at_fn_group_banner 286 'syn_misc.at:4221' \
  "swapped SOURCE- and OBJECT-COMPUTER" "            " 2
at_xfail=no
(
  $as_echo "286. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.

       ENVIRONMENT    DIVISION.
       CONFIGURATION  SECTION.
       OBJECT-COMPUTER. a.
       SOURCE-COMPUTER. b.
_ATEOF


# MF extension, supported by GnuCOBOL
{ set +x
$as_echo "$at_srcdir/syn_misc.at:4235: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4235"
( $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/syn_misc.at:4235"
$at_failed && at_fn_log_failure
$at_traceon; }

# note: testing with lax configuration, otherwise there would be an error
{ set +x
$as_echo "$at_srcdir/syn_misc.at:4237: \$COMPILE_ONLY -std=acu prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_misc.at:4237"
( $at_check_trace; $COMPILE_ONLY -std=acu 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: SOURCE-COMPUTER incorrectly after OBJECT-COMPUTER used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4237"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_286
#AT_START_287
at_fn_group_banner 287 'syn_misc.at:4243' \
  "CONF. SECTION paragraphs in wrong order" "        " 2
at_xfail=no
(
  $as_echo "287. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.

       ENVIRONMENT    DIVISION.
       CONFIGURATION  SECTION.
       REPOSITORY.
       SOURCE-COMPUTER. b.
       OBJECT-COMPUTER. a.
       SPECIAL-NAMES.

       END PROGRAM prog.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog2.

       ENVIRONMENT    DIVISION.
       CONFIGURATION  SECTION.
       SOURCE-COMPUTER. b.
       OBJECT-COMPUTER. a.
       REPOSITORY.
       SPECIAL-NAMES.

       END PROGRAM prog2.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog3.

       ENVIRONMENT    DIVISION.
       CONFIGURATION  SECTION.
       REPOSITORY.
       SOURCE-COMPUTER. b.
       OBJECT-COMPUTER. a.

       END PROGRAM prog3.

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog4.

       ENVIRONMENT    DIVISION.
       CONFIGURATION  SECTION.
       REPOSITORY.
       SPECIAL-NAMES.
       SOURCE-COMPUTER. b.
       OBJECT-COMPUTER. a.

       END PROGRAM prog4.
_ATEOF


# MF extension, supported by GnuCOBOL
{ set +x
$as_echo "$at_srcdir/syn_misc.at:4296: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4296"
( $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/syn_misc.at:4296"
$at_failed && at_fn_log_failure
$at_traceon; }

# note: testing with lax configuration, otherwise there would be an error
{ set +x
$as_echo "$at_srcdir/syn_misc.at:4298: \$COMPILE_ONLY -std=acu prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_misc.at:4298"
( $at_check_trace; $COMPILE_ONLY -std=acu 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: SOURCE-COMPUTER incorrectly after REPOSITORY used
prog.cob:22: warning: SPECIAL-NAMES incorrectly after REPOSITORY used
prog.cob:32: warning: SOURCE-COMPUTER incorrectly after REPOSITORY used
prog.cob:43: warning: SPECIAL-NAMES incorrectly after REPOSITORY used
prog.cob:44: warning: SOURCE-COMPUTER incorrectly after SPECIAL-NAMES used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4298"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4305: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:4305"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: SOURCE-COMPUTER incorrectly after REPOSITORY used
prog.cob:22: error: SPECIAL-NAMES incorrectly after REPOSITORY used
prog.cob:32: error: SOURCE-COMPUTER incorrectly after REPOSITORY used
prog.cob:43: error: SPECIAL-NAMES incorrectly after REPOSITORY used
prog.cob:44: error: SOURCE-COMPUTER incorrectly after SPECIAL-NAMES used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4305"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_287
#AT_START_288
at_fn_group_banner 288 'syn_misc.at:4315' \
  "NOT ON EXCEPTION with STATIC CALL convention" "   " 2
at_xfail=no
(
  $as_echo "288. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       PROCEDURE      DIVISION.
           CALL STATIC "stuff"
              ON EXCEPTION
                 CONTINUE
           END-CALL
           GOBACK.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog2.
       PROCEDURE      DIVISION.
           CALL "stuff"
              ON EXCEPTION
                 CONTINUE
           END-CALL
           GOBACK.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       >> CALL-CONVENTION STATIC
       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog3.
       PROCEDURE      DIVISION.
           CALL "stuff"
              ON EXCEPTION
                 CONTINUE
           END-CALL
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4352: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4352"
( $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: warning: ON EXCEPTION ignored because of STATIC CALL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4352"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4355: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:4355"
( $at_check_trace; $COMPILE_ONLY prog2.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/syn_misc.at:4355"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4356: \$COMPILE_ONLY -static prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -static prog2.cob" "syn_misc.at:4356"
( $at_check_trace; $COMPILE_ONLY -static prog2.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/syn_misc.at:4356"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4357: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:4357"
( $at_check_trace; $COMPILE_ONLY prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:6: warning: STATIC CALL convention ignored because of ON EXCEPTION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4357"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_288
#AT_START_289
at_fn_group_banner 289 'syn_misc.at:4363' \
  "NOT ON EXCEPTION phrases before ON EXCEPTION" "   " 2
at_xfail=no
(
  $as_echo "289. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.

       ENVIRONMENT    DIVISION.
       INPUT-OUTPUT   SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN "f.txt"
               ORGANIZATION LINE SEQUENTIAL.

       DATA           DIVISION.
       FILE           SECTION.
       FD  f LINAGE 10.
       01  f-rec PIC X.

       PROCEDURE      DIVISION.
           WRITE f-rec FROM "x"
               NOT END-OF-PAGE
                   CONTINUE
               END-OF-PAGE
                   CONTINUE
           END-WRITE
           WRITE f-rec FROM "x"
               END-OF-PAGE
                   CONTINUE
               NOT END-OF-PAGE
                   CONTINUE
           END-WRITE
           WRITE f-rec FROM "x"
               NOT END-OF-PAGE
                   CONTINUE
           END-WRITE
           WRITE f-rec FROM "x"
               END-OF-PAGE
                   CONTINUE
           END-WRITE

           DISPLAY "blah"
               ON EXCEPTION
                   CALL "err"
                       NOT ON EXCEPTION
                           CONTINUE
                       ON EXCEPTION
                           CONTINUE.
           DISPLAY "blah"
               NOT ON EXCEPTION
                   CALL "err"
                       ON EXCEPTION
                           CONTINUE
                       NOT ON EXCEPTION
                           CONTINUE.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4419: \$COMPILE_ONLY -std=cobol85 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:4419"
( $at_check_trace; $COMPILE_ONLY -std=cobol85 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:22: error: NOT AT END-OF-PAGE before AT END-OF-PAGE does not conform to COBOL 85
prog.cob:44: error: NOT EXCEPTION before EXCEPTION does not conform to COBOL 85
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4419"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4423: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4423"
( $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/syn_misc.at:4423"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_289
#AT_START_290
at_fn_group_banner 290 'syn_misc.at:4427' \
  "wrong dialect hints" "                            " 2
at_xfail=no
(
  $as_echo "290. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC X.

       PROCEDURE DIVISION.
           DISPLAY x CONVERSION.
           TRANSFORM x
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4444: \$COMPILE_ONLY -std=cobol85 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:4444"
( $at_check_trace; $COMPILE_ONLY -std=cobol85 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: 'CONVERSION' is not defined, but is a reserved word in another dialect
prog.cob:11: error: unknown statement 'TRANSFORM'; it may exist in another dialect
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4444"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_290
#AT_START_291
at_fn_group_banner 291 'syn_misc.at:4451' \
  "redundant periods" "                              " 2
at_xfail=no
(
  $as_echo "291. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >a.cpy <<'_ATEOF'

       01  var PIC X
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       REPLACE ==a== BY ==b==.. *> blah blah
       .

       COPY a..

       78  var VALUE "hello".
      * blah blah
          .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4474: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4474"
( $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: ignoring redundant .
prog.cob:12: warning: ignoring redundant .
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4474"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_291
#AT_START_292
at_fn_group_banner 292 'syn_misc.at:4481' \
  "IF-ELSE statement list with invalid syntax" "     " 2
at_xfail=no
(
  $as_echo "292. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  a-variable PIC 9.

       PROCEDURE DIVISION.
           IF a-variable = 1
               ACCEPT a-variable, not-a-variable
                   ON EXCEPTION
                       CONTINUE
               END-ACCEPT
           ELSE
               CONTINUE
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4504: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4504"
( $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: syntax error, unexpected Identifier
prog.cob:14: error: syntax error, unexpected END-ACCEPT
prog.cob:15: error: syntax error, unexpected ELSE
prog.cob:17: error: syntax error, unexpected END-IF
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4504"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_292
#AT_START_293
at_fn_group_banner 293 'syn_misc.at:4514' \
  "EVALUATE statement with invalid syntax" "         " 2
at_xfail=no
(
  $as_echo "293. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  a-variable PIC 9.

       PROCEDURE DIVISION.
           EVALUATE a-variable

              ALSO true

              WHEN 1

              ALSO a-variable
                 CONTINUE

              WHEN 1 OR 2
                 CONTINUE

           END-EVALUATE
           .
           EVALUATE a-variable

              ALSO true

              WHEN 3
                 CONTINUE

              WHEN 5
                 CONTINUE

           END-EVALUATE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4554: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4554"
( $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:19: error: invalid conditional expression
prog.cob:16: error: invalid expression
prog.cob:28: error: wrong number of WHEN parameters
prog.cob:31: error: wrong number of WHEN parameters
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4554"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_293
#AT_START_294
at_fn_group_banner 294 'syn_misc.at:4564' \
  "MF reserved word directives" "                    " 2
at_xfail=no
(
  $as_echo "294. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

           *> Valid
           $SET ADDRSV"DOG""CAT"

           *> Valid
           $SET ADD-SYN "VALUE" = "VA"
           *> Bread is not reserved.
           $SET ADDSYN "BREAD" = "BARA"
           *> ID is already reserved
           $SET ADDSYN "IDENTIFICATION" = "ID"

           *> Valid
           $SET MAKESYN(PROGRAM) = (FUNCTION)
           *> BREAD is not reserved.
           $SET MAKESYN "BREAD" = "PROGRAM"
           $SET MAKESYN "PROGRAM" = "BREAD"

           *> Valid
           $SET OVERRIDE "DIVISION" = "DIV" "JUST" = "JS"
           *> Bread is not reserved
           $SET OVERRIDE "BREAD"="BARA"
           *> ID is already reserved
           $SET OVERRIDE "IDENTIFICATION"="ID"

           *> Valid
           $SET REMOVE "BREAD" (BARA)REMOVE(DOG)

       DATA DIV.
       WORKING-STORAGE SECTION.
       *> Check ADDSYN and OVERRIDE work correctly
       01  just PIC XX VA "1" JS.
       *> Check ADDRSV
       01  cat PIC 9 VA 1.
       *> Check REMOVE
       01  dog PIC 9 VA 1.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4607: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4607"
( $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: 'BREAD' is not a default reserved word, so cannot be aliased
prog.cob:13: error: 'ID' is already reserved; you may want MAKESYN instead
prog.cob:18: error: 'BREAD' is not a default reserved word, so cannot be aliased
prog.cob:19: error: 'BREAD' is not a reserved word; you may want ADDSYN or OVERRIDE instead
prog.cob:24: error: 'BREAD' is not a default reserved word, so cannot be aliased
prog.cob:26: error: 'ID' is already reserved; you may want MAKESYN instead
prog.cob:36: error: 'cat' is a reserved word, but isn't supported
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4607"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_294
#AT_START_295
at_fn_group_banner 295 'syn_misc.at:4620' \
  "TURN directive" "                                 " 2
at_xfail=no
(
  $as_echo "295. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       *> Valid
       >> TURN ec-i-o f CHECKING ON
       *> Invalid
       >> TURN dd CHECKING ON
       >> TURN ec-all f CHECKING ON
       >> TURN EC-I-O-invalid-KEY not-exist CHECKING OFF
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           SELECT F ASSIGN "f.txt", SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD  f.
       01  f-rec        PIC X.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4644: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4644"
( $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 exception-name: DD
prog.cob:7: error: invalid exception-name: F
prog.cob:8: error: file 'not-exist' does not exist
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4644"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_295
#AT_START_296
at_fn_group_banner 296 'syn_misc.at:4653' \
  "STRING / UNSTRING with invalid syntax" "          " 2
at_xfail=no
(
  $as_echo "296. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77  a   PIC X.
       77  b   PIC X.
       77  c   PIC XXX.

       PROCEDURE DIVISION.
           STRING   DELIMITED BY SPACE INTO
           END-STRING
           STRING a DELIMITED BY SPACE c
           END-STRING
           STRING a DELIMITED BY SPACE INTO
           END-STRING
           STRING
                  DELIMITED BY SPACE
                  INTO c
           END-STRING
           STRING a DELIMITED BY SPACE

                  DELIMITED BY SIZE
                  INTO c
           END-STRING
           STRING a DELIMITED BY SPACE
                  b DELIMITED BY SIZE
                  INTO c
           END-STRING
      *
           UNSTRING   DELIMITED BY SPACE INTO a
           END-UNSTRING
           UNSTRING c DELIMITED BY SPACE a
           END-UNSTRING
           UNSTRING c DELIMITED BY SPACE INTO
           END-UNSTRING
           UNSTRING   DELIMITED BY SPACE INTO a
           END-UNSTRING
           UNSTRING c DELIMITED BY SPACE INTO a
           END-UNSTRING
           UNSTRING c DELIMITED BY SPACE
                      DELIMITED BY SIZE  INTO a
           END-UNSTRING
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4703: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4703"
( $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:12: error: syntax error, unexpected DELIMITED
prog.cob:15: error: syntax error, unexpected END-STRING, expecting INTO
prog.cob:17: error: syntax error, unexpected END-STRING, expecting Identifier
prog.cob:19: error: syntax error, unexpected DELIMITED
prog.cob:24: error: syntax error, unexpected DELIMITED, expecting INTO
prog.cob:32: error: syntax error, unexpected DELIMITED
prog.cob:34: error: syntax error, unexpected Identifier, expecting INTO
prog.cob:37: error: syntax error, unexpected END-UNSTRING, expecting Identifier
prog.cob:38: error: syntax error, unexpected DELIMITED
prog.cob:43: error: syntax error, unexpected DELIMITED, expecting INTO
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4703"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_296
#AT_START_297
at_fn_group_banner 297 'syn_misc.at:4718' \
  "UNSTRING COUNT clause" "                          " 2
at_xfail=no
(
  $as_echo "297. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  valid-1       PIC 9.
       01  valid-2       BINARY-LONG.
       01  valid-3       PIC 99 COMP-3.

       01  invalid-1     PIC 99V99.
       01  invalid-2     FLOAT-LONG.
       01  invalid-3     PIC 99PP.
       01  invalid-4     PIC VPP99.
       01  invalid-5     PIC X(30).
           88  invalid-6 VALUE "abc".

       01  x             PIC X(9).
       01  y             PIC X(9).

       PROCEDURE       DIVISION.
           UNSTRING x INTO y COUNT valid-1
           UNSTRING x INTO y COUNT valid-2
           UNSTRING x INTO y COUNT valid-3

           UNSTRING x INTO y COUNT invalid-1
           UNSTRING x INTO y COUNT invalid-2
           UNSTRING x INTO y COUNT invalid-3
           UNSTRING x INTO y COUNT invalid-4
           UNSTRING x INTO y COUNT invalid-5
           UNSTRING x INTO y COUNT invalid-6
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4755: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4755"
( $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:26: error: COUNT item 'invalid-1' must be an integer
prog.cob:27: error: COUNT item 'invalid-2' must be numeric and an integer
prog.cob:28: error: COUNT item 'invalid-3' may not have PICTURE with P in it
prog.cob:29: error: COUNT item 'invalid-4' must be an integer
prog.cob:30: error: COUNT item 'invalid-5' must be numeric and an integer
prog.cob:31: error: condition-name not allowed here: 'invalid-6'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4755"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_297
#AT_START_298
at_fn_group_banner 298 'syn_misc.at:4766' \
  "use of program-prototypes" "                      " 2
at_xfail=no
(
  $as_echo "298. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       ENVIRONMENT     DIVISION.
       CONFIGURATION   SECTION.
       REPOSITORY.
           PROGRAM test-prog
           .
       PROCEDURE       DIVISION.
           CALL test-prog
           CANCEL test-prog
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4784: \$COMPILE_ONLY -fprogram-prototypes=warning prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fprogram-prototypes=warning prog.cob" "syn_misc.at:4784"
( $at_check_trace; $COMPILE_ONLY -fprogram-prototypes=warning 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: PROGRAM phrase used
prog.cob:8: warning: no definition/prototype seen for PROGRAM 'test-prog'
prog.cob:11: warning: CALL/CANCEL with program-prototype-name used
prog.cob:12: warning: CALL/CANCEL with program-prototype-name used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4784"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_298
#AT_START_299
at_fn_group_banner 299 'syn_misc.at:4793' \
  "invalid INSPECT/TRANSFORM operands" "             " 2
at_xfail=no
(
  $as_echo "299. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN "A".

       DATA            DIVISION.
       FILE            SECTION.
       FD  f.
       01  f-rec PIC X.

       WORKING-STORAGE SECTION.
       01  not-display PIC 9(5) COMP.
       01  not-a-num   PIC X(5).

       PROCEDURE       DIVISION.
           INSPECT f TALLYING not-a-num FOR ALL 3
               REPLACING FIRST "abcde" BY not-display
           TRANSFORM f FROM 3 TO 2
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4821: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4821"
( $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:20: error: 'f' is not a field
prog.cob:20: error: 'not-a-num' is not numeric
prog.cob:20: error: 3 is not an alphanumeric literal
prog.cob:20: error: invalid target for TALLYING
prog.cob:21: error: 'not-display' is not USAGE DISPLAY
prog.cob:20: error: REPLACING operands differ in size
prog.cob:20: error: invalid target for REPLACING
prog.cob:22: error: 'f' is not a field
prog.cob:22: error: 3 is not an alphanumeric literal
prog.cob:22: error: 2 is not an alphanumeric literal
prog.cob:22: error: invalid target for TRANSFORM
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4821"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_299
#AT_START_300
at_fn_group_banner 300 'syn_misc.at:4837' \
  "SIGN clause checks" "                             " 2
at_xfail=no
(
  $as_echo "300. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  valid-1     SIGN TRAILING.
           03  x       PIC S999.
           03  y       PIC S999.
       01  valid-2     PIC S99.

       01  invalid-1   PIC 99 SIGN LEADING.
       01  invalid-2   PIC S99 SIGN TRAILING, USAGE BINARY.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:4855: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4855"
( $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:12: error: elementary items with SIGN clause must have S in PICTURE
prog.cob:13: error: elementary items with SIGN clause must be USAGE DISPLAY or NATIONAL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_300
#AT_START_301
at_fn_group_banner 301 'syn_misc.at:4862' \
  "conflicting entry conventions" "                  " 2
at_xfail=no
(
  $as_echo "301. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       OPTIONS.
           ENTRY-CONVENTION COBOL.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CALL-CONVENTION 0 IS EXTERN.

       PROCEDURE     DIVISION EXTERN.
           CONTINUE
           .
_ATEOF

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4879: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4879"
( $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: warning: overriding convention specified in ENTRY-CONVENTION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4879"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog2.
       OPTIONS.
           ENTRY-CONVENTION COBOL.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       PROCEDURE     DIVISION WITH C LINKAGE.
           CONTINUE
           .
_ATEOF

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4895: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_misc.at:4895"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:9: warning: overriding convention specified in ENTRY-CONVENTION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:4895"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog3.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CALL-CONVENTION 0 IS EXTERN.

       PROCEDURE     DIVISION
           EXTERN
           WITH C LINKAGE.
           CONTINUE
       ENTRY 'ANOTHERSTATEMENT'.
           CONTINUE
       ENTRY EXTERN 'ANOTHERSTATEMENT2'.
           CONTINUE
       ENTRY 'ANOTHERSTATEMENT3' WITH C LINKAGE.
           CONTINUE
       ENTRY
           EXTERN
           'ANOTHERSTATEMENT4'
           WITH C LINKAGE.
           CONTINUE
           .
_ATEOF

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4924: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_misc.at:4924"
( $at_check_trace; $COMPILE_ONLY prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:11: error: CALL-CONVENTION and WITH LINKAGE are mutually exclusive
prog3.cob:22: error: CALL-CONVENTION and WITH LINKAGE are mutually exclusive
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4924"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_301
#AT_START_302
at_fn_group_banner 302 'syn_misc.at:4931' \
  "conflicting call conventions" "                   " 2
at_xfail=no
(
  $as_echo "302. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       PROCEDURE     DIVISION.
           CALL EXTERN 'callee'.
           CALL 'callee' WITH C LINKAGE.
           CALL
              EXTERN
              'callee'
              WITH C LINKAGE
              .
           GOBACK.
_ATEOF

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4947: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:4947"
( $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: CALL-CONVENTION and WITH LINKAGE are mutually exclusive
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4947"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:4950: \$COMPILE_ONLY -std=cobol85 -freserved=EXTERN,C prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 -freserved=EXTERN,C prog.cob" "syn_misc.at:4950"
( $at_check_trace; $COMPILE_ONLY -std=cobol85 -freserved=EXTERN,C 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: CALL-/ENTRY-CONVENTION does not conform to COBOL 85
prog.cob:6: error: WITH ... LINKAGE does not conform to COBOL 85
prog.cob:8: error: CALL-/ENTRY-CONVENTION does not conform to COBOL 85
prog.cob:10: error: WITH ... LINKAGE does not conform to COBOL 85
prog.cob:10: error: CALL-CONVENTION and WITH LINKAGE are mutually exclusive
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:4950"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_302
#AT_START_303
at_fn_group_banner 303 'syn_misc.at:4960' \
  "dangling LINKAGE items" "                         " 2
at_xfail=no
(
  $as_echo "303. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       DATA DIVISION.
       LINKAGE SECTION.
      * constants may occur anywhere but don't belong to LINKAGE
       78 NSIZE VALUE 1.
      *
      * two variables in USING
       77 A PIC X.
       01 B.
          03 B1 PIC X.
          03 B2 PIC 9(NSIZE).
      * variable not referenced anywhere - no warning
       77 C PIC X.
      * variable referenced by its REDEFINE
       01 D PIC XX.
       01 filler redefines D.
          03 D1 PIC X.
          03 D2 PIC 9(NSIZE).
      * variable referenced by its second REDEFINE
       01 E PIC XX.
       01 filler redefines E.
          03 Ea1 PIC X.
          03 Ea2 PIC 9(NSIZE).
       01 filler redefines E.
          03 Eb1 PIC X.
          03 Eb2 PIC 9(NSIZE).
      * variable referenced by its child
       01 F.
          03 F1 PIC X.
          03 F2 PIC 9(NSIZE).
      * variable referenced by level 88 (a validation entry)
       01 G.
          03 filler  PIC X.
             88 g-val-a value 'a'.
             88 g-val-b value 'b'.
       PROCEDURE       DIVISION USING A B.

           IF D2 OMITTED OR Eb2 OMITTED or F2 OMITTED
             set g-val-b to true
           END-IF
           .
_ATEOF

{ set +x
$as_echo "$at_srcdir/syn_misc.at:5007: \$COMPILE_ONLY -Wlinkage prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wlinkage prog.cob" "syn_misc.at:5007"
( $at_check_trace; $COMPILE_ONLY -Wlinkage prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:17: warning: LINKAGE item 'D' is not a PROCEDURE USING parameter
prog.cob:22: warning: LINKAGE item 'E' is not a PROCEDURE USING parameter
prog.cob:30: warning: LINKAGE item 'F' is not a PROCEDURE USING parameter
prog.cob:34: warning: LINKAGE item 'G' is not a PROCEDURE USING parameter
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5007"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_303
#AT_START_304
at_fn_group_banner 304 'syn_misc.at:5016' \
  "duplicate PROCEDURE DIVISION/ENTRY USING items" " " 2
at_xfail=no
(
  $as_echo "304. $at_setup_line: testing $at_desc ..."
  $at_traceon


# see bug #635

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       DATA DIVISION.
       LINKAGE SECTION.
       01  p                    PIC 9.
       01  o                    PIC X(5).
       PROCEDURE DIVISION USING p p o.
       ENTRY "sub" USING o p o.
_ATEOF

{ set +x
$as_echo "$at_srcdir/syn_misc.at:5030: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5030"
( $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: duplicate USING BY REFERENCE item 'p'
prog.cob:9: error: duplicate USING BY REFERENCE item 'o'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5030"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_304
#AT_START_305
at_fn_group_banner 305 'syn_misc.at:5037' \
  "duplicate CALL USING BY REFERENCE items" "        " 2
at_xfail=no
(
  $as_echo "305. $at_setup_line: testing $at_desc ..."
  $at_traceon


# see bug #635

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  p                    PIC 99.
       01  o                    PIC X(5).
       PROCEDURE DIVISION.
          CALL "prog2"  USING p p o
                              p.
          CALL "prog3"  USING BY REFERENCE p
                              BY CONTENT   p o
                              BY REFERENCE p o(2:).
_ATEOF

{ set +x
$as_echo "$at_srcdir/syn_misc.at:5055: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5055"
( $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: warning: duplicate USING BY REFERENCE item 'p'
prog.cob:10: warning: duplicate USING BY REFERENCE item 'p'
prog.cob:13: warning: duplicate USING BY REFERENCE item 'p'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5055"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_305
#AT_START_306
at_fn_group_banner 306 'syn_misc.at:5063' \
  "ADD / SUBTRACT TABLE" "                           " 2
at_xfail=no
(
  $as_echo "306. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  tab1.
           03  tab1-entry    OCCURS 5 PIC S999.
       01  tab2.
           03  tab2-entry    OCCURS 7 PIC S99.
           03  tab2b-entry   OCCURS 7.
               05  x         PIC S99.
       01  tab3.
           03  sub-tab-3  OCCURS 2.
               05 tab3-entry OCCURS 5 PIC S999.

       PROCEDURE       DIVISION.
           ADD      TABLE tab1-entry TO   tab2-entry.
           SUBTRACT TABLE tab2-entry FROM tab1-entry.
           ADD      TABLE tab1-entry TO   tab3-entry (1).
           SUBTRACT TABLE tab2-entry FROM tab3-entry (2).
           ADD      TABLE tab1-entry TO   x.
           SUBTRACT TABLE x          FROM tab1-entry.
           ADD      TABLE tab1-entry TO   tab2b-entry.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5093: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5093"
( $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:18: warning: ADD TABLE is not implemented
prog.cob:19: warning: SUBTRACT TABLE is not implemented
prog.cob:20: warning: ADD TABLE is not implemented
prog.cob:21: warning: SUBTRACT TABLE is not implemented
prog.cob:22: warning: ADD TABLE is not implemented
prog.cob:23: warning: SUBTRACT TABLE is not implemented
prog.cob:24: warning: ADD TABLE is not implemented
prog.cob:24: error: 'tab2b-entry' is not numeric
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5093"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_306
#AT_START_307
at_fn_group_banner 307 'syn_misc.at:5106' \
  "USE FOR DEBUGGING invalid ref-mod / subscripts" " " 2
at_xfail=no
(
  $as_echo "307. $at_setup_line: testing $at_desc ..."
  $at_traceon



# COBOL85 3.2.3 Syntax Rules 10+12 - "no subscripts. not reference-modified"
cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       ENVIRONMENT     DIVISION.
       CONFIGURATION   SECTION.
       SOURCE-COMPUTER.
            whatever   WITH DEBUGGING MODE.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  i           PIC 9.
       01  FILLER.
           03 x OCCURS 2 PIC 9.

       PROCEDURE DIVISION.
       DECLARATIVES.
       test-DEBUG SECTION.
           USE FOR DEBUGGING ON ALL OF I (1:1).
           DISPLAY DEBUG-LINE.
       test-DEBUGo SECTION.
           USE FOR DEBUGGING ON ALL OF X (1).
           DISPLAY DEBUG-LINE.
       END DECLARATIVES.

       MAIN SECTION.
           MOVE 1 TO i, x(2)
           STOP RUN.
_ATEOF



{ set +x
$as_echo "$at_srcdir/syn_misc.at:5141: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5141"
( $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 'test-DEBUG':
prog.cob:19: error: DEBUGGING target may not be reference modified
prog.cob: in section 'test-DEBUGo':
prog.cob:22: error: DEBUGGING target may not be subscripted
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5141"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_307
#AT_START_308
at_fn_group_banner 308 'syn_misc.at:5151' \
  "USE FOR DEBUGGING duplicate targets" "            " 2
at_xfail=no
(
  $as_echo "308. $at_setup_line: testing $at_desc ..."
  $at_traceon



# TODO: add cd-names and file-names here

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       ENVIRONMENT     DIVISION.
       CONFIGURATION   SECTION.
       SOURCE-COMPUTER.
            whatever   WITH DEBUGGING MODE.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  i           PIC 9.
       01  j           PIC 9.

       PROCEDURE DIVISION.
       DECLARATIVES.
       test-DEBUG SECTION.
           USE FOR DEBUGGING ON MAIN MAIN.
           DISPLAY DEBUG-LINE.
       test-DEBUG2 SECTION.
           USE FOR DEBUGGING ON ALL I
                                ALL REFERENCES OF J
                                ALL PROCEDURES.
           DISPLAY DEBUG-LINE.
       test-DEBUG3 SECTION.
           USE FOR DEBUGGING ON ALL PROCEDURES
                                J
                                ALL OF I.
           DISPLAY DEBUG-LINE.
       END DECLARATIVES.

       MAIN SECTION.
           MOVE 1 TO i
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5192: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5192"
( $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 'test-DEBUG3':
prog.cob:26: error: duplicate USE DEBUGGING ON ALL PROCEDURES
prog.cob:27: error: duplicate DEBUGGING target: 'j'
prog.cob:28: error: duplicate DEBUGGING target: 'i'
prog.cob: in section 'test-DEBUG':
prog.cob:18: error: DEBUGGING target already specified with ALL PROCEDURES: 'MAIN'
prog.cob:18: error: duplicate DEBUGGING target: 'MAIN'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5192"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_308
#AT_START_309
at_fn_group_banner 309 'syn_misc.at:5204' \
  "USE FOR DEBUGGING syntax-checks" "                " 2
at_xfail=yes
(
  $as_echo "309. $at_setup_line: testing $at_desc ..."
  $at_traceon



# TODO: still need tests/checks (3.2.3 Syntax Rules 9+11):
# 09 Identifier must not reference any data item defined in the Report
# Section except sum counters.
# 11 References to the special register DEBUG-ITEM are restricted to
# references from within a debugging section.


# we currently fail to detect references into DECLARATIVES and
# references to debugging-procedures other than PERFORM --> both in prog2

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       ENVIRONMENT     DIVISION.
       CONFIGURATION   SECTION.
       SOURCE-COMPUTER.
            whatever   WITH DEBUGGING MODE.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  i           PIC 9.
       01  j           PIC 9.

       PROCEDURE DIVISION.
       DECLARATIVES.
       test-DEBUG SECTION.
           USE FOR DEBUGGING ON ALL REFERENCES OF I
                                TEST-debug
                                MAIN.
           DISPLAY DEBUG-LINE.
           PERFORM MAIN. PERFORM TEST-DEBUG2. GO TO TEST-DEBUG2.
       test-DEBUG2 SECTION.
           USE FOR DEBUGGING ON ALL OF I
                                TEST-debug.
           DISPLAY DEBUG-LINE.
       END DECLARATIVES.

       MAIN SECTION.
           MOVE 1 TO i, j
           PERFORM TesT-DebuG
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5251: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5251"
( $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 'test-DEBUG':
prog.cob:22: warning: 'MAIN' is not in DECLARATIVES
prog.cob:22: error: 'TEST-DEBUG2' may only be referenced with PERFORM
prog.cob:19: error: DEBUGGING target invalid: 'test-DEBUG'
prog.cob: in section 'TEST-DEBUG2':
prog.cob:25: error: DEBUGGING target invalid: 'test-DEBUG'
prog.cob: in section 'MAIN':
prog.cob:31: warning: 'test-DEBUG' is in DECLARATIVES
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5251"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:5261: \$COMPILE_ONLY -std=cobol85 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "syn_misc.at:5261"
( $at_check_trace; $COMPILE_ONLY -std=cobol85 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 'test-DEBUG':
prog.cob:20: warning: USE FOR DEBUGGING is obsolete in COBOL 85
prog.cob:22: error: 'MAIN' is not in DECLARATIVES
prog.cob:22: error: 'TEST-DEBUG2' may only be referenced with PERFORM
prog.cob:19: error: DEBUGGING target invalid: 'test-DEBUG'
prog.cob: in section 'TEST-DEBUG2':
prog.cob:25: error: DEBUGGING target invalid: 'test-DEBUG'
prog.cob: in section 'MAIN':
prog.cob:31: error: 'test-DEBUG' is in DECLARATIVES
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5261"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_309
#AT_START_310
at_fn_group_banner 310 'syn_misc.at:5275' \
  "Empty PERFORM with DEBUGGING MODE" "              " 2
at_xfail=no
(
  $as_echo "310. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       ENVIRONMENT     DIVISION.
       CONFIGURATION   SECTION.
       SOURCE-COMPUTER.
            whatever   WITH DEBUGGING MODE.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  i           PIC 9.

       PROCEDURE DIVISION.
           PERFORM VARYING i FROM 1 BY 1
                   UNTIL i = 5
           END-PERFORM
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5298: \$COMPILE_ONLY -fmissing-statement=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fmissing-statement=ok prog.cob" "syn_misc.at:5298"
( $at_check_trace; $COMPILE_ONLY -fmissing-statement=ok 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/syn_misc.at:5298"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_310
#AT_START_311
at_fn_group_banner 311 'syn_misc.at:5303' \
  "whitespace handling" "                            " 2
at_xfail=no
(
  $as_echo "311. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog1.cob <<'_ATEOF'

       IDENTIFICATION
           DIVISION
           .
           author.
           tester.
       PROGRAM-ID
           .
           prog1
           .
           REMARKS;. Should work.,,

       ENVIRONMENT
           DIVISION
           .
       CONFIGURATION
           SECTION
           .
       SOURCE-COMPUTER
           .
             whatever
           WITH
           DEBUGGING
           MODE
           .

      DDATA
      D   DIVISION
      D   .
       WORKING-STORAGE
          SECTION
          .
       01
           i
           PIC
           9
           .

       PROCEDURE
           DIVISION
           .
       >> SOURCE FORMAT IS FREE
IF
i
GREATER
THAN
OR
EQUAL

TO

5

THEN

GOBACK.
           STOP
           RUN
           .
_ATEOF


cat >prog2.cob <<'_ATEOF'

       ID,;DIVISION;,.,;
           author,.;tester.
       PROGRAM-ID,;.;,prog2;,.;,
           REMARKS;. Should work.,,
       ENVIRONMENT,;DIVISION;,.,;
       CONFIGURATION;;,,SECTION;;,,.
       SOURCE-COMPUTER;;.,,whatever;;DEBUGGING,,MODE;,.

      DDATA;DIVISION,.
      DWORKING-STORAGE,SECTION;.
       01;i,PIC;9;.

       PROCEDURE;DIVISION,.;
           IF;,i;,GREATER,;THAN;,OR,;EQUAL ,;TO;;5;
           ,,,THEN;;;GOBACK.
           STOP,RUN;.,
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5386: \$COMPILE_ONLY -Wno-obsolete prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-obsolete prog1.cob" "syn_misc.at:5386"
( $at_check_trace; $COMPILE_ONLY -Wno-obsolete prog1.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/syn_misc.at:5386"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:5387: \$COMPILE_ONLY -Wno-obsolete prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-obsolete prog2.cob" "syn_misc.at:5387"
( $at_check_trace; $COMPILE_ONLY -Wno-obsolete prog2.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/syn_misc.at:5387"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_311
#AT_START_312
at_fn_group_banner 312 'syn_misc.at:5391' \
  "STOP identifier" "                                " 2
at_xfail=no
(
  $as_echo "312. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  x           PIC 9(5) VALUE 1.
       01  y           CONSTANT "ab".

       PROCEDURE       DIVISION.
           STOP x
           STOP y
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5409: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5409"
( $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:12: warning: STOP identifier is obsolete in GnuCOBOL
prog.cob:12: warning: STOP literal is obsolete in GnuCOBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5409"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:5413: \$COMPILE_ONLY -fstop-identifier=ok -fstop-literal=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fstop-identifier=ok -fstop-literal=ok prog.cob" "syn_misc.at:5413"
( $at_check_trace; $COMPILE_ONLY -fstop-identifier=ok -fstop-literal=ok 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/syn_misc.at:5413"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_312
#AT_START_313
at_fn_group_banner 313 'syn_misc.at:5417' \
  "01 CONSTANT" "                                    " 2
at_xfail=no
(
  $as_echo "313. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  NUM2      CONSTANT 3.
       01  CON3      CONSTANT ((1 + 2) * NUM2 - 4.
       01  CON4      CONSTANT (1 + 2) * NUM2 - 4).
       01  CON5      CONSTANT (1 + 2) // NUM2.
       01  CON6      CONSTANT (1 + 2 + 3 + (4)) / (NUM2).
      *
       PROCEDURE DIVISION.
       MAIN.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5436: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5436"
( $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: missing right parenthesis
prog.cob:8: error: missing left parenthesis
prog.cob:9: error: '/' operator misplaced
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5436"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5442: \$COMPILE_ONLY -std=mf-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_misc.at:5442"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict 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: syntax error, unexpected Identifier
prog.cob:7: error: syntax error, unexpected Identifier
prog.cob:8: error: syntax error, unexpected Identifier
prog.cob:9: error: syntax error, unexpected Identifier
prog.cob:10: error: syntax error, unexpected Identifier
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5442"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5450: \$COMPILE_ONLY -std=mf-strict -freserved=CONSTANT prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict -freserved=CONSTANT prog.cob" "syn_misc.at:5450"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict -freserved=CONSTANT 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: 01 CONSTANT does not conform to Micro Focus COBOL
prog.cob:7: error: 01 CONSTANT does not conform to Micro Focus COBOL
prog.cob:7: error: syntax error, unexpected Identifier, expecting .
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5450"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5456: \$COMPILE_ONLY -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf prog.cob" "syn_misc.at:5456"
( $at_check_trace; $COMPILE_ONLY -std=mf 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: missing right parenthesis
prog.cob:8: error: missing left parenthesis
prog.cob:9: error: '/' operator misplaced
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5456"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_313
#AT_START_314
at_fn_group_banner 314 'syn_misc.at:5465' \
  "78 VALUE" "                                       " 2
at_xfail=no
(
  $as_echo "314. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       78  NUM2      VALUE   3.
       78  NEG1      VALUE   -1.
       78  CON3      VALUE   ((1 + 2) * NUM2 - 4.
       78  CON4      VALUE   (1 + 2) * NUM2 - 4).
       78  CON5      VALUE   (1 + 2) // NUM2.
       78  CON6      VALUE   (1 + 2 + 3 + (4)) / (NUM2).
      *
       PROCEDURE DIVISION.
       MAIN.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5485: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5485"
( $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: missing right parenthesis
prog.cob:9: error: missing left parenthesis
prog.cob:10: error: '/' operator misplaced
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5485"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5491: \$COMPILE_ONLY -std=ibm-strict prog.cob "
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm-strict prog.cob " "syn_misc.at:5491"
( $at_check_trace; $COMPILE_ONLY -std=ibm-strict 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: 78 VALUE does not conform to IBM COBOL
prog.cob:7: error: 78 VALUE does not conform to IBM COBOL
prog.cob:8: error: 78 VALUE does not conform to IBM COBOL
prog.cob:8: error: missing right parenthesis
prog.cob:9: error: 78 VALUE does not conform to IBM COBOL
prog.cob:9: error: missing left parenthesis
prog.cob:10: error: 78 VALUE does not conform to IBM COBOL
prog.cob:10: error: '/' operator misplaced
prog.cob:11: error: 78 VALUE does not conform to IBM COBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5491"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5503: \$COMPILE_ONLY -std=ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_misc.at:5503"
( $at_check_trace; $COMPILE_ONLY -std=ibm 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: missing right parenthesis
prog.cob:9: error: missing left parenthesis
prog.cob:10: error: '/' operator misplaced
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5503"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_314
#AT_START_315
at_fn_group_banner 315 'syn_misc.at:5512' \
  "level 78 NEXT / START OF" "                       " 2
at_xfail=no
(
  $as_echo "315. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       78  POS0      VALUE NEXT.
       01  MYREC.
          05  FLD1   PIC 9(2).
          05  FLD2   PIC X(7).
             78  POS3    VALUE NEXT.
          05  FLD3   PIC X(2) OCCURS 5 TIMES.
             78  POS4    VALUE NEXT.
          05  FLD4   PIC X(4).
             78  POS-NEXT   VALUE NEXT.
       77  MYREC2 PIC X.
       01  MYREC3 EXTERNAL.
          05  FLD5   PIC X(4).
             78  POS5    VALUE NEXT.
          05  FLD6   PIC X(4).
       01  PICX      PIC XXX VALUE 'Abc'.
       78  HUN       VALUE 10 * (10 + LENGTH OF PICX) + 12.35-2+3.
       78  HUN2      VALUE HUN * (10 + LENGTH
                                       OF PICX) -4.
       78  DIV1      VALUE 100 / 3.
       78  STRT4     VALUE START OF FLD4.
       LINKAGE SECTION.
       01  XMYREC.
          05  XFLD1   PIC 9(2).
          05  XFLD2   PIC X(7).
             78  XPOS3    VALUE NEXT.
          05  XFLD3   PIC X(2) OCCURS 5 TIMES.
             78  XPOS4    VALUE NEXT.
          05  XFLD4   PIC X(4).
          05  XFLD5   PIC X(4).
       78  XSTRT4     VALUE START OF XFLD4.
      *
       PROCEDURE DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5555: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5555"
( $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: VALUE of 'POS0': NEXT target is invalid
prog.cob:6: error: no previous data-item found
prog.cob:10: error: VALUE of 'POS3': NEXT target is invalid
prog.cob:10: error: target must be in FILE SECTION or LINKAGE SECTION or have the EXTERNAL clause
prog.cob:12: error: VALUE of 'POS4': NEXT target is invalid
prog.cob:12: error: target must be in FILE SECTION or LINKAGE SECTION or have the EXTERNAL clause
prog.cob:14: error: VALUE of 'POS-NEXT': NEXT target is invalid
prog.cob:14: error: target must be in FILE SECTION or LINKAGE SECTION or have the EXTERNAL clause
prog.cob:25: error: VALUE of 'STRT4': START OF target 'FLD4' is invalid
prog.cob:25: error: target must be in FILE SECTION or LINKAGE SECTION or have the EXTERNAL clause
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5555"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_315
#AT_START_316
at_fn_group_banner 316 'syn_misc.at:5571' \
  "SYMBOLIC CONSTANT" "                              " 2
at_xfail=no
(
  $as_echo "316. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
       SYMBOLIC CONSTANT
         con-1  IS 1
         25156c   "25156c".
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  NUM2      PIC 9.
       01  SHORT-X   PIC X(5).
      *
       PROCEDURE DIVISION.
       MAIN.
           MOVE CON-1  TO NUM2.
           MOVE 25156C TO SHORT-X
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5595: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:5595"
( $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 paragraph 'MAIN':
prog.cob:18: warning: value size exceeds data size
prog.cob:18: note: value size is 6
prog.cob:13: note: 'SHORT-X' defined here as PIC X(5)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5595"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5602: \$COMPILE_ONLY -std=mf-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf-strict prog.cob" "syn_misc.at:5602"
( $at_check_trace; $COMPILE_ONLY -std=mf-strict 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 SYMBOLIC clause
prog.cob:9: error: integer value expected
prog.cob: in paragraph 'MAIN':
prog.cob:17: error: 'con-1' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5602"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5609: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:5609"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: SYMBOLIC CONSTANT does not conform to COBOL 2014
prog.cob: in paragraph 'MAIN':
prog.cob:18: warning: value size exceeds data size
prog.cob:18: note: value size is 6
prog.cob:13: note: 'SHORT-X' defined here as PIC X(5)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5609"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_316
#AT_START_317
at_fn_group_banner 317 'syn_misc.at:5620' \
  "Constant Expressions (1)" "                       " 2
at_xfail=no
(
  $as_echo "317. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  var       PIC X(200).
       01  othervar  PIC X(115).
       01  A         PIC 9 VALUE 1.
       01  B         PIC 9 VALUE 2.
       01  C         PIC 9 VALUE 3.
       78  var-len   value 115.

       PROCEDURE DIVISION.

           IF var-len < 16
               move othervar (1:var-len - 8)
                 to var (17 - var-len:var-len - 8)
           ELSE
               move othervar to var
           END-IF

           IF (2 = 3)
               move othervar to var
           ELSE
              IF 1 = 1
                 move var to othervar
              ELSE
                 move othervar (1:var-len - 8)
                   to var (17 - var-len:var-len - 8)
                 IF 1 = 1
                    move var to othervar
                 END-IF
              END-IF
              move A to B
              IF 1 = 1
                IF 2 = 1
                 move othervar (1:var-len - 8)
                   to var (17 - var-len:var-len - 8)
           .

           PERFORM WITH TEST BEFORE UNTIL 1 = 3
               move othervar to var
           END-PERFORM

           PERFORM WITH TEST BEFORE UNTIL 1 = 1
               move othervar (1:var-len - 8)
                 to var (17 - var-len:var-len - 8)
           END-PERFORM

           PERFORM WITH TEST AFTER UNTIL 1 = 3
               move othervar to var
           END-PERFORM

           PERFORM WITH TEST AFTER UNTIL 1 = 1
               move othervar to var
           END-PERFORM

           EVALUATE TRUE
           WHEN  var-len < 16
               move othervar (1:var-len - 8)
                 to var (17 - var-len:var-len - 8)
           WHEN  var-len > 16
               move othervar to var
           WHEN  A = B
               move var      to othervar
           WHEN OTHER
               CONTINUE
           END-EVALUATE

           EVALUATE FALSE
           WHEN  var-len < 16
               move othervar (1:var-len - 9)
                 to var (16 - var-len:var-len - 9)
           WHEN  var-len > 16
               move othervar to var
           WHEN  A = B
               move var      to othervar
           WHEN OTHER
               CONTINUE
           END-EVALUATE.

           IF 15 = var-len
               move othervar to var.

           IF var-len = 15
               move var      to othervar.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5713: \$COMPILE_ONLY -fdiagnostics-show-option prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option prog.cob" "syn_misc.at:5713"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:15: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
prog.cob:17: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
prog.cob:22: warning: expression '2' EQUALS '3' is always FALSE [-Wconstant-expression]
prog.cob:25: warning: expression '1' EQUALS '1' is always TRUE [-Wconstant-expression]
prog.cob:29: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
prog.cob:30: warning: expression '1' EQUALS '1' is always TRUE [-Wconstant-expression]
prog.cob:35: warning: expression '1' EQUALS '1' is always TRUE [-Wconstant-expression]
prog.cob:36: warning: expression '2' EQUALS '1' is always FALSE [-Wconstant-expression]
prog.cob:38: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
prog.cob:41: warning: expression '1' EQUALS '3' is always FALSE [-Wconstant-expression]
prog.cob:41: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
prog.cob:45: warning: expression '1' EQUALS '1' is always TRUE [-Wconstant-expression]
prog.cob:45: warning: PERFORM NEVER since UNTIL is always TRUE [-Wadditional]
prog.cob:47: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
prog.cob:50: warning: expression '1' EQUALS '3' is always FALSE [-Wconstant-expression]
prog.cob:50: warning: PERFORM FOREVER since UNTIL is always FALSE [-Wadditional]
prog.cob:54: warning: expression '1' EQUALS '1' is always TRUE [-Wconstant-expression]
prog.cob:54: warning: PERFORM ONCE since UNTIL is always TRUE [-Wadditional]
prog.cob:59: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
prog.cob:61: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
prog.cob:62: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
prog.cob:71: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
prog.cob:73: error: offset of 'var' out of bounds: -99
prog.cob:74: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
prog.cob:82: warning: expression '15' EQUALS '115' is always FALSE [-Wconstant-expression]
prog.cob:85: warning: expression '115' EQUALS '15' is always FALSE [-Wconstant-expression]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5713"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_317
#AT_START_318
at_fn_group_banner 318 'syn_misc.at:5745' \
  "Constant Expressions (2)" "                       " 2
at_xfail=no
(
  $as_echo "318. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       78  const1    value 115.
       01  const2    CONSTANT 200.
       78  const3    value const2.
       78  const4    value const2 + const1.
       77  othervar  PIC X(const1).
       01  var       PIC X(const2).

       PROCEDURE DIVISION.

           IF const1 = const2
           OR const2 = const1
           OR const3 = const4
           OR const4 = const3
              DISPLAY 'no way' END-DISPLAY
           END-IF

           EVALUATE const1
           WHEN  15
           WHEN 115
               display '1'
           WHEN  < 16
               move othervar (1:8)
                 to var (17:8)
           WHEN  > 16
               display othervar
      *> actually WHEN OTHER is also FALSE in this case (115 = 16),
      *> but this is too complex to check
           WHEN OTHER
               display othervar
           END-EVALUATE

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5787: \$COMPILE_ONLY prog.cob "
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob " "syn_misc.at:5787"
( $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:15: warning: expression '115' EQUALS '200' is always FALSE
prog.cob:16: warning: expression '200' EQUALS '115' is always FALSE
prog.cob:17: warning: expression '200' EQUALS '315' is always FALSE
prog.cob:18: warning: expression '315' EQUALS '200' is always FALSE
prog.cob:26: warning: expression '115' LESS THAN '16' is always FALSE
prog.cob:29: warning: expression '115' GREATER THAN '16' is always TRUE
prog.cob:23: warning: expression '115' EQUALS '15' is always FALSE
prog.cob:24: warning: expression '115' EQUALS '115' is always TRUE
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5787"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_318
#AT_START_319
at_fn_group_banner 319 'syn_misc.at:5801' \
  "Constant Expressions (3)" "                       " 2
at_xfail=no
(
  $as_echo "319. $at_setup_line: testing $at_desc ..."
  $at_traceon



# verify that we do ignore undefined errors where possible
cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  var       PIC X(200).
       78  var-len   value 115.

       PROCEDURE DIVISION.

           IF var-len < 16
               move spaces
                 to var (17 - var-len:var-len - 8)
           END-IF

           IF var-len < 16
              move notdefined to var
           END-IF

           IF var-len < 16
              perform notdefined
           END-IF

           IF var-len < 16
              if notdefined continue.

           STOP RUN.
_ATEOF


# note: the last error message comes from program validation
#       and therefore cannot be raised earlier
{ set +x
$as_echo "$at_srcdir/syn_misc.at:5836: \$COMPILE_ONLY -fdiagnostics-show-option prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option prog.cob" "syn_misc.at:5836"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option 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: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
prog.cob:13: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
prog.cob:16: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
prog.cob:17: warning: 'notdefined' is not defined [-Wignored-error]
prog.cob:20: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
prog.cob:24: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:5836"
$at_failed && at_fn_log_failure
$at_traceon; }


# verify that we do only skip an undefined error when it actually was reported
cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  var       PIC X(200).
       78  var-len   value 115.

       PROCEDURE DIVISION.

           IF var-len < 16
              move notdefined to var *> won't be seen with -Wno-ignore-error
           END-IF

       >> IF SKIP-FIRST-ERROR NOT DEFINED
      *> always reported here (if active) as that's the first error
           move notdefined to var
       >> END-IF

           IF var-len < 16
              move notdefined to var      *> never here, because of the warning/error above
           END-IF

           move var        to notdefined   *> only here if not the skip was active

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5874: \$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression prog2.cob" "syn_misc.at:5874"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:12: warning: 'notdefined' is not defined [-Wignored-error]
prog2.cob:17: error: 'notdefined' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5874"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:5878: \$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Wno-ignored-error prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Wno-ignored-error prog2.cob" "syn_misc.at:5878"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Wno-ignored-error prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:17: error: 'notdefined' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5878"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:5881: \$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -DSKIP-FIRST-ERROR prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -DSKIP-FIRST-ERROR prog2.cob" "syn_misc.at:5881"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -DSKIP-FIRST-ERROR prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:12: warning: 'notdefined' is not defined [-Wignored-error]
prog2.cob:24: error: 'notdefined' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5881"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:5885: \$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Werror=ignored-error prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Werror=ignored-error prog2.cob" "syn_misc.at:5885"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -Wno-constant-expression -Werror=ignored-error prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:12: error: 'notdefined' is not defined [-Werror=ignored-error]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5885"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_319
#AT_START_320
at_fn_group_banner 320 'syn_misc.at:5892' \
  "Constant Expressions (4)" "                       " 2
at_xfail=no
(
  $as_echo "320. $at_setup_line: testing $at_desc ..."
  $at_traceon



# verify that we do not ignore parsing errors as
# these are likely to raise issues in codegen

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  var       PIC X(200).
       78  var-len   value 115.

       PROCEDURE DIVISION.

           IF var-len < 16
               move spaces
                 to var (17 - var-len:var-len - 8)
               IF IF.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:5916: \$COMPILE_ONLY -fdiagnostics-show-option prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option prog.cob" "syn_misc.at:5916"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option 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: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
prog.cob:13: warning: offset of 'var' out of bounds: -98 [-Wignored-error]
prog.cob:14: error: syntax error, unexpected IF
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:5916"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_320
#AT_START_321
at_fn_group_banner 321 'syn_misc.at:5925' \
  "Constant Expressions (5)" "                       " 2
at_xfail=no
(
  $as_echo "321. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  VAR       PIC X(200).
       01  OTHERVAR  PIC X(115).
       78  VAR-LEN   VALUE 115.

       PROCEDURE DIVISION.
       MAIN-10.
           MOVE "Peek a boo" TO VAR.
           EVALUATE TRUE
               ALSO FALSE
               ALSO TRUE
            WHEN    TRUE
               ALSO VAR-LEN > 16 AND VAR-LEN < 200
               ALSO TRUE
                  MOVE OTHERVAR (1 : VAR-LEN - 9)
                    TO VAR (16 - VAR-LEN : VAR-LEN - 9)
                  DISPLAY "A: Should NOT be executed"
            WHEN  TRUE
               ALSO VAR-LEN < 16
               ALSO TRUE
                  MOVE OTHERVAR TO VAR
                  DISPLAY "A: OK VAR-LEN > 16 AND VAR-LEN < 200"
            WHEN  TRUE
               ALSO VAR = SPACES
               ALSO TRUE
                  MOVE OTHERVAR TO VAR
                  DISPLAY "A: OK VAR IS SPACES"
           END-EVALUATE.

           MOVE "Peek a boo" TO VAR.
           EVALUATE 3 EQUALS 7
           WHEN  VAR = SPACES
               DISPLAY "B: OK VAR IS NOT SPACES"
           WHEN  VAR NOT = SPACES
               DISPLAY "B: FALSE VAR IS SPACES"
           END-EVALUATE.

           MOVE SPACES       TO VAR.
           EVALUATE FALSE
           WHEN  VAR = SPACES
               DISPLAY "C: FALSE VAR IS SPACES"
           WHEN  VAR NOT = SPACES
               DISPLAY "C: OK VAR IS SPACES"
           END-EVALUATE.

           MOVE "Peek a boo" TO VAR.
           EVALUATE TRUE
           WHEN  VAR = SPACES
               DISPLAY "D: BAD VAR IS SPACES"
           WHEN  VAR NOT = SPACES
               DISPLAY "D: OK VAR IS NOT SPACES"
           END-EVALUATE.

           MOVE SPACES       TO VAR.
           EVALUATE VAR-LEN ALSO VAR
           WHEN  < 32 ALSO SPACES
               DISPLAY "E: OK VAR IS SPACES"
           WHEN  > 16 ALSO NOT SPACES
               DISPLAY "E: BAD VAR IS NOT SPACES"
           WHEN OTHER
               DISPLAY "E: OK OTHER option taken"
           END-EVALUATE.

           STOP RUN.
_ATEOF


# Note: ideally this should not result in a difference compared to the next one

{ set +x
$as_echo "$at_srcdir/syn_misc.at:6000: \$COMPILE_ONLY -fdiagnostics-show-option -C -fno-remove-unreachable prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -C -fno-remove-unreachable prog.cob" "syn_misc.at:6000"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -C -fno-remove-unreachable 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 'MAIN-10':
prog.cob:17: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
prog.cob:17: warning: expression '115' LESS THAN '200' is always TRUE [-Wconstant-expression]
prog.cob:20: error: offset of 'VAR' out of bounds: -99
prog.cob:23: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
prog.cob:35: warning: expression '3' EQUALS '7' is always FALSE [-Wconstant-expression]
prog.cob:60: warning: expression '115' LESS THAN '32' is always FALSE [-Wconstant-expression]
prog.cob:62: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6000"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6011: \$COMPILE_ONLY -fdiagnostics-show-option -C prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fdiagnostics-show-option -C prog.cob" "syn_misc.at:6011"
( $at_check_trace; $COMPILE_ONLY -fdiagnostics-show-option -C 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 'MAIN-10':
prog.cob:17: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
prog.cob:17: warning: expression '115' LESS THAN '200' is always TRUE [-Wconstant-expression]
prog.cob:20: warning: offset of 'VAR' out of bounds: -99 [-Wignored-error]
prog.cob:23: warning: expression '115' LESS THAN '16' is always FALSE [-Wconstant-expression]
prog.cob:35: warning: expression '3' EQUALS '7' is always FALSE [-Wconstant-expression]
prog.cob:60: warning: expression '115' LESS THAN '32' is always FALSE [-Wconstant-expression]
prog.cob:62: warning: expression '115' GREATER THAN '16' is always TRUE [-Wconstant-expression]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6011"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_321
#AT_START_322
at_fn_group_banner 322 'syn_misc.at:6025' \
  "Missing imperative statements" "                  " 2
at_xfail=no
(
  $as_echo "322. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  var       PIC X(200).
       01  othervar  PIC X(115).
       01  A         PIC 9 VALUE 1.
       01  B         PIC 9 VALUE 2.
       01  C         PIC 9 VALUE 3.
       78  var-len   value 115.

       PROCEDURE DIVISION.

           IF var-len < 16
           ELSE
               move othervar to var
           END-IF

           IF var-len > 16
           ELSE
               move othervar to var
           END-IF

           IF (2 = 3)
           ELSE
              IF 1 = 1
              ELSE
                 IF 1 = 1
                    move var to othervar
                 END-IF
              END-IF
           .

           EVALUATE TRUE
           WHEN  A = B
               move var      to othervar
           WHEN OTHER
           END-EVALUATE

           PERFORM WITH TEST BEFORE UNTIL 1 <> 3
           END-PERFORM

           EVALUATE FALSE
           WHEN  A = B
           WHEN  B = A
           END-EVALUATE.

           EVALUATE TRUE
           WHEN  A = B
               move var      to othervar
           WHEN OTHER
           .

           EVALUATE TRUE
           WHEN  A = B
           WHEN  B = A
           .

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6090: \$COMPILE_ONLY -w -fmissing-statement=error prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -w -fmissing-statement=error prog.cob" "syn_misc.at:6090"
( $at_check_trace; $COMPILE_ONLY -w -fmissing-statement=error prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:18: error: IF without imperative statement used
prog.cob:23: error: IF without imperative statement used
prog.cob:32: error: IF without imperative statement used
prog.cob:33: error: IF without imperative statement used
prog.cob:39: error: WHEN OTHER without imperative statement used
prog.cob:42: error: inline PERFORM without imperative statement used
prog.cob:47: error: WHEN without imperative statement used
prog.cob:53: error: WHEN OTHER without imperative statement used
prog.cob:58: error: WHEN without imperative statement used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6090"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6102: \$COMPILE_ONLY -fno-constant-folding -fmissing-statement=warning prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fno-constant-folding -fmissing-statement=warning prog.cob" "syn_misc.at:6102"
( $at_check_trace; $COMPILE_ONLY -fno-constant-folding -fmissing-statement=warning prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:18: warning: IF without imperative statement used
prog.cob:23: warning: IF without imperative statement used
prog.cob:32: warning: IF without imperative statement used
prog.cob:33: warning: IF without imperative statement used
prog.cob:39: warning: WHEN OTHER without imperative statement used
prog.cob:42: warning: inline PERFORM without imperative statement used
prog.cob:47: warning: WHEN without imperative statement used
prog.cob:53: warning: WHEN OTHER without imperative statement used
prog.cob:58: warning: WHEN without imperative statement used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6102"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_322
#AT_START_323
at_fn_group_banner 323 'syn_misc.at:6117' \
  "Fall-Through to WHEN OTHER" "                     " 2
at_xfail=yes
(
  $as_echo "323. $at_setup_line: testing $at_desc ..."
  $at_traceon



# we currently don't do the necessary parsing steps for
# this test to pass - and likely need a different option
# than frelax-syntax-checks..



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  A         PIC 9 VALUE 1.
       01  B         PIC 9 VALUE 2.

       PROCEDURE DIVISION.

           EVALUATE TRUE
           WHEN A = B
           WHEN OTHER
               DISPLAY 'other' END-DISPLAY
           END-EVALUATE

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6145: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6145"
( $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:12: error: fall-through to WHEN OTHER is not allowed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6145"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6149: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_misc.at:6149"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks 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: fall-through to WHEN OTHER
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6149"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_323
#AT_START_324
at_fn_group_banner 324 'syn_misc.at:6155' \
  "CONSTANT LENGTH / BYTE-LENGTH" "                  " 2
at_xfail=no
(
  $as_echo "324. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       identification division.
       program-id. prog.
       environment division.
       data division.
       working-storage section.
       01  item-01.
           05  item-05-a       pointer.
           05  item-05-b       pic x(01).
       01 myk-01 constant global as length of item-01.
       01 myk-02 constant is global as length item-05-a.
       01 myk-03 constant global as length of pointer. *> extension
       01 myk-04 constant global as byte-length of item-01.
       01 myk-05 constant is global as byte-length item-05-a.
       01 myk-06 constant global as byte-length of pointer. *> extension
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6175: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6175"
( $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/syn_misc.at:6175"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_324
#AT_START_325
at_fn_group_banner 325 'syn_misc.at:6179' \
  "ANY LENGTH/NUMERIC with incorrect PIC" "          " 2
at_xfail=no
(
  $as_echo "325. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.

       DATA           DIVISION.
       LINKAGE        SECTION.
       *> Valid
       01  valid-1    PIC X ANY LENGTH.
       01  valid-2    PIC N ANY LENGTH.
       01  valid-3    PIC 9 ANY NUMERIC.

       *> Invalid
       01  invalid-1  PIC A ANY LENGTH.
       01  invalid-2  PIC Z ANY LENGTH.
       01  invalid-3  PIC 9 ANY LENGTH.
       01  invalid-4  PIC X ANY NUMERIC.
       01  invalid-5  PIC XX ANY LENGTH.
       01  invalid-6  PIC NN ANY LENGTH.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6202: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6202"
( $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: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
prog.cob:18: warning: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
prog.cob:13: error: 'invalid-1' ANY LENGTH must be PIC X, PIC N or PIC 1
prog.cob:14: error: 'invalid-2' ANY LENGTH must be PIC X, PIC N or PIC 1
prog.cob:15: error: 'invalid-3' ANY LENGTH must be PIC X, PIC N or PIC 1
prog.cob:16: error: 'invalid-4' ANY NUMERIC must be PIC 9
prog.cob:17: error: 'invalid-5' ANY LENGTH has invalid definition
prog.cob:18: error: 'invalid-6' ANY LENGTH has invalid definition
prog.cob:8: error: 'valid-1' ANY LENGTH item must be a formal parameter
prog.cob:9: error: 'valid-2' ANY LENGTH item must be a formal parameter
prog.cob:10: error: 'valid-3' ANY LENGTH item must be a formal parameter
prog.cob:13: error: 'invalid-1' ANY LENGTH item must be a formal parameter
prog.cob:14: error: 'invalid-2' ANY LENGTH item must be a formal parameter
prog.cob:15: error: 'invalid-3' ANY LENGTH item must be a formal parameter
prog.cob:16: error: 'invalid-4' ANY LENGTH item must be a formal parameter
prog.cob:17: error: 'invalid-5' ANY LENGTH item must be a formal parameter
prog.cob:18: error: 'invalid-6' ANY LENGTH item must be a formal parameter
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6202"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_325
#AT_START_326
at_fn_group_banner 326 'syn_misc.at:6225' \
  "VOLATILE clause" "                                " 2
at_xfail=no
(
  $as_echo "326. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 DATA-COLLECTION.
          03 DATA-ITEMS-A VOLATILE.
             05 DATA-A1 PIC S9(9) BINARY.
             05 DATA-A2 PIC S9(9) BINARY.
          03 VOLATILE.
             05 DATA-FILLER PIC S9(9) BINARY.
          03 DATA-ITEMS-B.
             05 DATA-B1 PIC S9(9).
             05 DATA-B2 PIC S9(9) VOLATILE.
          03 DATA-ITEMS-C.
             05 DATA-C1 PIC S9(9).
             05 DATA-C2 PIC S9(9).
       01 STEP    PIC 9(8)  BINARY VALUE 0 EXTERNAL VOLATILE.
      *01 WRONGY    PIC X.
      *   88 TESTVAL-A VALUE 'A' VOLATILE.
      *   88 TESTVAL-B VOLATILE VALUE 'B'.
       LINKAGE SECTION.
       01  XMYREC.
          05  XFLD1   PIC 9(2) VOLATILE.
       SCREEN SECTION.
      *01  WRONG-SCREEN.
      *   05  WRONG-FIELD   PIC X VOLATILE.
      *
       PROCEDURE DIVISION.
           MOVE DATA-ITEMS-B TO DATA-ITEMS-C.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6261: \$COMPILE_ONLY -Wno-unfinished prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wno-unfinished prog.cob" "syn_misc.at:6261"
( $at_check_trace; $COMPILE_ONLY -Wno-unfinished prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:18: warning: initial VALUE clause ignored for EXTERNAL item 'STEP'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6261"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_326
#AT_START_327
at_fn_group_banner 327 'syn_misc.at:6268' \
  "SET SOURCEFORMAT syntax checks" "                 " 2
at_xfail=no
(
  $as_echo "327. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       *> Valid
       $set sourceformat(free)
       $SET SOURCEFORMAT"FIXED"
       *> Invalid
       $SET SOURCEFORMAT"hi!"
       $SET SOURCEFORMAT()
       $SET sourceformat'mis-matched"
_ATEOF


# FIXME: something is broken with the '"#OPTION here,
#        that should be generated as #OPTION 'mis-matched"
#        and in a second step not be generated at all

{ set +x
$as_echo "$at_srcdir/syn_misc.at:6285: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6285"
( $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 SOURCEFORMAT directive option 'hi!'
prog.cob:7: error: invalid SOURCEFORMAT directive option ''
prog.cob:8: error: syntax error, unexpected Variable, expecting Literal
prog.cob:8: error: invalid SOURCEFORMAT directive option
prog.cob:8: error: invalid literal: '\"#OPTION mis-matched ...'
prog.cob:8: error: missing terminating ' character
prog.cob:8: error: PROGRAM-ID header missing
prog.cob:8: error: PROCEDURE DIVISION header missing
prog.cob:8: error: syntax error, unexpected Literal
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6285"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_327
#AT_START_328
at_fn_group_banner 328 'syn_misc.at:6301' \
  "WHEN-COMPILED register in dialect" "              " 2
at_xfail=no
(
  $as_echo "328. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       PROCEDURE DIVISION.
           DISPLAY WHEN-COMPILED
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6313: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:6313"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: 'WHEN-COMPILED' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6313"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:6316: \$COMPILE_ONLY -std=ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_misc.at:6316"
( $at_check_trace; $COMPILE_ONLY -std=ibm 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/syn_misc.at:6316"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:6317: \$COMPILE_ONLY -std=mvs prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mvs prog.cob" "syn_misc.at:6317"
( $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/syn_misc.at:6317"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:6318: \$COMPILE_ONLY -std=rm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=rm prog.cob" "syn_misc.at:6318"
( $at_check_trace; $COMPILE_ONLY -std=rm 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/syn_misc.at:6318"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:6319: \$COMPILE_ONLY -fregister=WHEN-COMPILED prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fregister=WHEN-COMPILED prog.cob" "syn_misc.at:6319"
( $at_check_trace; $COMPILE_ONLY -fregister=WHEN-COMPILED 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/syn_misc.at:6319"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:6320: \$COMPILE_ONLY -freserved=WHEN-COMPILED -fregister=WHEN-COMPILED prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -freserved=WHEN-COMPILED -fregister=WHEN-COMPILED prog.cob" "syn_misc.at:6320"
( $at_check_trace; $COMPILE_ONLY -freserved=WHEN-COMPILED -fregister=WHEN-COMPILED 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/syn_misc.at:6320"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_328
#AT_START_329
at_fn_group_banner 329 'syn_misc.at:6327' \
  "LIN / COL register" "                             " 2
at_xfail=no
(
  $as_echo "329. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       PROCEDURE DIVISION.
           MOVE 1 TO LIN, COL
           .
_ATEOF


# "strict" configuration:
{ set +x
$as_echo "$at_srcdir/syn_misc.at:6340: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:6340"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: 'LIN' is not defined
prog.cob:6: error: syntax error, unexpected COL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6340"
$at_failed && at_fn_log_failure
$at_traceon; }

# "lax" configuration:
{ set +x
$as_echo "$at_srcdir/syn_misc.at:6345: \$COMPILE_ONLY -std=acu prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu prog.cob" "syn_misc.at:6345"
( $at_check_trace; $COMPILE_ONLY -std=acu 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: 'LIN' is not defined
prog.cob:6: error: syntax error, unexpected COL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6345"
$at_failed && at_fn_log_failure
$at_traceon; }

# standard configuration:
{ set +x
$as_echo "$at_srcdir/syn_misc.at:6350: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6350"
( $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: 'LIN' is not defined
prog.cob:6: error: syntax error, unexpected COL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6350"
$at_failed && at_fn_log_failure
$at_traceon; }

# explicit enabled
{ set +x
$as_echo "$at_srcdir/syn_misc.at:6355: \$COMPILE_ONLY -fregister=LIN,COL prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fregister=LIN,COL prog.cob" "syn_misc.at:6355"
( $at_check_trace; $COMPILE_ONLY -fregister=LIN,COL 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/syn_misc.at:6355"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_329
#AT_START_330
at_fn_group_banner 330 'syn_misc.at:6359' \
  "tokens consisting of multiple words" "            " 2
at_xfail=no
(
  $as_echo "330. $at_setup_line: testing $at_desc ..."
  $at_traceon

# note: we actually do not check for all possible cases, but two are better than none...


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  test-var   pic xx.
           88  endOfFile value '10'.
       01  todo       pic xx.

       PROCEDURE DIVISION.
           if not endOfFile
              display 'all fine'
           end-if
           if test-var greater or equal todo
              display 'still fine'
           end-if
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6382: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6382"
( $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/syn_misc.at:6382"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_330
#AT_START_331
at_fn_group_banner 331 'syn_misc.at:6386' \
  "zero-length literals" "                           " 2
at_xfail=no
(
  $as_echo "331. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  x           PIC X.
       01  nat         PIC N.
       01  n           PIC 9.

       PROCEDURE       DIVISION.
           MOVE X'' TO x
           MOVE H'' TO x
           MOVE Z'' TO x
           MOVE L'' TO x
           MOVE N"" TO nat
           MOVE NX'' TO nat
           MOVE B"" TO n
           MOVE BX"" TO n
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6411: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6411"
( $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: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
prog.cob:12: warning: hexadecimal literal has zero length; X'00' will be assumed
prog.cob:13: error: H literals must contain at least one character
prog.cob:14: error: invalid Z literal: ''
prog.cob:14: error: Z literals must contain at least one character
prog.cob:15: error: invalid L literal: ''
prog.cob:15: error: L literals must contain at least one character
prog.cob:16: warning: national literal has zero length; a SPACE will be assumed
prog.cob:16: warning: handling of national literal is unfinished; implementation is likely to be changed
prog.cob:17: warning: hexadecimal literal has zero length; X'00' will be assumed
prog.cob:18: warning: Boolean literal has zero length; B'0' will be assumed
prog.cob:19: warning: hexadecimal literal has zero length; X'00' will be assumed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6411"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:6425: \$COMPILE_ONLY -fzero-length-literals=error prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fzero-length-literals=error prog.cob" "syn_misc.at:6425"
( $at_check_trace; $COMPILE_ONLY -fzero-length-literals=error 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: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
prog.cob:12: error: zero-length literal used
prog.cob:12: warning: hexadecimal literal has zero length; X'00' will be assumed
prog.cob:13: error: H literals must contain at least one character
prog.cob:14: error: invalid Z literal: ''
prog.cob:14: error: Z literals must contain at least one character
prog.cob:15: error: invalid L literal: ''
prog.cob:15: error: L literals must contain at least one character
prog.cob:16: error: zero-length literal used
prog.cob:16: warning: national literal has zero length; a SPACE will be assumed
prog.cob:16: warning: handling of national literal is unfinished; implementation is likely to be changed
prog.cob:17: error: zero-length literal used
prog.cob:17: warning: hexadecimal literal has zero length; X'00' will be assumed
prog.cob:18: error: zero-length literal used
prog.cob:18: warning: Boolean literal has zero length; B'0' will be assumed
prog.cob:19: error: zero-length literal used
prog.cob:19: warning: hexadecimal literal has zero length; X'00' will be assumed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6425"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_331
#AT_START_332
at_fn_group_banner 332 'syn_misc.at:6447' \
  "@OPTIONS parsing" "                               " 2
at_xfail=no
(
  $as_echo "332. $at_setup_line: testing $at_desc ..."
  $at_traceon



# GnuCOBOL currently only skips these, see FR 305

cat >valid.cob <<'_ATEOF'

000100 @OPTIONS NOMAIN,APOST
000200 IDENTIFICATION  DIVISION.
000300 PROGRAM-ID. VALID.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6458: \$COMPILE_ONLY valid.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY valid.cob" "syn_misc.at:6458"
( $at_check_trace; $COMPILE_ONLY valid.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "valid.cob:3: warning: ignoring unknown directive: '@OPTIONS'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:6458"
$at_failed && at_fn_log_failure
$at_traceon; }


#AT_DATA([invalid.cob], [
#       @OPTIONS ALPHAL(WORD)
#       @OPTIONS INITVALUE(100)
#       @OPTIONS INITVALUE(F)
#       @OPTIONS INITVALUE(AG)
#       @OPTIONS BINARY(WORD,MLBON) INITVALUE(00) NOTRUNC
#       @OPTIONS INITVALUE(00)
#       @OPTIONS NOTRUNC
#       @OPTIONS APOST,MAIN
#       @OPTIONS THREAD(SINGLE)
#       IDENTIFICATION DIVISION.
#       PROGRAM-ID. INVALID.
#])

#AT_CHECK([$COMPILE_ONLY valid.cob], [0], [], [])
#AT_CHECK([$COMPILE_ONLY invalid.cob], [1], [],
#[invalid.cob:2: warning: unknown @OPTIONS directive 'ALPHAL'
#invalid.cob:3: error: invalid @OPTIONS INITVALUE value '100'
#invalid.cob:4: error: invalid @OPTIONS INITVALUE value 'F'
#invalid.cob:5: error: invalid @OPTIONS INITVALUE value 'AG'
#invalid.cob:6: warning: skipping line after first space
#invalid.cob:7: error: @OPTIONS MAIN conflicts with command line option '-m'
#])

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_332
#AT_START_333
at_fn_group_banner 333 'syn_misc.at:6489' \
  "system routines with wrong number of parameters" "" 2
at_xfail=no
(
  $as_echo "333. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 VAR1  PIC 9.
       01 VAR2  PIC 9.
       01 VAR3  PIC 9.
       01 VAR4  PIC 9.
       PROCEDURE DIVISION.
        CALL X"91" USING VAR1 VAR2 VAR3 VAR4.
        CALL X"91" USING VAR1.
        CALL "C$TOUPPER" USING VAR1 VAR2 VAR3.
        CALL "CBL_GC_FORK" USING VAR1.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6508: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6508"
( $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: warning: wrong number of CALL parameters for 'X\"91\"', 4 given, 3 expected
prog.cob:12: error: wrong number of CALL parameters for 'X\"91\"', 1 given, 3 expected
prog.cob:13: warning: wrong number of CALL parameters for 'C\$TOUPPER', 3 given, 2 expected
prog.cob:14: warning: wrong number of CALL parameters for 'CBL_GC_FORK', 1 given, 0 expected
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6508"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_333
#AT_START_334
at_fn_group_banner 334 'syn_misc.at:6518' \
  "invalid use of condition-name" "                  " 2
at_xfail=no
(
  $as_echo "334. $at_setup_line: testing $at_desc ..."
  $at_traceon


# see Bug #543 "level 88 item not checked in all places for STRING"
# and FR #339
# Note: we actually check much more here, for example special data types
#       like HANDLE, see "ACUCOBOL USAGE HANDLE";
#       condition-name is also checked in syn_file.at "WRITE / REWRITE FROM clause"

cat >prog.cob <<'_ATEOF'

       identification   division.
       program-id.      prog.
       data             division.
       working-storage  section.
       77 p        usage pointer.
       01 val      pic x(10).
          88 val-i1 value 'some'.
          88 val-i2 value 'val'.
       77 val2     pic x(50).
       77 target   pic x(50).
       01 vnum     pic 9.
          88 vnum-1 value  1.
          88 vnum-2 values 2 thru 5.
          88 vnum-9 value  9.
       01 filler.
          02 tentry pic x occurs 0 to 6 depending on vnum-1.
       procedure        division.
           string   val-i1 delimited by size  into target
           string   val2   delimited by val-i2 into target
           string   val2   delimited by size   into val-i1
                           with pointer val-i2
           unstring val-i1                     into target
           unstring val2   delimited by val-i1 into target
           unstring val2                       into val-i1
                           with pointer val-i2
           move val-i1
             to val-i2, tentry (vnum-9)
           compute vnum-1 = vnum
           compute vnum    = vnum-1 /
                             vnum-2
           go to val-i1
           set p to val-i1
           set p to address of val-i2.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6562: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6562"
( $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:17: error: condition-name not allowed here: 'vnum-1'
prog.cob:19: error: condition-name not allowed here: 'val-i1'
prog.cob:20: error: condition-name not allowed here: 'val-i2'
prog.cob:21: error: condition-name not allowed here: 'val-i1'
prog.cob:23: error: condition-name not allowed here: 'val-i1'
prog.cob:24: error: condition-name not allowed here: 'val-i1'
prog.cob:25: error: condition-name not allowed here: 'val-i1'
prog.cob:28: error: condition-name not allowed here: 'vnum-9'
prog.cob:27: error: condition-name not allowed here: 'val-i1'
prog.cob:29: error: condition-name not allowed here: 'vnum-1'
prog.cob:30: error: condition-name not allowed here: 'vnum-1'
prog.cob:31: error: condition-name not allowed here: 'vnum-2'
prog.cob:33: error: condition-name not allowed here: 'val-i1'
prog.cob:34: error: condition-name not allowed here: 'val-i2'
prog.cob:32: error: 'val-i1 (MAIN SECTION:)' is not a procedure name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6562"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_334
#AT_START_335
at_fn_group_banner 335 'syn_misc.at:6582' \
  "XML GENERATE syntax checks" "                     " 2
at_xfail=no
(
  $as_echo "335. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  str.
           03  str-1 PIC XX.
           03  str-2 PIC X.
       66  renames-item RENAMES str-1 THRU str-2.
       01  bool-area.
           03  bool-item PIC 1(30) USAGE BIT.
           03  zoned-decimal PIC 99V99 PACKED-DECIMAL.
       01  just-item PIC X(30) JUST.
       01  table-area.
           03  table-entry PIC X(30) OCCURS 2 TIMES.
       01  long-str PIC X(200).

       01  float-item FLOAT-SHORT.
       01  pic-p-item PIC 99P(3).

       01  rec.
           03  child-1 PIC X(30).
           03  child-1a REDEFINES child-1 PIC 9(30).
           03  child-2 PIC X(30).
           03  child-3.
               05  child-3-1 PIC X OCCURS 5 TIMES.

       01  all-filler-rec.
           03  FILLER PIC XXXX.
           03  FILLER PIC 9999.

       01  invalid-sub-elt-rec.
           03  non-unique-name PIC X.
           03  valid-sub-rec.
               05  non-unique-name PIC X.
           03  bit-item PIC 1 USAGE BIT.
           03  ptr-item USAGE POINTER.

       01  with-attrs-does-nothing.
           03  FILLER PIC X.
           03  table-elt PIC X OCCURS 2 TIMES.
           03  with-attrs-group.
               05  with-attrs-group-child PIC X.
           03  with-attrs-child PIC X.

       PROCEDURE DIVISION.
           *> Receiving area is not alphanumeric or national.
           XML GENERATE bool-item FROM str
           *> Receiving area is JUSTIFIED RIGHT.
           XML GENERATE just-item FROM str
           *> Receiving area is subscripted or ref-mod'd.
           XML GENERATE table-entry (1) FROM str
           XML GENERATE long-str (1:100) FROM str

           *> Input record cannot be function identifier.
           XML GENERATE long-str FROM FUNCTION CHAR(4)
           *> Input record cannot be ref-mod'd.
           XML GENERATE long-str FROM str (2:1)
           *>  "       "   is not RENAMES (children may be RENAMES).
           XML GENERATE long-str FROM renames-item
           *> Non-ignored items of the input record must:
           *>  * alphabetic, alphanumeric, national, numeric or index.
           *>  * there must be at least one item.
           *>  * each non-FILLER name must be unique within the input record.
           XML GENERATE long-str FROM invalid-sub-elt-rec *> XXXXXXXXX ptr element is invalid
           XML GENERATE long-str FROM all-filler-rec

           *> COUNT IN field must be an integer.
           XML GENERATE long-str FROM str COUNT float-item
           *> COUNT IN field must not have P in PIC.
           XML GENERATE long-str FROM str COUNT pic-p-item

           *> ENCODING codepage must be unsigned integer.
           *> If receiving area is national, codepage must be 1200.
           *> "        "       "   alphanumeric, codepage must be 1208 or EBCDIC
           *>   page supported with XML.

           *> WITH ATTRIBUTES, generated immediate children must be
           *>  * elementary
           *>  * be non-FILLER
           *>  * not be OCCURS
           *>  * not be subject of a TYPE phrase.
           XML GENERATE long-str FROM with-attrs-does-nothing
               WITH ATTRIBUTES
               TYPE OF with-attrs-child IS ELEMENT

           *> NAMESPACE must be a valid URI.
           XML GENERATE long-str FROM str NAMESPACE "<>"
           *> NAMESPACE and -PREFIX must be alphanumeric or national.
           XML GENERATE long-str FROM str
              NAMESPACE bool-item NAMESPACE-PREFIX bool-item
           *>   "        "     "    may not be figurative constants.
           XML GENERATE long-str FROM str
               NAMESPACE SPACES NAMESPACE-PREFIX QUOTES
           *> NAMESPACE-PREFIX must be a valid XML name.
           XML GENERATE long-str FROM str
               NAMESPACE "http://www.w3.org/xml" NAMESPACE-PREFIX X"00"

           *> NAME items must reference input record or its children.
           XML GENERATE long-str FROM rec
               NAME OF child-1 IS "c1", long-str IS "c2", rec IS "r"
           *> NAME items cannot be reference modified or subscripted.
           XML GENERATE long-str FROM rec
               NAME OF child-1 (1:2) IS "c1"
           *> NAME items may not be ignored by the statement.
           XML GENERATE long-str FROM rec
               NAME OF child-1a IS "c1a"
           *> NAME literals must be valid XML names.
           XML GENERATE long-str FROM rec
               NAME OF child-1 IS X"00"

           *> TYPE items must be elementary and children of input record.
           XML GENERATE long-str FROM rec
               TYPE OF child-3 IS ELEMENT, long-str IS CONTENT,
                   rec IS CONTENT
           *> TYPE items cannot be ref-mod'd or subscripted.
           XML GENERATE long-str FROM rec
               TYPE OF child-1 (1:3) IS ATTRIBUTE,
                   child-3-1 (1) IS CONTENT
           *> TYPE items may not be ignored by the statement
           XML GENERATE long-str FROM rec
               TYPE OF child-1a IS ELEMENT
           *> TYPE ATTRIBUTE items must satisfy the conditions for WITH
           *>  ATTRIBUTES. (Covered by the above.)

           *> SUPPRESS WHEN items must be:
           *>  * elementary
           *>  * not ignored
           *>  * child of input record.
           XML GENERATE long-str FROM rec
               SUPPRESS child-3 WHEN SPACES, child-1a WHEN SPACES,
                   rec WHEN SPACES
          *> All SUPPRESS items must not be functions
           XML GENERATE long-str FROM rec
               SUPPRESS FUNCTION CHAR(5) WHEN SPACE
           *> All SUPPRESS items must not be ref-mod'd or subscripted.
           XML GENERATE long-str FROM rec
               SUPPRESS child-1 (1:3) WHEN ZERO,
                   child-3-1 (1) WHEN SPACES
           *> If non-WHEN SUPPRESS items may be groups. (No error message here.)
           XML GENERATE long-str FROM rec SUPPRESS child-3
           *> If SUPPRESS WHEN ZEROES, item is not DISPLAY-1.
           *> If SUPPRESS WHEN SPACES, item must be USAGE DISPLAY, DISPLAY-1 or
           *>   NATIONAL
           XML GENERATE long-str FROM bool-area
               SUPPRESS bool-item WHEN SPACES
           *> If SUPPRESS WHEN LOW-/HIGH-VALUES, item must be USAGE DISPLAY or
           *>   NATIONAL. If item is a zoned/national decimal item, it must be
           *>   an integer.
           XML GENERATE long-str FROM bool-area
               SUPPRESS bool-item WHEN LOW-VALUES,
                   zoned-decimal WHEN HIGH-VALUE
           *> (For generic WHEN phrases, invalid items above are ignored.)
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6742: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6742"
( $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:12: warning: USAGE BIT is not implemented
prog.cob:37: warning: USAGE BIT is not implemented
prog.cob:49: error: JSON/XML GENERATE receiving item must be alphanumeric or national
prog.cob:51: error: JSON/XML GENERATE receiving item may not have JUSTIFIED clause
prog.cob:53: error: JSON/XML GENERATE receiving item may not be subscripted
prog.cob:54: error: JSON/XML GENERATE receiving item may not be reference modified
prog.cob:57: error: syntax error, unexpected intrinsic function name, expecting Identifier
prog.cob:59: error: JSON/XML GENERATE input record may not be reference modified
prog.cob:61: error: JSON/XML GENERATE input record may not have RENAMES clause
prog.cob:66: error: JSON/XML GENERATE input record has subrecords with non-unique names
prog.cob:67: error: all the children of 'all-filler-rec' are ignored in JSON/XML GENERATE
prog.cob:70: error: COUNT IN item 'float-item' must be numeric and an integer
prog.cob:72: error: COUNT IN item 'pic-p-item' may not have PICTURE with P in it
prog.cob:89: warning: OCCURS items in JSON/XML GENERATE is not implemented
prog.cob:89: warning: WITH ATTRIBUTES specified, but no attributes can be generated
prog.cob:89: error: NAMESPACE must be a valid URI
prog.cob:92: error: NAMESPACE must be alphanumeric or national
prog.cob:92: error: NAMESPACE-PREFIX must be alphanumeric or national
prog.cob:97: error: NAMESPACE may not be a figurative constant
prog.cob:97: error: NAMESPACE-PREFIX may not be a figurative constant
prog.cob:98: error: NAMESPACE-PREFIX must be a valid XML name
prog.cob:104: warning: OCCURS items in JSON/XML GENERATE is not implemented
prog.cob:102: error: NAME OF item must be the input record or a child of it
prog.cob:107: warning: OCCURS items in JSON/XML GENERATE is not implemented
prog.cob:105: error: NAME OF item may not be reference modified
prog.cob:110: warning: OCCURS items in JSON/XML GENERATE is not implemented
prog.cob:108: error: NAME OF item may not be an ignored item in JSON/XML GENERATE
prog.cob:114: warning: OCCURS items in JSON/XML GENERATE is not implemented
prog.cob:111: error: NAME OF name must be a valid XML name
prog.cob:118: warning: OCCURS items in JSON/XML GENERATE is not implemented
prog.cob:115: error: TYPE OF item must be elementary
prog.cob:115: error: TYPE OF item must be a child of the input record
prog.cob:116: error: TYPE OF item must be elementary
prog.cob:116: error: TYPE OF item must be a child of the input record
prog.cob:122: warning: OCCURS items in JSON/XML GENERATE is not implemented
prog.cob:119: error: TYPE OF item may not be reference modified
prog.cob:120: error: TYPE OF item may not be subscripted
prog.cob:131: warning: OCCURS items in JSON/XML GENERATE is not implemented
prog.cob:123: error: TYPE OF item may not be an ignored item in JSON/XML GENERATE
prog.cob:135: warning: OCCURS items in JSON/XML GENERATE is not implemented
prog.cob:133: error: SUPPRESS item with WHEN clause must be elementary
prog.cob:133: error: SUPPRESS item must be a child of the input record
prog.cob:132: error: SUPPRESS item may not be an ignored item in JSON/XML GENERATE
prog.cob:132: error: SUPPRESS item with WHEN clause must be elementary
prog.cob:136: error: syntax error, unexpected intrinsic function name, expecting EVERY or WHEN or Identifier
prog.cob:142: warning: OCCURS items in JSON/XML GENERATE is not implemented
prog.cob:140: error: SUPPRESS item may not be subscripted
prog.cob:139: error: SUPPRESS item may not be reference modified
prog.cob:146: warning: OCCURS items in JSON/XML GENERATE is not implemented
prog.cob:147: error: SUPPRESS WHEN SPACE item must be USAGE DISPLAY or NATIONAL
prog.cob:153: error: SUPPRESS WHEN HIGH-VALUE item must be USAGE DISPLAY or NATIONAL
prog.cob:153: error: SUPPRESS WHEN HIGH-VALUE item must be an integer
prog.cob:152: error: SUPPRESS WHEN LOW-VALUE item must be USAGE DISPLAY or NATIONAL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6742"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_335
#AT_START_336
at_fn_group_banner 336 'syn_misc.at:6800' \
  "BASED clause, ALLOCATE / FREE statements" "       " 2
at_xfail=no
(
  $as_echo "336. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  str.
           03  str-1  PIC XX BASED.
       01  str-2 BASED.
           03  str-2a PIC X SYNC.
           03  str-2b PIC 9.
       01  one        PIC XX BASED.
       77  seven      PIC 9 BASED.
       77  var        PIC 9.
       77  ptr        USAGE POINTER.
       SCREEN-STORAGE SECTION.
       01  scrn      BASED.
           03  scrn-field pic x.

       PROCEDURE DIVISION.
           ALLOCATE one
           ALLOCATE seven INITIALIZED
           ALLOCATE seven CHARACTERS.
           ALLOCATE seven CHARACTERS RETURNING ptr.
           ALLOCATE 1 + 2 * 3 CHARACTERS RETURNING ptr.
           ALLOCATE 1 + one * 3 CHARACTERS RETURNING ptr.
           ALLOCATE one   CHARACTERS RETURNING ptr.
           ALLOCATE seven CHARACTERS INITIALIZED RETURNING ptr.
           ALLOCATE var
           FREE var
           FREE ADDRESS OF var
           FREE one
           FREE ADDRESS OF seven
           MOVE ADDRESS OF seven TO ptr
           FREE ptr
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6841: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6841"
( $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: BASED only allowed at 01/77 level
prog.cob:16: error: PROCEDURE DIVISION header missing
prog.cob:16: error: syntax error, unexpected Identifier
prog.cob:17: error: unknown statement '01'
prog.cob:18: error: unknown statement '03'
prog.cob:20: error: syntax error, unexpected PROCEDURE
prog.cob:23: error: ALLOCATE CHARACTERS requires RETURNING clause
prog.cob:26: error: 'one' is not a numeric value
prog.cob:27: error: amount must be specified as a numeric expression
prog.cob:29: error: target of ALLOCATE is not a BASED item
prog.cob:30: error: target 1 of FREE is not a BASED data item
prog.cob:31: error: target 1 of FREE is not a BASED data item
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6841"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_336
#AT_START_337
at_fn_group_banner 337 'syn_misc.at:6858' \
  "CONTINUE statement" "                             " 2
at_xfail=no
(
  $as_echo "337. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  one        PIC X.
       77  seven      PIC 9 BASED.
       77  var        PIC 9.
       77  ptr        USAGE POINTER.
       PROCEDURE DIVISION.
           CONTINUE
           PERFORM VARYING var FROM 1 BY 1 UNTIL var = 4
              CONTINUE
           END-PERFORM
           CONTINUE AFTER 42 SECONDS      *> COBOL 202x
           CONTINUE AFTER 4 + 2 SECONDS
           CONTINUE AFTER var + 2 SECONDS
           CONTINUE AFTER '1' SECONDS
           CONTINUE AFTER ptr SECONDS
           CONTINUE AFTER one SECONDS
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6885: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6885"
( $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:19: error: amount must be specified as a numeric expression
prog.cob:20: error: amount must be specified as a numeric expression
prog.cob:21: error: amount must be specified as a numeric expression
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6885"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6891: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "syn_misc.at:6891"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
prog.cob:17: error: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
prog.cob:18: error: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
prog.cob:19: error: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
prog.cob:20: error: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
prog.cob:21: error: AFTER phrase in CONTINUE statement does not conform to COBOL 2014
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6891"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_337
#AT_START_338
at_fn_group_banner 338 'syn_misc.at:6902' \
  "conflict markers" "                               " 2
at_xfail=no
(
  $as_echo "338. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
      *> Verify that we report conflict markers correctly
<<<<<<< HEAD
       01  one-1      PIC X.
======= there may be something here
       01  one-2      PIC X.
>>>>>>> some note
      *> Verify that we don't have an issue with unmatched conflict markers
       77  var        PIC 9.
<<<<<<< HEAD
       01  var2       PIC X.
=======
<<<<<<< HEAD
      *> Verify that we only report conflict markers at the start of lines.
 <<<<<<< HEAD
       01  one        PIC X.
 =======
       01  two        PIC 9.
 >>>>>>> some note
       PROCEDURE DIVISION.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6933: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:6933"
( $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: version control conflict marker in file
prog.cob:10: error: version control conflict marker in file
prog.cob:12: error: version control conflict marker in file
prog.cob:15: error: version control conflict marker in file
prog.cob:17: error: version control conflict marker in file
prog.cob:18: error: version control conflict marker in file
prog.cob:20: error: invalid indicator '<' at column 7
prog.cob:22: error: invalid indicator '=' at column 7
prog.cob:24: warning: ignoring invalid directive: '>> some'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6933"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_misc.at:6945: \$COMPILE_ONLY -free prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -free prog.cob" "syn_misc.at:6945"
( $at_check_trace; $COMPILE_ONLY -free 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: version control conflict marker in file
prog.cob:10: error: version control conflict marker in file
prog.cob:12: error: version control conflict marker in file
prog.cob:15: error: version control conflict marker in file
prog.cob:17: error: version control conflict marker in file
prog.cob:18: error: version control conflict marker in file
prog.cob:24: warning: ignoring invalid directive
prog.cob:20: error: PROCEDURE DIVISION header missing
prog.cob:20: error: syntax error, unexpected <
prog.cob:22: error: syntax error, unexpected =
prog.cob:25: error: syntax error, unexpected PROCEDURE
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:6945"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_338
#AT_START_339
at_fn_group_banner 339 'syn_misc.at:6961' \
  "SORT syntax" "                                    " 2
at_xfail=no
(
  $as_echo "339. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT SRTFIL ASSIGN TO "SRTFIL"
           ORGANIZATION LINE SEQUENTIAL.
           SELECT STFILE ASSIGN TO "STFILE"
           ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD SRTFIL.
       01 SRTREC               PIC X(256).
       SD STFILE.
       01 STFREC               PIC X(256).

       WORKING-STORAGE SECTION.
       01 G             VALUE "d4b2e1a3c5".
         02 TBL         OCCURS 5.
           03 X         PIC X.
           03 Y         PIC 9.
         02 TBL-ORD     OCCURS 5 ASCENDING YO.
           03 XO        PIC X.
           03 YO        PIC 9.

       PROCEDURE DIVISION.
           SORT TBL ASCENDING KEY X.
           SORT TBL DESCENDING.
           SORT TBL.
           SORT TBL-ORD ASCENDING.
           SORT TBL-ORD.
           SORT STFILE DESCENDING KEY SRTREC.
           SORT STFILE DESCENDING KEY SRTREC USING SRTFIL GIVING SRTFIL.
           SORT STFILE ASCENDING.
           SORT STFILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7005: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7005"
( $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:32: error: table SORT requires KEY phrase
prog.cob:35: error: file sort requires USING or INPUT PROCEDURE
prog.cob:35: error: file sort requires GIVING or OUTPUT PROCEDURE
prog.cob:37: error: file sort requires KEY phrase
prog.cob:38: error: file sort requires KEY phrase
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:7005"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_339
#AT_START_340
at_fn_group_banner 340 'syn_misc.at:7015' \
  "OSVS I/O extensions" "                            " 2
at_xfail=no
(
  $as_echo "340. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN "f.dat" SEQUENTIAL
               FILE-LIMITS ARE 1 THRU 10, 100 THRU f-max
               TRACK-AREA 100 CHARACTERS
               TRACK-LIMIT 5 TRACKS.
           SELECT g ASSIGN "g.dat" RELATIVE
               RELATIVE KEY g-key
               ACTUAL KEY g-actual-key.

       I-O-CONTROL.
           APPLY RECORD-OVERFLOW f, g
           APPLY CORE-INDEX core-idx ON f
           APPLY CYL-INDEX TO 5 ON f
           APPLY CYL-OVERFLOW 10 TRACKS f
           APPLY EXTENDED-SEARCH g
           APPLY MASTER-INDEX TO 5 on g
           APPLY WRITE-VERIFY f, g
           APPLY REORG-CRITERIA f-rec, f
           RERUN ON "g2.dat" EVERY END REEL g
           .
       DATA             DIVISION.
       FILE             SECTION.
       FD  f.
       01  f-rec        PIC X(100).

       FD  g.
       01  g-rec        PIC 9(10).

       WORKING-STORAGE  SECTION.
       01  core-idx     PIC 999.
       01  f-max        PIC 9(5) VALUE 1000.
       01  g-key        PIC 999.
       01  g-actual-key PIC XXX.

       PROCEDURE        DIVISION.
           OPEN INPUT f DISP, INPUT g REREAD
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7063: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7063"
( $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: warning: FILE-LIMIT is obsolete in GnuCOBOL
prog.cob:10: warning: TRACK-AREA is obsolete in GnuCOBOL
prog.cob:11: warning: TRACK-LIMIT is obsolete in GnuCOBOL
prog.cob:14: warning: ACTUAL KEY is obsolete in GnuCOBOL
prog.cob:18: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
prog.cob:19: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
prog.cob:20: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
prog.cob:21: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
prog.cob:22: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
prog.cob:23: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
prog.cob:24: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
prog.cob:25: warning: DOS/VS APPLY phrase is obsolete in GnuCOBOL
prog.cob:42: warning: OPEN LEAVE/REREAD/DISP is obsolete in GnuCOBOL
prog.cob:42: warning: OPEN LEAVE/REREAD/DISP is obsolete in GnuCOBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7063"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_340
#AT_START_341
at_fn_group_banner 341 'syn_misc.at:7082' \
  "long literal in error message" "                  " 2
at_xfail=no
(
  $as_echo "341. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      tutorial.
       PROCEDURE DIVISION.
           move low-values to
           ' 1  c d e f g h i j k l m n 0 q.'-
           ' 2  C D E F G H I J K L M N 0 Q.'-
           ' 3  c d e f g h i j k l m n 0 q.'-
           ' 4  C D E F G H I J K L M N 0 Q.'-
           ' 5  c d e f g h i j k l m n 0 q.'-
           ' 6  C D E F G H I J K L M N 0 Q.'-
           ' 7  c d e f g h i j k l m n 0 q.'-
           ' 8  C D E F G H I J K L M N 0 Q.'-
           ' 9  c d e f g h i j k l m n 0 q.'-
           '10  C D E F G H I J K L M N 0 Q.'-
           '11  c d e f g h i j k l m n 0 q.'-
           '12  C D E F G H I J K L M N 0 Q.'-
           '13  c d e f g h i j k l m n 0 q.'-
           '14  C D E F G H I J K L M N 0 Q.'-
           '15  c d e f g h i j k l m n 0 q.'.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7107: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7107"
( $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: invalid MOVE target: literal \" 1  c d e f g h i j k l m n 0 q. 2 ...\"
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:7107"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_341
#AT_START_342
at_fn_group_banner 342 'syn_misc.at:7114' \
  "literal missing terminating character" "          " 2
at_xfail=no
(
  $as_echo "342. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      tutorial.
       PROCEDURE DIVISION.
           DISPLAY ' 1  c d e f g h i j k l m n 0 q.
      -            ' 2  C D E F G H I J K L M N 0 Q.
_ATEOF


# FIXME: we should move this from scanner to pplex to preserve the spaces
# [prog.cob:5: error: invalid literal: ' 1  c d e f g h i j k l m n 0 q. ...'
{ set +x
$as_echo "$at_srcdir/syn_misc.at:7127: \$COMPILE_ONLY -w prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -w prog.cob" "syn_misc.at:7127"
( $at_check_trace; $COMPILE_ONLY -w 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: invalid literal: ' 1 c d e f g h i j k l m n 0 q. 2  ...'
prog.cob:5: error: missing terminating ' character
prog.cob:5: error: syntax error, unexpected end of file
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:7127"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_342
#AT_START_343
at_fn_group_banner 343 'syn_misc.at:7135' \
  "EQUALS in expressions" "                          " 2
at_xfail=no
(
  $as_echo "343. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  num PIC 99 VALUE 0.
       PROCEDURE DIVISION.
           IF num LESS OR EQUALS 0
               CONTINUE
           END-IF
           IF num GREATER THAN OR EQUALS 1
               CONTINUE
           END-IF
           IF num EQUALS TO 0
               CONTINUE
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7157: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_misc.at:7157"
( $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/syn_misc.at:7157"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_343
#AT_START_344
at_fn_group_banner 344 'syn_misc.at:7161' \
  "Invalid parentheses around condition" "           " 2
at_xfail=no
(
  $as_echo "344. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  num PIC 99 VALUE 0.
       PROCEDURE DIVISION.
           IF num NOT (LESS OR EQUALS) 0
               CONTINUE
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7178: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_misc.at:7178"
( $at_check_trace; $COMPILE 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 expression
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:7178"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_344
#AT_START_345
at_fn_group_banner 345 'syn_misc.at:7184' \
  "DISPLAY directive (1)" "                          " 2
at_xfail=no
(
  $as_echo "345. $at_setup_line: testing $at_desc ..."
  $at_traceon



# this format is COBOL 202x without UPON
# --> implied UPON LISTING which goes to stdout
# as there is no listing active
# TODO: extend the >> DISPLAY tests and actually support
#       the complete format...

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       >>DISPLAY "OK"
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7201: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7201"
( $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=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7201"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_345
#AT_START_346
at_fn_group_banner 346 'syn_misc.at:7207' \
  "DISPLAY directive (2)" "                          " 2
at_xfail=no
(
  $as_echo "346. $at_setup_line: testing $at_desc ..."
  $at_traceon



# this is an OpenCOBOL/GnuCOBOL 2.x extension, with implied literal
# similar to $DISPLAY

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       >>DISPLAY OK
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7221: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7221"
( $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=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7221"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_346
#AT_START_347
at_fn_group_banner 347 'syn_misc.at:7227' \
  "DISPLAY directive (3)" "                          " 2
at_xfail=no
(
  $as_echo "347. $at_setup_line: testing $at_desc ..."
  $at_traceon



# this is the classical MicroFocus format

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
      $DISPLAY OK
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7240: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7240"
( $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=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7240"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_347
#AT_START_348
at_fn_group_banner 348 'syn_misc.at:7246' \
  "conditional / define directives (1)" "            " 2
at_xfail=no
(
  $as_echo "348. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       >>IF ACTIVATE DEFINED
       >>DISPLAY "NOTOK"
       >>ELIF ACTIVATE2 DEFINED
       >>DISPLAY "OK"
       >>ELSE
       >>DISPLAY "NOTOK"
       >>END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7265: \$COMPILE_ONLY -DACTIVATE2 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -DACTIVATE2 prog.cob" "syn_misc.at:7265"
( $at_check_trace; $COMPILE_ONLY -DACTIVATE2 prog.cob
) >>"$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/syn_misc.at:7265"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_348
#AT_START_349
at_fn_group_banner 349 'syn_misc.at:7271' \
  "conditional / define directives (2)" "            " 2
at_xfail=no
(
  $as_echo "349. $at_setup_line: testing $at_desc ..."
  $at_traceon



# COBOL 2002 format; checks that defines are applied at correct place

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       PROCEDURE      DIVISION.
       >> IF X DEFINED
         >>DISPLAY "X defined"
       >> ELSE
         >> DISPLAY "X not defined"
         >> DEFINE X 1
       >> END-IF
           CONTINUE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7290: \$COMPILE_ONLY -D X prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -D X prog.cob" "syn_misc.at:7290"
( $at_check_trace; $COMPILE_ONLY -D X prog.cob
) >>"$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 defined
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7290"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:7293: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7293"
( $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=:
echo >>"$at_stdout"; $as_echo "X not defined
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7293"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_349
#AT_START_350
at_fn_group_banner 350 'syn_misc.at:7299' \
  "conditional / define directives (3)" "            " 2
at_xfail=no
(
  $as_echo "350. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       PROCEDURE      DIVISION.
       >>IF A IS DEFINED
       >>IF B IS DEFINED
           CONTINUE
       >> DISPLAY "NOT OK (not both definitions)"
           .
       >>ELSE
           CONTINUE
       >> DISPLAY "NOT OK (no definitions)"
           .
       >>END-IF
       >>ELSE
           CONTINUE
       >> DISPLAY "OK"
           .
       >>END-IF
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7323: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7323"
( $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=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7323"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_350
#AT_START_351
at_fn_group_banner 351 'syn_misc.at:7329' \
  "conditional / define directives (4)" "            " 2
at_xfail=no
(
  $as_echo "351. $at_setup_line: testing $at_desc ..."
  $at_traceon



# check for case-insensivity

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       PROCEDURE      DIVISION.
       >>IF A IS DEFINED
           CONTINUE
           .
       >>else
           CONTINUE
           .
       >>eNd-If
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7347: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7347"
( $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/syn_misc.at:7347"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_351
#AT_START_352
at_fn_group_banner 352 'syn_misc.at:7351' \
  "error handling in conditional directives" "       " 2
at_xfail=no
(
  $as_echo "352. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       PROCEDURE      DIVISION.
       >> IF BANANA
         >>DISPLAY "Who throws bananas?"
       >> ELSE
         >> DISPLAY "No BANANA here."
         >> DEFINE X 1
       >> END-IF
           CONTINUE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7368: \$COMPILE_ONLY -D X prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -D X prog.cob" "syn_misc.at:7368"
( $at_check_trace; $COMPILE_ONLY -D X 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: invalid IF directive
prog.cob:9: error: duplicate DEFINE directive 'X'
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "No BANANA here.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_misc.at:7368"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_352
#AT_START_353
at_fn_group_banner 353 'syn_misc.at:7377' \
  "conditional directives with lvl 78 (1)" "         " 2
at_xfail=yes
(
  $as_echo "353. $at_setup_line: testing $at_desc ..."
  $at_traceon



# MicroFocus format; checks that level 78 are applied

# FIXME - not done yet:


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       78 Y            VALUE 'a'.
       PROCEDURE       DIVISION.
      $IF X DEFINED
      $DISPLAY X defined
      $ELIF Y DEFINED
      $DISPLAY X not defined, but Y via lvl 78
      $ELSE
      $DISPLAY X not defined
      $END
           CONTINUE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7403: \$COMPILE_ONLY -D X prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -D X prog.cob" "syn_misc.at:7403"
( $at_check_trace; $COMPILE_ONLY -D X prog.cob
) >>"$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 defined
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7403"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_misc.at:7406: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7406"
( $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=:
echo >>"$at_stdout"; $as_echo "X not defined, but Y via lvl 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7406"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_353
#AT_START_354
at_fn_group_banner 354 'syn_misc.at:7412' \
  "conditional directives with lvl 78 (2)" "         " 2
at_xfail=yes
(
  $as_echo "354. $at_setup_line: testing $at_desc ..."
  $at_traceon



# MicroFocus format; checks that level 78 are applied with correct values

# FIXME - not done yet:


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       78 Y            VALUE 1.
       78 Y2           VALUE 1.
       78 X            VALUE 2.
       78 Z            VALUE 354.
       PROCEDURE       DIVISION.
      $IF Y = Y2X
      $DISPLAY correct Y = Y2
      $ELSE
      $DISPLAY bad: Y should be = Y2
      $END
      $IF Y > X
      $DISPLAY BAD - Y is not > X
      $ELIF Y < X
      $DISPLAY correct Y < X
      $ELSE
      $DISPLAY BROKEN
      $END

      $IF X > Y
      $DISPLAY correct X > Y
      $ELIF X < Y
      $DISPLAY BAD - X is not < Y
      $ELSE
      $DISPLAY BROKEN
      $END
           CONTINUE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_misc.at:7454: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_misc.at:7454"
( $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=:
echo >>"$at_stdout"; $as_echo "correct Y = Y2
correct Y < X
correct X > Y
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_misc.at:7454"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_354
#AT_START_355
at_fn_group_banner 355 'syn_move.at:37' \
  "MOVE SPACE TO numeric or numeric-edited item" "   " 2
at_xfail=no
(
  $as_echo "355. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9.
       01 Y             PIC 09.
       PROCEDURE        DIVISION.
           MOVE SPACE TO X.
           MOVE SPACE TO Y.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:53: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.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:9: error: MOVE of figurative constant SPACE to numeric item used
prog.cob:10: error: MOVE of figurative constant SPACE to numeric item used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:53"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_355
#AT_START_356
at_fn_group_banner 356 'syn_move.at:63' \
  "MOVE ZERO TO alphabetic item" "                   " 2
at_xfail=no
(
  $as_echo "356. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 A             PIC A.
       PROCEDURE        DIVISION.
           MOVE ZERO TO A.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:77: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:77"
( $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/syn_move.at:77"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_356
#AT_START_357
at_fn_group_banner 357 'syn_move.at:89' \
  "MOVE alphabetic TO x" "                           " 2
at_xfail=no
(
  $as_echo "357. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC A.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:112: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:112"
( $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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:112"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_357
#AT_START_358
at_fn_group_banner 358 'syn_move.at:120' \
  "MOVE alphanumeric TO x" "                         " 2
at_xfail=no
(
  $as_echo "358. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:143: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:143"
( $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/syn_move.at:143"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_358
#AT_START_359
at_fn_group_banner 359 'syn_move.at:148' \
  "MOVE alphanumeric-edited TO x" "                  " 2
at_xfail=no
(
  $as_echo "359. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC BX.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:171: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_359
#AT_START_360
at_fn_group_banner 360 'syn_move.at:179' \
  "MOVE numeric (integer) TO x" "                    " 2
at_xfail=no
(
  $as_echo "360. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:202: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:202"
( $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/syn_move.at:202"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_360
#AT_START_361
at_fn_group_banner 361 'syn_move.at:209' \
  "MOVE numeric (non-integer) TO x" "                " 2
at_xfail=no
(
  $as_echo "361. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9V9.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:232: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:232"
( $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_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:232"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_361
#AT_START_362
at_fn_group_banner 362 'syn_move.at:241' \
  "MOVE numeric-edited TO x" "                       " 2
at_xfail=no
(
  $as_echo "362. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 09.
       01 Y-A           PIC A.
       01 Y-X           PIC X.
       01 Y-BX          PIC BX.
       01 Y-9           PIC 9.
       01 Y-09          PIC 09.
       PROCEDURE        DIVISION.
           MOVE X TO Y-A.
           MOVE X TO Y-X.
           MOVE X TO Y-BX.
           MOVE X TO Y-9.
           MOVE X TO Y-09.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:264: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:264"
( $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/syn_move.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_362
#AT_START_363
at_fn_group_banner 363 'syn_move.at:276' \
  "CORRESPONDING - Operands must be groups" "        " 2
at_xfail=no
(
  $as_echo "363. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1.
         02 X           PIC X.
       01 G-2.
         02 Y           PIC X.
       PROCEDURE        DIVISION.
           MOVE CORR X TO G-1.
           MOVE CORR G-1 TO X.
           MOVE CORR G-1(1:1) TO G-2.
           MOVE CORR G-1 TO G-2(1:1).
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:296: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:296"
( $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 a group name
prog.cob:12: error: 'X' is not a group name
prog.cob:13: error: 'G-1 (1:1)' is not a group name
prog.cob:14: error: 'G-2 (1:1)' is not a group name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:296"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_363
#AT_START_364
at_fn_group_banner 364 'syn_move.at:306' \
  "CORRESPONDING - Target has no matching items" "   " 2
at_xfail=no
(
  $as_echo "364. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G-1.
         02 X           PIC X.
       01 G-2.
         02 Y           PIC X.
       PROCEDURE        DIVISION.
           MOVE CORR G-1 TO G-2.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:323: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:323"
( $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: warning: no CORRESPONDING items found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_move.at:323"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_364
#AT_START_365
at_fn_group_banner 365 'syn_move.at:332' \
  "MOVE to erroneous field" "                        " 2
at_xfail=no
(
  $as_echo "365. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 INVALID-ITEM.
       01 I             PIC 9(3).
       PROCEDURE        DIVISION.
           MOVE 1 TO INVALID-ITEM.
           MOVE SPACE TO I(1:2).
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:348: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:348"
( $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/syn_move.at:348"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_365
#AT_START_366
at_fn_group_banner 366 'syn_move.at:355' \
  "Overlapping MOVE" "                               " 2
at_xfail=no
(
  $as_echo "366. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01  STRUCTURE1.
            05 FIELD1-1  PIC X(5).
            05 FIELD1-2  PIC X(10).
        01  STRUCTURE2   REDEFINES STRUCTURE1.
            05 FIELD2-1  PIC X(10).
            05 FIELD2-2  PIC X(5).
        01  FILLER       REDEFINES STRUCTURE1.
            05 FILLER    PIC X(01).
            05 FIELD     PIC X(02) OCCURS 7.
        01  FILLER.
            05 FIELDO    PIC X(02) OCCURS 7.
        77  NUMVAR       PIC 9(02) VALUE 1.
        78  CONST4       VALUE 4.
        PROCEDURE DIVISION.
           MOVE FIELD1-2 TO STRUCTURE1
           MOVE FIELD1-2 TO FIELD1-1
           MOVE FIELD1-1 TO FIELD1-2, FIELD2-2
           MOVE FIELD1-2 TO FIELD2-1
           MOVE FIELD2-1 TO FIELD2-2
           MOVE FIELD2-1   (2:5) TO FIELD1-2
           MOVE STRUCTURE1 (2:4) TO STRUCTURE1 (5:4)
           MOVE STRUCTURE1 (2:4) TO STRUCTURE1 (6:4)
           MOVE STRUCTURE1 (1:NUMVAR)  TO STRUCTURE1 (3:13)
           MOVE STRUCTURE1 (NUMVAR:1)  TO STRUCTURE1 (3:13)
           MOVE STRUCTURE1 (3:13)      TO STRUCTURE1 (1:NUMVAR)
           MOVE STRUCTURE1 (3:13)      TO STRUCTURE1 (NUMVAR:1)
           MOVE STRUCTURE1 (CONST4:2)  TO STRUCTURE1 (3:2)
           MOVE STRUCTURE1 (6:4)       TO STRUCTURE1 (2:4)
           MOVE STRUCTURE1 (6:4)       TO STRUCTURE1 (2: )
           MOVE FIELD (6)         TO STRUCTURE1 (13:2)
           MOVE FIELD (5)         TO STRUCTURE1 (13:2)
           MOVE FIELD (NUMVAR)    TO STRUCTURE1 (13:2)
           MOVE FIELD (CONST4)    TO STRUCTURE1 (13:2)
           MOVE FIELDO (1)        TO FIELDO (1)
           MOVE FIELDO (CONST4)   TO FIELDO (CONST4)
           MOVE FIELDO (1)        TO FIELDO (2)
           MOVE FIELDO (4)        TO FIELDO (CONST4)
           MOVE FIELDO (CONST4)   TO FIELDO (4)
           MOVE FIELDO (4)        TO FIELDO (NUMVAR)
           MOVE FIELDO (NUMVAR)   TO FIELDO (4)
           MOVE FIELDO (NUMVAR)   TO FIELDO (NUMVAR)
           MOVE FIELDO (NUMVAR) (1:1) TO FIELDO (NUMVAR) (2:1)
           MOVE FIELDO (NUMVAR) (2:1) TO FIELDO (NUMVAR)
           MOVE FIELDO (4) (2:1)  TO FIELDO (CONST4)
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:410: \$COMPILE -w prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -w prog.cob" "syn_move.at:410"
( $at_check_trace; $COMPILE -w 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/syn_move.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_move.at:412: \$COMPILE -fdiagnostics-show-option prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdiagnostics-show-option prog.cob" "syn_move.at:412"
( $at_check_trace; $COMPILE -fdiagnostics-show-option prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:20: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:23: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:25: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:26: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:32: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:34: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:39: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:40: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:42: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:43: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:46: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:48: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:49: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_move.at:412"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_move.at:428: \$COMPILE -fdiagnostics-show-option -Wpossible-overlap prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdiagnostics-show-option -Wpossible-overlap prog.cob" "syn_move.at:428"
( $at_check_trace; $COMPILE -fdiagnostics-show-option -Wpossible-overlap prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:20: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:23: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:25: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:26: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:28: warning: overlapping MOVE may occur and produce unpredictable results [-Wpossible-overlap]
prog.cob:29: warning: overlapping MOVE may occur and produce unpredictable results [-Wpossible-overlap]
prog.cob:30: warning: overlapping MOVE may occur and produce unpredictable results [-Wpossible-overlap]
prog.cob:31: warning: overlapping MOVE may occur and produce unpredictable results [-Wpossible-overlap]
prog.cob:32: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:34: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:39: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:40: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:42: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:43: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:46: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:48: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
prog.cob:49: warning: overlapping MOVE may produce unpredictable results [-Woverlap]
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_move.at:428"
$at_failed && at_fn_log_failure
$at_traceon; }

# special case: for GnuCOBOL the result is predictable,
# therefore TODO test in run_misc we have the expected result
# AT_CHECK([$COBCRUN_DIRECT ./prog], [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_366
#AT_START_367
at_fn_group_banner 367 'syn_move.at:454' \
  "invalid source for MOVE" "                        " 2
at_xfail=no
(
  $as_echo "367. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       REPOSITORY.
           PROGRAM repo-prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 MAIN-VAR      PIC X(3).
       PROCEDURE        DIVISION.
       MAIN.
           MOVE MAIN TO MAIN-VAR.
           MOVE repo-prog TO MAIN.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:474: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:474"
( $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: no definition/prototype seen for PROGRAM 'repo-prog'
prog.cob: in paragraph 'MAIN':
prog.cob:13: error: 'MAIN' is not a field
prog.cob:14: error: 'repo-prog' is not a field
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:474"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_367
#AT_START_368
at_fn_group_banner 368 'syn_move.at:484' \
  "invalid target for MOVE" "                        " 2
at_xfail=no
(
  $as_echo "368. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       REPOSITORY.
           PROGRAM repo-prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       78 DEFINED-CONST VALUE 'A'.
       77 MAIN-VAR      PIC X(3).
       PROCEDURE        DIVISION.
       MAIN.
           MOVE 'A' TO MAIN-VAR.
           MOVE 'B' TO MAIN.
           MOVE 'C' TO repo-prog.
           MOVE 'D' TO QUOTE.
           MOVE 'E' TO DEFINED-CONST.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:508: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:508"
( $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: no definition/prototype seen for PROGRAM 'repo-prog'
prog.cob: in paragraph 'MAIN':
prog.cob:15: error: invalid MOVE target: MAIN
prog.cob:16: error: invalid MOVE target: repo-prog
prog.cob:17: error: invalid MOVE target: QUOTE
prog.cob:18: error: invalid MOVE target: literal \"A\"
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:508"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_368
#AT_START_369
at_fn_group_banner 369 'syn_move.at:520' \
  "SET error" "                                      " 2
at_xfail=no
(
  $as_echo "369. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       program-id. prog.
       data division.
       working-storage section.
       01 default-float usage float-long.
       01 no-pointer    pic s9(9) comp.

       linkage section.
       01 float-var usage float-long.

       procedure division .
      *> previously generated error message about invalid MOVE statement,
      *> see bug #255 and an internal compiler error, see bug #295:
           set address of float-var to default-float
           set no-pointer to address of default-float
      *> all fine...
           set address of float-var to address of default-float
           goback.
       end program prog .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:544: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:544"
( $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:14: error: invalid SET statement
prog.cob:15: error: invalid SET statement
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:544"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_369
#AT_START_370
at_fn_group_banner 370 'syn_move.at:552' \
  "MOVE FIGURATIVE to NUMERIC" "                     " 2
at_xfail=no
(
  $as_echo "370. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID. prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MYFLD        PIC 9(4) VALUE 96.
       01  BIGFLT       COMP-1 VALUE 543.12345E10.
       PROCEDURE        DIVISION.
       MAIN-1.
           MOVE BIGFLT TO MYFLD.
           MOVE SPACES TO MYFLD.
           MOVE LOW-VALUES TO MYFLD.
           MOVE HIGH-VALUES TO MYFLD.
           MOVE QUOTE TO MYFLD.
           MOVE ALL '*' TO MYFLD.
           MOVE ALL '0' TO MYFLD.
           MOVE ALL 'A1' TO MYFLD.
           MOVE ALL '21' TO MYFLD.
           SET MYFLD TO HIGH-VALUES.
           SET MYFLD TO SPACES.
           MOVE HIGH-VALUES TO MYFLD (1:).

           MOVE HIGH-VALUES TO BIGFLT.
           MOVE QUOTE TO BIGFLT.
           MOVE ALL '*' TO BIGFLT.
           MOVE ALL '21' TO BIGFLT.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_move.at:584: \$COMPILE_ONLY -std=cobol2002 -freserved=COMP-1:FLOAT prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2002 -freserved=COMP-1:FLOAT prog.cob" "syn_move.at:584"
( $at_check_trace; $COMPILE_ONLY -std=cobol2002 -freserved=COMP-1:FLOAT 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 'MAIN-1':
prog.cob:11: error: MOVE of figurative constant SPACE to numeric item used
prog.cob:12: warning: MOVE of figurative constant to numeric item is archaic in COBOL 2002
prog.cob:13: warning: MOVE of figurative constant to numeric item is archaic in COBOL 2002
prog.cob:14: warning: MOVE of figurative constant QUOTE to numeric item is archaic in COBOL 2002
prog.cob:15: warning: numeric value is expected
prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
prog.cob:17: warning: numeric value is expected
prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
prog.cob:19: error: invalid SET statement
prog.cob:20: error: invalid SET statement
prog.cob:23: warning: MOVE of figurative constant to numeric item is archaic in COBOL 2002
prog.cob:24: warning: MOVE of figurative constant QUOTE to numeric item is archaic in COBOL 2002
prog.cob:25: warning: numeric value is expected
prog.cob:7: note: 'BIGFLT' defined here as USAGE FLOAT
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:584"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_move.at:602: \$COMPILE_ONLY -std=ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=ibm prog.cob" "syn_move.at:602"
( $at_check_trace; $COMPILE_ONLY -std=ibm 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 'MAIN-1':
prog.cob:11: error: MOVE of figurative constant SPACE to numeric item used
prog.cob:12: warning: MOVE of figurative constant to numeric item is archaic in IBM COBOL (lax)
prog.cob:13: warning: MOVE of figurative constant to numeric item is archaic in IBM COBOL (lax)
prog.cob:14: warning: MOVE of figurative constant QUOTE to numeric item is archaic in IBM COBOL (lax)
prog.cob:15: warning: numeric value is expected
prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
prog.cob:17: warning: numeric value is expected
prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
prog.cob:19: error: invalid SET statement
prog.cob:20: error: invalid SET statement
prog.cob:23: warning: MOVE of figurative constant to numeric item is archaic in IBM COBOL (lax)
prog.cob:24: warning: MOVE of figurative constant QUOTE to numeric item is archaic in IBM COBOL (lax)
prog.cob:25: warning: numeric value is expected
prog.cob:7: note: 'BIGFLT' defined here as USAGE FLOAT
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:602"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_move.at:620: \$COMPILE_ONLY -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=mf prog.cob" "syn_move.at:620"
( $at_check_trace; $COMPILE_ONLY -std=mf 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 'MAIN-1':
prog.cob:11: warning: source is non-numeric - substituting zero
prog.cob:12: warning: source is non-numeric - substituting zero
prog.cob:13: warning: source is non-numeric - substituting zero
prog.cob:14: warning: source is non-numeric - substituting zero
prog.cob:15: warning: source is non-numeric - substituting zero
prog.cob:17: warning: source is non-numeric - substituting zero
prog.cob:19: error: invalid SET statement
prog.cob:20: error: invalid SET statement
prog.cob:23: warning: source is non-numeric - substituting zero
prog.cob:24: warning: source is non-numeric - substituting zero
prog.cob:25: warning: source is non-numeric - substituting zero
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_move.at:635: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_move.at:635"
( $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 paragraph 'MAIN-1':
prog.cob:11: error: MOVE of figurative constant SPACE to numeric item used
prog.cob:12: warning: MOVE of figurative constant to numeric item is archaic in GnuCOBOL
prog.cob:13: warning: MOVE of figurative constant to numeric item is archaic in GnuCOBOL
prog.cob:14: warning: MOVE of figurative constant QUOTE to numeric item is obsolete in GnuCOBOL
prog.cob:14: warning: MOVE of figurative constant to numeric item is archaic in GnuCOBOL
prog.cob:15: warning: numeric value is expected
prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
prog.cob:17: warning: numeric value is expected
prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
prog.cob:19: error: invalid SET statement
prog.cob:20: error: invalid SET statement
prog.cob:23: warning: MOVE of figurative constant to numeric item is archaic in GnuCOBOL
prog.cob:24: warning: MOVE of figurative constant QUOTE to numeric item is obsolete in GnuCOBOL
prog.cob:24: warning: MOVE of figurative constant to numeric item is archaic in GnuCOBOL
prog.cob:25: warning: numeric value is expected
prog.cob:7: note: 'BIGFLT' defined here as USAGE FLOAT
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_move.at:635"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_370
#AT_START_371
at_fn_group_banner 371 'syn_multiply.at:28' \
  "Category check of Format 1" "                     " 2
at_xfail=no
(
  $as_echo "371. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-X           PIC X.
       01 X-9           PIC 9.
       01 X-09          PIC 09.
       PROCEDURE        DIVISION.
           MULTIPLY 123  BY 456
           MULTIPLY "a"  BY "b"
           MULTIPLY 123  BY "b"
           MULTIPLY X-X  BY X-9
           MULTIPLY X-9  BY X-09
           MULTIPLY X-09 BY X-X
           MULTIPLY 123  BY X-X
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_multiply.at:50: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_multiply.at:50"
( $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:11: error: 'literal \"a\"' is not a numeric value
prog.cob:12: error: 'literal \"b\"' is not a numeric name
prog.cob:13: error: 'X-X' is not a numeric value
prog.cob:14: error: 'X-09' is not a numeric name
prog.cob:15: error: 'X-09' is not a numeric value
prog.cob:16: error: 'X-X' is not a numeric name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_multiply.at:50"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_371
#AT_START_372
at_fn_group_banner 372 'syn_multiply.at:64' \
  "Category check of Format 2" "                     " 2
at_xfail=no
(
  $as_echo "372. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-X           PIC X.
       01 X-9           PIC 9.
       01 X-09          PIC 09.
       PROCEDURE        DIVISION.
           MULTIPLY 123  BY 456  GIVING 789
           MULTIPLY "a"  BY "b"  GIVING "c"
           MULTIPLY 123  BY 456  GIVING "c"
           MULTIPLY X-X  BY X-9  GIVING X-09
           MULTIPLY X-9  BY X-09 GIVING X-X
           MULTIPLY 123  BY 456  GIVING X-X
           MULTIPLY X-09 BY X-X  GIVING X-9
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_multiply.at:86: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_multiply.at:86"
( $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 a numeric or numeric-edited name
prog.cob:11: error: 'literal \"a\"' is not a numeric value
prog.cob:11: error: 'literal \"b\"' is not a numeric value
prog.cob:12: error: 'literal \"c\"' is not a numeric or numeric-edited name
prog.cob:13: error: 'X-X' is not a numeric value
prog.cob:14: error: 'X-09' is not a numeric value
prog.cob:15: error: 'X-X' is not a numeric or numeric-edited name
prog.cob:16: error: 'X-09' is not a numeric value
prog.cob:16: error: 'X-X' is not a numeric value
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_multiply.at:86"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_372
#AT_START_373
at_fn_group_banner 373 'syn_multiply.at:102' \
  "Category check of literals" "                     " 2
at_xfail=no
(
  $as_echo "373. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9.
       PROCEDURE        DIVISION.
           MULTIPLY 123  BY X
           END-MULTIPLY.
           MULTIPLY "a"  BY X
           END-MULTIPLY.
           MULTIPLY 123  BY 456 GIVING X
           END-MULTIPLY.
           MULTIPLY "a"  BY "b" GIVING X
           END-MULTIPLY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_multiply.at:123: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_multiply.at:123"
( $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: 'literal \"a\"' is not a numeric value
prog.cob:14: error: 'literal \"a\"' is not a numeric value
prog.cob:14: error: 'literal \"b\"' is not a numeric value
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_multiply.at:123"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_373
#AT_START_374
at_fn_group_banner 374 'syn_screen.at:24' \
  "Flexible ACCEPT/DISPLAY syntax" "                 " 2
at_xfail=no
(
  $as_echo "374. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           SYSERR IS ERR-STREAM
           .
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  a-field      PIC XXX.

       SCREEN           SECTION.
       01  scr.
           03 VALUE "blah" LINE 5 COL 5.

       PROCEDURE        DIVISION.
           *> Valid statements
           DISPLAY "123" "456" "789" NO ADVANCING
           DISPLAY "foo" COL 1 HIGHLIGHT AT LINE 1 WITH UNDERLINE,
               "bar", "foo"
           DISPLAY "a" UPON CRT, "b" LINE 3 COL 3, "c" UPON CRT-UNDER
           DISPLAY scr, scr

           ACCEPT a-field LINE 5 SIZE 3 AT COL 1 WITH AUTO
               REVERSE-VIDEO, BLINK

           *> invalid statements
           DISPLAY scr WITH NO ADVANCING
           DISPLAY scr, scr LINE 2 COL 2 UPON ERR-STREAM
           DISPLAY "foo" LINE 2 COL 2, scr
           DISPLAY "foo" LINE 2 COL 2, "bar" UPON ERR-STREAM
           DISPLAY "foo" LINE 1 UPON ERR-STREAM
           DISPLAY scr, "foo"
           .
       END PROGRAM prog.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog-2.

       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           CONSOLE IS CRT
           .
       PROCEDURE DIVISION.
           DISPLAY "foo" NO ADVANCING
           .
       END PROGRAM prog-2.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:79: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.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:31: error: cannot specify NO ADVANCING in screen DISPLAY
prog.cob:31: error: screens may only be displayed on CRT
prog.cob:32: error: cannot mix screens and fields in the same DISPLAY statement
prog.cob:33: error: ambiguous DISPLAY; put items to display on device in separate DISPLAY
prog.cob:34: error: screen clauses may only be used for DISPLAY on CRT
prog.cob:35: error: cannot mix screens and fields in the same DISPLAY statement
prog.cob:49: error: cannot specify NO ADVANCING in screen DISPLAY
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:79"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_374
#AT_START_375
at_fn_group_banner 375 'syn_screen.at:92' \
  "Duplicate ACCEPT/DISPLAY clauses" "               " 2
at_xfail=no
(
  $as_echo "375. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  a-field      PIC XXX.
       PROCEDURE        DIVISION.
           DISPLAY "foo" LINE 1 COL 1 HIGHLIGHT LINE 1 HIGHLIGHT
               AT 0101 MODE IS BLOCK MODE IS BLOCK
           ACCEPT a-field LINE 1 COL 1 HIGHLIGHT LINE 1 HIGHLIGHT
               AT 0101
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:109: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:109"
( $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: duplicate LINE clause
prog.cob:8: error: duplicate HIGHLIGHT clause
prog.cob:9: error: cannot specify both AT screen-location and LINE or COLUMN
prog.cob:9: error: duplicate MODE IS BLOCK clause
prog.cob:10: error: duplicate LINE clause
prog.cob:10: error: duplicate HIGHLIGHT clause
prog.cob:11: error: cannot specify both AT screen-location and LINE or COLUMN
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_375
#AT_START_376
at_fn_group_banner 376 'syn_screen.at:121' \
  "AT clause" "                                      " 2
at_xfail=no
(
  $as_echo "376. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  curs-1      PIC 9(4) VALUE 00000000001111.
       01  curs-2.
           03  linee   PIC 999.
           03  coll    PIC 999.
       01  posc        CONSTANT 0101.

       01  curs-3      PIC 99.
       01  curs-4      PIC 9(8) VALUE 0101.
       01  curs-5      PIC X(4).

       PROCEDURE       DIVISION.
           *> Valid AT clauses
           DISPLAY "a" AT curs-1
           DISPLAY "a" AT curs-2
           DISPLAY "a" AT posc

           *> Invalid AT clauses
           DISPLAY "a" AT curs-3
           DISPLAY "a" AT curs-4
           DISPLAY "a" AT curs-5
           DISPLAY "a" AT 101
           DISPLAY "a" AT ZERO
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:155: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:155"
( $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:24: error: value in AT clause must have 4 or 6 digits
prog.cob:25: error: value in AT clause must have 4 or 6 digits
prog.cob:26: error: value in AT clause is not numeric
prog.cob:27: error: value in AT clause must have 4 or 6 digits
prog.cob:29: error: cannot specify figurative constant ZERO in AT clause
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_376
#AT_START_377
at_fn_group_banner 377 'syn_screen.at:165' \
  "ACCEPT/DISPLAY extensions detection" "            " 2
at_xfail=no
(
  $as_echo "377. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  zero-const CONSTANT 0.
       01  x PIC 99.

       SCREEN SECTION.
       01  scr.
           03  y PIC 99 FROM x LINE 3 COLUMN 5.

       PROCEDURE DIVISION.
           DISPLAY "hello" AT 0000
           DISPLAY "world" LINE ZERO COLUMN zero-const
           ACCEPT x WITH TIME-OUT 5

           DISPLAY scr WITH UNDERLINE
           ACCEPT scr WITH HIGHLIGHT

           DISPLAY scr, scr

           *> Valid statements
           DISPLAY scr UPON CRT-UNDER
           ACCEPT scr AT LINE 4 COLUMN 4
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:197: \$COMPILE_ONLY -faccept-display-extensions=error prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -faccept-display-extensions=error prog.cob" "syn_screen.at:197"
( $at_check_trace; $COMPILE_ONLY -faccept-display-extensions=error prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:15: error: AT clause used
prog.cob:15: error: non-standard DISPLAY used
prog.cob:16: error: LINE 0 used
prog.cob:16: error: COLUMN 0 used
prog.cob:16: error: non-standard DISPLAY used
prog.cob:17: error: non-standard ACCEPT used
prog.cob:19: error: non-standard DISPLAY used
prog.cob:20: error: non-standard ACCEPT used
prog.cob:22: error: non-standard DISPLAY used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_377
#AT_START_378
at_fn_group_banner 378 'syn_screen.at:211' \
  "FROM clause" "                                    " 2
at_xfail=no
(
  $as_echo "378. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       SCREEN  SECTION.
       01 SG.
          05 SI1   LINE 1 COL 1 PIC X FROM X.
          05 SI2   LINE 2 COL 1 PIC X FROM SPACE.
          05 SI2-2 LINE 2 COL 5 PIC X(03) FROM ALL SPACES.
          05 SI3   LINE 3 COL 1 PIC 9 FROM ZERO.
          05 SI3-2 LINE 3 COL 5 PIC X(03) FROM ALL ZEROES.
       PROCEDURE        DIVISION.
           DISPLAY SG END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:232: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:232"
( $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/syn_screen.at:232"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_378
#AT_START_379
at_fn_group_banner 379 'syn_screen.at:237' \
  "Incorrect USAGE clause" "                         " 2
at_xfail=no
(
  $as_echo "379. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID. prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       SCREEN  SECTION.
        01 SG.
           05 SI1    LINE 1 COL 1 PIC X FROM X.
           05 SI2    LINE 2 COL 1 PIC X FROM SPACE.
           05 SI2-2  LINE 2 COL 5 PIC X(03) FROM ALL SPACES.
           05 BAD1   LINE 4 COL 1 PIC 9 BINARY FROM ZERO.
           05 FILLER LINE 4 COL 10 PIC 9 COMP-5 FROM ZERO.
           05 BAD3   LINE 4 COL 5 COMP-2 FROM ALL ZEROES.
       PROCEDURE        DIVISION.
           DISPLAY SG END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:259: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_screen.at:259"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:12: error: SCREEN SECTION item 'BAD1' should be USAGE DISPLAY
prog.cob:13: error: SCREEN SECTION item 'FILLER' should be USAGE DISPLAY
prog.cob:14: error: SCREEN SECTION item 'BAD3' should be USAGE DISPLAY
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:259"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_379
#AT_START_380
at_fn_group_banner 380 'syn_screen.at:268' \
  "SCREEN SECTION clause numbers" "                  " 2
at_xfail=no
(
  $as_echo "380. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       SCREEN           SECTION.
       *> Valid numbers
       01  v1           VALUE "-" LINE 1.
       01  v2           VALUE "-" LINE + 1.
       01  v3           VALUE "-" LINE - 1.
       01  v4           VALUE "-" LINE 0.

       *> invalid numbers
       01  i1           VALUE "-" LINE +1.
       01  i2           VALUE "-" LINE -1.
       01  i3           VALUE "-" LINE 1.0.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:290: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:290"
( $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: unsigned integer value expected
prog.cob:14: error: unsigned integer value expected
prog.cob:15: error: unsigned integer value expected
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:290"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_380
#AT_START_381
at_fn_group_banner 381 'syn_screen.at:300' \
  "Screen clauses" "                                 " 2
at_xfail=no
(
  $as_echo "381. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  foo          PIC X.
       SCREEN           SECTION.
       01  scr.
           03  a        PIC X TO foo FULL, LEFTLINE, OVERLINE, REQUIRED,
                        GRID.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:317: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:317"
( $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: warning: LEFTLINE is not implemented
prog.cob:9: warning: OVERLINE is not implemented
prog.cob:10: warning: GRID is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_screen.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_381
#AT_START_382
at_fn_group_banner 382 'syn_screen.at:326' \
  "ACCEPT ON EXCEPTION/ESCAPE" "                     " 2
at_xfail=no
(
  $as_echo "382. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  foo          PIC X.
       PROCEDURE        DIVISION.
           ACCEPT foo
               ON EXCEPTION
                   CONTINUE
               NOT EXCEPTION
                   CONTINUE
           END-ACCEPT

           ACCEPT foo
               ESCAPE
                   CONTINUE
               NOT ON ESCAPE
                   CONTINUE
           END-ACCEPT
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:352: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:352"
( $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/syn_screen.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_382
#AT_START_383
at_fn_group_banner 383 'syn_screen.at:356' \
  "Referencing 88-level" "                           " 2
at_xfail=no
(
  $as_echo "383. $at_setup_line: testing $at_desc ..."
  $at_traceon

# see bug #178


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  flag PIC X.
           88  blah VALUE "N".

       SCREEN           SECTION.
       01  scr.
           03  PIC X COLUMN blah TO blah FROM blah.

       PROCEDURE        DIVISION.
           ACCEPT scr
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:378: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:378"
( $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:12: error: condition-name not allowed here: 'blah'
prog.cob:12: error: condition-name not allowed here: 'blah'
prog.cob:12: error: condition-name not allowed here: 'blah'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:378"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_383
#AT_START_384
at_fn_group_banner 384 'syn_screen.at:387' \
  "Conflicting screen clauses" "                     " 2
at_xfail=no
(
  $as_echo "384. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  x            PIC 999.

       SCREEN           SECTION.
       01  scr.
           03  VALUE "foo" HIGHLIGHT, LOWLIGHT;
                           ERASE EOL, ERASE EOS;
                           BLANK LINE, BLANK SCREEN.

       PROCEDURE        DIVISION.
           DISPLAY "blah" WITH HIGHLIGHT, LOWLIGHT;
                               ERASE EOL, ERASE EOS;
                               BLANK LINE, BLANK SCREEN;
                               SCROLL UP, SCROLL DOWN;

           ACCEPT x WITH AUTO, TAB; SCROLL UP, SCROLL DOWN;
               UPDATE, NO UPDATE

           SET scr ATTRIBUTE HIGHLIGHT ON, LOWLIGHT OFF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:417: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:417"
( $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: cannot specify both LOWLIGHT and HIGHLIGHT
prog.cob:12: error: cannot specify both ERASE EOS and ERASE EOL
prog.cob:13: error: cannot specify both BLANK SCREEN and BLANK LINE
prog.cob:16: error: cannot specify both LOWLIGHT and HIGHLIGHT
prog.cob:17: error: cannot specify both ERASE EOS and ERASE EOL
prog.cob:18: error: cannot specify both BLANK SCREEN and BLANK LINE
prog.cob:21: error: cannot specify both SCROLL DOWN and SCROLL UP
prog.cob:21: error: cannot specify both TAB and AUTO
prog.cob:22: error: cannot specify both SCROLL DOWN and SCROLL UP
prog.cob:22: error: cannot specify both NO UPDATE and UPDATE
prog.cob:24: error: cannot specify both HIGHLIGHT and LOWLIGHT
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:417"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_screen.at:431: \$COMPILE_ONLY -frelax-syntax-checks prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -frelax-syntax-checks prog.cob" "syn_screen.at:431"
( $at_check_trace; $COMPILE_ONLY -frelax-syntax-checks 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: cannot specify both LOWLIGHT and HIGHLIGHT; LOWLIGHT is ignored
prog.cob:12: warning: cannot specify both ERASE EOS and ERASE EOL; ERASE EOS is ignored
prog.cob:13: warning: cannot specify both BLANK SCREEN and BLANK LINE; BLANK SCREEN is ignored
prog.cob:16: warning: cannot specify both LOWLIGHT and HIGHLIGHT; LOWLIGHT is ignored
prog.cob:17: warning: cannot specify both ERASE EOS and ERASE EOL; ERASE EOS is ignored
prog.cob:18: warning: cannot specify both BLANK SCREEN and BLANK LINE; BLANK SCREEN is ignored
prog.cob:21: warning: cannot specify both SCROLL DOWN and SCROLL UP; SCROLL DOWN is ignored
prog.cob:21: warning: cannot specify both TAB and AUTO; TAB is ignored
prog.cob:22: warning: cannot specify both SCROLL DOWN and SCROLL UP; SCROLL DOWN is ignored
prog.cob:22: warning: cannot specify both NO UPDATE and UPDATE; NO UPDATE is ignored
prog.cob:24: error: cannot specify both HIGHLIGHT and LOWLIGHT
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:431"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_384
#AT_START_385
at_fn_group_banner 385 'syn_screen.at:448' \
  "Redundant screen clauses" "                       " 2
at_xfail=no
(
  $as_echo "385. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  x            PIC 999.

       SCREEN           SECTION.
       01  scr.
           03  HIGHLIGHT FULL.
               05  HIGHLIGHT FULL.
                   07  FULL FULL VALUE "foo".

       PROCEDURE        DIVISION.
           DISPLAY "hello" WITH BACKGROUND-COLOR 2, BACKGROUND-COLOR 2
           ACCEPT x WITH HIGHLIGHT, HIGHLIGHT, UPDATE, DEFAULT
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:471: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:471"
( $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: duplicate FULL clause
prog.cob:16: error: duplicate BACKGROUND-COLOR clause
prog.cob:17: error: duplicate HIGHLIGHT clause
prog.cob:17: error: duplicate UPDATE clause
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:471"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_385
#AT_START_386
at_fn_group_banner 386 'syn_screen.at:481' \
  "Screen item OCCURS w-/wo relative LINE/COL" "     " 2
at_xfail=no
(
  $as_echo "386. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       SCREEN           SECTION.
       01 x-scr.
          03 x PIC X VALUE "a" OCCURS 10.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       SCREEN           SECTION.
       01 x-scr.
          03 x PIC X VALUE "a" OCCURS 10 COL  10.
       01 y-scr.
          03 y PIC X VALUE "a" OCCURS 10 LINE 10.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       DATA             DIVISION.
       SCREEN           SECTION.
       01 x-scr.
          03 x PIC X VALUE "a" OCCURS 10 COL  + 10.
       01 y-scr.
          03 y PIC X VALUE "a" OCCURS 10 LINE - 10.
       01 a-scr.
          03 a PIC X VALUE "a" OCCURS 10 COL  PLUS 10.
       01 b-scr.
          03 b PIC X VALUE "a" OCCURS 10 LINE MINUS 10.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:519: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:519"
( $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: OCCURS screen items is not implemented
prog.cob:7: error: relative LINE/COLUMN clause required with OCCURS
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:519"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_screen.at:524: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_screen.at:524"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:7: warning: OCCURS screen items is not implemented
prog2.cob:7: error: relative LINE/COLUMN clause required with OCCURS
prog2.cob:9: warning: OCCURS screen items is not implemented
prog2.cob:9: error: relative LINE/COLUMN clause required with OCCURS
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:524"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_screen.at:531: \$COMPILE_ONLY prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog3.cob" "syn_screen.at:531"
( $at_check_trace; $COMPILE_ONLY prog3.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog3.cob:7: warning: OCCURS screen items is not implemented
prog3.cob:9: warning: OCCURS screen items is not implemented
prog3.cob:11: warning: OCCURS screen items is not implemented
prog3.cob:13: warning: OCCURS screen items is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_screen.at:531"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_386
#AT_START_387
at_fn_group_banner 387 'syn_screen.at:541' \
  "VALUE clause missing" "                           " 2
at_xfail=no
(
  $as_echo "387. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       SCREEN  SECTION.
       01 SG.
          05 LINE 21 COL 1 VALUE "TESTING".
          05 " IMPLICIT VALUE " HIGHLIGHT.
       PROCEDURE        DIVISION.
           DISPLAY SG END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:558: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:558"
( $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: syntax error, unexpected Literal
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_387
#AT_START_388
at_fn_group_banner 388 'syn_screen.at:565' \
  "FULL on numeric item" "                           " 2
at_xfail=no
(
  $as_echo "388. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  num PIC 999.

       SCREEN SECTION.
       01  scr.
           03  full-pointless PIC 999 TO num FULL.
           03  full-useful PIC ZZZ TO num FULL.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:582: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:582"
( $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: warning: FULL has no effect on numeric items; you may want REQUIRED or PIC Z
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_screen.at:582"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_388
#AT_START_389
at_fn_group_banner 389 'syn_screen.at:589' \
  "Compiler-specific SCREEN SECTION clause rules" "  " 2
at_xfail=no
(
  $as_echo "389. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC X.
       01  num PIC 9.

       SCREEN SECTION.
       01  scr.
           03  no-clauses.
           03  no-required-clauses BACKGROUND-COLOR 1.
           03  only-line LINE 1.
           03  numeric-pic-and-value PIC 999 VALUE 100.
           03  only-pic PIC 9.
           03  from-to-using-without-pic FROM x.
           03  auto-without-from-to-using PIC 9 AUTO.
           03  full-without-to-using PIC X FROM x FULL.
           03  full-and-justified PIC X USING x, FULL, JUST.
           03  secure-with-from PIC X FROM x SECURE.
           03  secure-justified-no-clauses VALUE "Hello" SECURE, JUST.
           03  blank-when-zero-without-pic FROM num, BLANK ZERO.
           03  justified-without-pic FROM x, JUST.
           03  sign-no-clauses PIC S9, SIGN LEADING SEPARATE.
           03  figurative-constant-value VALUE SPACES.
           03  only-erase ERASE EOL.
           03  only-blank BLANK SCREEN.
           03  only-bell BELL.
           03  numeric-value-no-pic VALUE 1.

       01 always-ok-scr.
           03  my-group LINE 1, COL 1, FULL.
               05  PIC X FROM "x" TO x.
               05  PIC Z USING num.
               05  VALUE "Hello, world!".
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:630: \$COMPILE_ONLY -fscreen-section-rules=std prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=std prog.cob" "syn_screen.at:630"
( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=std prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:12: error: 'no-clauses' needs a PIC, FROM, TO, USING, VALUE, BELL, BLANK or ERASE clause
prog.cob:13: error: 'no-required-clauses' needs a PIC, FROM, TO, USING, VALUE, BELL, BLANK or ERASE clause
prog.cob:14: error: 'only-line' needs a PIC, FROM, TO, USING, VALUE, BELL, BLANK or ERASE clause
prog.cob:16: error: 'only-pic' cannot have PIC without FROM, TO, USING or numeric VALUE
prog.cob:17: warning: 'from-to-using-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:18: error: 'auto-without-from-to-using' cannot have PIC without FROM, TO, USING or numeric VALUE
prog.cob:20: error: cannot specify both FULL and JUSTIFIED
prog.cob:23: warning: 'blank-when-zero-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:24: warning: 'justified-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:25: error: 'sign-no-clauses' cannot have PIC without FROM, TO, USING or numeric VALUE
prog.cob:26: error: VALUE may not contain a figurative constant
prog.cob:30: warning: 'numeric-value-no-pic' has numeric VALUE without PIC; PIC will be implied
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:630"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_screen.at:645: \$COMPILE_ONLY -fscreen-section-rules=acu prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=acu prog.cob" "syn_screen.at:645"
( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=acu prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:15: error: cannot specify both PIC and VALUE
prog.cob:15: error: cannot have PIC without FROM, TO or USING
prog.cob:15: error: VALUE item may not be numeric
prog.cob:16: error: cannot have PIC without FROM, TO or USING
prog.cob:17: warning: 'from-to-using-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:18: error: cannot have PIC without FROM, TO or USING
prog.cob:22: error: cannot have JUSTIFIED without PIC
prog.cob:23: warning: 'blank-when-zero-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:23: error: cannot have BLANK WHEN ZERO without PIC
prog.cob:24: warning: 'justified-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:24: error: cannot have JUSTIFIED without PIC
prog.cob:25: error: cannot have PIC without FROM, TO or USING
prog.cob:30: error: VALUE item may not be numeric
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:645"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_screen.at:661: \$COMPILE_ONLY -fscreen-section-rules=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=mf prog.cob" "syn_screen.at:661"
( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=mf prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:12: error: 'no-clauses' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:13: error: 'no-required-clauses' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:15: error: cannot specify both PIC and VALUE
prog.cob:15: error: cannot have PIC without FROM, TO or USING
prog.cob:15: error: VALUE item may not be numeric
prog.cob:16: error: cannot have PIC without FROM, TO or USING
prog.cob:17: error: 'from-to-using-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:17: warning: 'from-to-using-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:18: error: cannot have PIC without FROM, TO or USING
prog.cob:18: error: cannot use AUTO, FULL, PROMPT, REQUIRED or SECURE on elementary item without TO or USING
prog.cob:19: error: cannot use AUTO, FULL, PROMPT, REQUIRED or SECURE on elementary item without TO or USING
prog.cob:21: error: cannot use AUTO, FULL, PROMPT, REQUIRED or SECURE on elementary item without TO or USING
prog.cob:22: error: cannot use AUTO, FULL, PROMPT, REQUIRED or SECURE on elementary item without TO or USING
prog.cob:22: error: cannot use BLANK WHEN ZERO, JUSTIFIED, OCCURS or SIGN on item without FROM, TO or USING
prog.cob:23: error: 'blank-when-zero-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:23: warning: 'blank-when-zero-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:24: error: 'justified-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:24: warning: 'justified-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:25: error: cannot have PIC without FROM, TO or USING
prog.cob:25: error: cannot use BLANK WHEN ZERO, JUSTIFIED, OCCURS or SIGN on item without FROM, TO or USING
prog.cob:26: error: VALUE may not contain a figurative constant
prog.cob:27: error: 'only-erase' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:30: error: VALUE item may not be numeric
prog.cob:36: error: cannot use AUTO, FULL, PROMPT, REQUIRED or SECURE on elementary item without TO or USING
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:661"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_screen.at:688: \$COMPILE_ONLY -fscreen-section-rules=rm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=rm prog.cob" "syn_screen.at:688"
( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=rm prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:15: error: cannot specify both PIC and VALUE
prog.cob:15: error: cannot have PIC without FROM, TO or USING
prog.cob:15: error: VALUE item may not be numeric
prog.cob:16: error: cannot have PIC without FROM, TO or USING
prog.cob:17: error: cannot have FROM, TO or USING without PIC
prog.cob:18: error: cannot have PIC without FROM, TO or USING
prog.cob:22: error: cannot use AUTO, FULL, REQUIRED or SECURE on elementary item without FROM, TO or USING
prog.cob:22: error: cannot use BLANK WHEN ZERO, JUSTIFIED or SIGN without FROM, TO or USING
prog.cob:23: error: cannot have FROM, TO or USING without PIC
prog.cob:23: error: cannot use BLANK WHEN ZERO, JUSTIFIED or SIGN without FROM, TO or USING
prog.cob:24: error: cannot have FROM, TO or USING without PIC
prog.cob:24: error: cannot use BLANK WHEN ZERO, JUSTIFIED or SIGN without FROM, TO or USING
prog.cob:25: error: cannot have PIC without FROM, TO or USING
prog.cob:30: error: VALUE item may not be numeric
prog.cob:36: error: cannot use AUTO, FULL, REQUIRED or SECURE on elementary item without FROM, TO or USING
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:688"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_screen.at:706: \$COMPILE_ONLY -fscreen-section-rules=xopen prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=xopen prog.cob" "syn_screen.at:706"
( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=xopen prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:12: error: 'no-clauses' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:13: error: 'no-required-clauses' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:15: error: cannot specify both PIC and VALUE
prog.cob:15: error: cannot have PIC without FROM, TO or USING
prog.cob:15: error: VALUE item may not be numeric
prog.cob:16: error: cannot have PIC without FROM, TO or USING
prog.cob:17: error: 'from-to-using-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:17: error: cannot have FROM, TO or USING without PIC
prog.cob:18: error: cannot have PIC without FROM, TO or USING
prog.cob:18: error: cannot have AUTO without FROM, TO or USING
prog.cob:19: error: cannot use FULL or REQUIRED on item without TO or USING
prog.cob:20: error: cannot specify both FULL and JUSTIFIED
prog.cob:21: error: SECURE can be used with TO only
prog.cob:22: error: SECURE must be used with TO
prog.cob:23: error: 'blank-when-zero-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:23: error: cannot have FROM, TO or USING without PIC
prog.cob:24: error: 'justified-without-pic' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:24: error: cannot have FROM, TO or USING without PIC
prog.cob:25: error: cannot have PIC without FROM, TO or USING
prog.cob:27: error: 'only-erase' needs a PIC, COL, LINE, VALUE, BELL or BLANK clause
prog.cob:30: error: VALUE item may not be numeric
prog.cob:36: error: cannot use FULL or REQUIRED on item without TO or USING
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:706"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/syn_screen.at:731: \$COMPILE_ONLY -fscreen-section-rules=gc prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fscreen-section-rules=gc prog.cob" "syn_screen.at:731"
( $at_check_trace; $COMPILE_ONLY -fscreen-section-rules=gc 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: 'no-clauses' does nothing
prog.cob:13: warning: 'no-required-clauses' does nothing
prog.cob:15: warning: 'numeric-pic-and-value' has numeric VALUE without PIC; PIC will be implied
prog.cob:16: warning: 'only-pic' does nothing
prog.cob:17: warning: 'from-to-using-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:18: warning: 'auto-without-from-to-using' does nothing
prog.cob:23: warning: 'blank-when-zero-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:24: warning: 'justified-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:25: warning: 'sign-no-clauses' does nothing
prog.cob:30: warning: 'numeric-value-no-pic' has numeric VALUE without PIC; PIC will be implied
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_screen.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_389
#AT_START_390
at_fn_group_banner 390 'syn_screen.at:747' \
  "MS-COBOL position-spec" "                         " 2
at_xfail=no
(
  $as_echo "390. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: WITH clause including a WITH COLUMN (both separate (working)
#        and combined - error - must be added

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 FIELD-A  PIC X(06) VALUE "ms-cob".
       01 A        PIC X.
       PROCEDURE        DIVISION.
           DISPLAY ERASE
           MOVE 10 TO LIN. MOVE 15 TO COL.
           DISPLAY (LIN , COL - 3) FIELD-A.
           DISPLAY (LIN + 1 , COL) FIELD-A.
           ACCEPT  (   , 10) A.
           DISPLAY (08 , 12) FIELD-A.
           ACCEPT  (   , 08) A WITH NO-ECHO.
           DISPLAY FIELD-A AT LINE 06  COLUMN 12.
           ACCEPT  A       AT COLUMN 8.
           SUBTRACT 2 FROM LIN.
           SUBTRACT 3 FROM COL.
           DISPLAY FIELD-A AT LINE LIN COLUMN COL.
           ACCEPT  (   , 10) A.
           DISPLAY ( 1 , 1 ) ERASE.
           DISPLAY ( 2 , 1 ) "Field value : ", FIELD-A.
           DISPLAY ( 3 , 1 ) A " --> A value"
           DISPLAY ( 5 , 1 ) "Press ENTER to exit".
           ACCEPT (11 , 1 ) A.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:782: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:782"
( $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: 'LIN' is not defined
prog.cob:10: error: syntax error, unexpected COL
prog.cob:11: error: syntax error, unexpected COL, expecting Literal or ) or Identifier
prog.cob:12: error: syntax error, unexpected COL, expecting Literal or ) or Identifier
prog.cob:19: error: syntax error, unexpected COL
prog.cob:20: error: syntax error, unexpected COL, expecting Literal or Identifier or ZERO
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:782"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_screen.at:790: \$COMPILE_ONLY -fregister=LIN,COL prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fregister=LIN,COL prog.cob" "syn_screen.at:790"
( $at_check_trace; $COMPILE_ONLY -fregister=LIN,COL 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/syn_screen.at:790"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_390
#AT_START_391
at_fn_group_banner 391 'syn_screen.at:795' \
  "Screen with invalid FROM clause" "                " 2
at_xfail=no
(
  $as_echo "391. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  some-const CONSTANT AS '123'.

       SCREEN SECTION.
       01  bild.
           05 from-constant-with-size   FROM some-const.
           05 from-constant-without-pic FROM ZERO.
           05 LINE 24 COL 1 FROM message.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_screen.at:813: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_screen.at:813"
( $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: syntax error, unexpected MESSAGE
prog.cob:11: warning: 'from-constant-with-size' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:12: warning: 'from-constant-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:12: error: PICTURE clause required for 'from-constant-without-pic'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:813"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_screen.at:819: \$COMPILE_ONLY -fnot-reserved=MESSAGE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-reserved=MESSAGE prog.cob" "syn_screen.at:819"
( $at_check_trace; $COMPILE_ONLY -fnot-reserved=MESSAGE 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: 'message' is not defined, but is a reserved word in another dialect
prog.cob:11: warning: 'from-constant-with-size' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:12: warning: 'from-constant-without-pic' has FROM, TO or USING without PIC; PIC will be implied
prog.cob:12: error: PICTURE clause required for 'from-constant-without-pic'
prog.cob:13: warning: 'FILLER' has FROM, TO or USING without PIC; PIC will be implied
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_screen.at:819"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_391
#AT_START_392
at_fn_group_banner 392 'syn_set.at:24' \
  "SET ADDRESS OF item" "                            " 2
at_xfail=no
(
  $as_echo "392. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.

       LINKAGE          SECTION.
       01 Y             BASED.
          03  Z         PIC X.

       PROCEDURE        DIVISION.
           SET ADDRESS OF X TO NULL.
           SET ADDRESS OF Z TO NULL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_set.at:45: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_set.at:45"
( $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:14: error: cannot change address of 'X', which is not BASED or a LINKAGE item
prog.cob:15: error: cannot change address of 'Z', which is not level 1 or 77
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_set.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_392
#AT_START_393
at_fn_group_banner 393 'syn_set.at:53' \
  "SET item TO 88-level" "                           " 2
at_xfail=no
(
  $as_echo "393. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9.
          88 x-wrong-init   value space.
       01 Y             PIC X.
          88 y-wrong-init   value low-value.

       PROCEDURE        DIVISION.
           SET x-wrong-init  TO TRUE.
           SET y-wrong-init  TO TRUE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_set.at:73: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_set.at:73"
( $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: literal type does not match numeric data type
prog.cob:13: error: invalid SET statement
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_set.at:73"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_393
#AT_START_394
at_fn_group_banner 394 'syn_functions.at:22' \
  "ANY LENGTH / NUMERIC as function RETURNING item" "" 2
at_xfail=no
(
  $as_echo "394. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       FUNCTION-ID.   func.

       DATA           DIVISION.
       LINKAGE        SECTION.
       01  any-len    PIC X ANY LENGTH.

       PROCEDURE      DIVISION RETURNING any-len.
           CONTINUE
           .
       END FUNCTION   func.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:39: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:39"
( $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: function RETURNING item may not be ANY LENGTH
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       FUNCTION-ID.   func.

       DATA           DIVISION.
       LINKAGE        SECTION.
       01  any-len    PIC 9 ANY NUMERIC.

       PROCEDURE      DIVISION RETURNING any-len.
           CONTINUE
           .
       END FUNCTION   func.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:57: \$COMPILE_ONLY prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog2.cob" "syn_functions.at:57"
( $at_check_trace; $COMPILE_ONLY prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:9: error: function RETURNING item may not be ANY LENGTH
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:57"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_394
#AT_START_395
at_fn_group_banner 395 'syn_functions.at:64' \
  "REPOSITORY INTRINSIC phrase" "                    " 2
at_xfail=no
(
  $as_echo "395. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           FUNCTION pi e intrinsic
           .
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY PI.
           DISPLAY E.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:83: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:83"
( $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/syn_functions.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_395
#AT_START_396
at_fn_group_banner 396 'syn_functions.at:87' \
  "REPOSITORY FUNCTION phrase" "                     " 2
at_xfail=no
(
  $as_echo "396. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       FUNCTION-ID. x AS "y".

       DATA DIVISION.
       LINKAGE SECTION.
       01  ret PIC 9(4).

       PROCEDURE DIVISION RETURNING ret.
           MOVE 100 TO ret
           .
       END FUNCTION x.

       IDENTIFICATION DIVISION.
       FUNCTION-ID. z.

       DATA DIVISION.
       LINKAGE SECTION.
       01  ret PIC 9(5).

       PROCEDURE DIVISION RETURNING ret.
           MOVE 1 TO ret
           .
       END FUNCTION z.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           FUNCTION y AS "y"
           FUNCTION z
           .
       PROCEDURE DIVISION.
           DISPLAY FUNCTION y
           DISPLAY FUNCTION z
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:131: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:131"
( $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/syn_functions.at:131"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_396
#AT_START_397
at_fn_group_banner 397 'syn_functions.at:135' \
  "Redundant REPOSITORY entries" "                   " 2
at_xfail=no
(
  $as_echo "397. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       PROGRAM-ID. prog.
       END PROGRAM prog.

       IDENTIFICATION DIVISION.
       FUNCTION-ID. alpha.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           ALPHABET gamma IS ASCII
           .
       REPOSITORY.
           FUNCTION alpha
           PROGRAM prog
           PROGRAM prog
           PROGRAM prog AS "alpha"
           FUNCTION prog
           FUNCTION gamma
           .
       END FUNCTION alpha.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:161: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:161"
( $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:14: warning: prototype has same name as current function and will be ignored
prog.cob:16: warning: duplicate REPOSITORY entry for 'prog'
prog.cob:17: error: duplicate REPOSITORY entries for 'prog' do not match
prog.cob:18: error: duplicate REPOSITORY entries for 'prog' do not match
prog.cob:19: warning: no definition/prototype seen for FUNCTION 'gamma'
prog.cob:19: error: redefinition of 'gamma'
prog.cob:11: note: 'gamma' previously defined here
prog.cob:21: error: FUNCTION 'alpha' has no PROCEDURE DIVISION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:161"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_397
#AT_START_398
at_fn_group_banner 398 'syn_functions.at:174' \
  "Missing prototype/definition" "                   " 2
at_xfail=no
(
  $as_echo "398. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       FUNCTION-ID. blah.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           FUNCTION x
           PROGRAM y
           .
       DATA DIVISION.
       LINKAGE SECTION.
       01  ret PIC X.

       PROCEDURE DIVISION RETURNING ret.
           MOVE FUNCTION x TO ret
           MOVE FUNCTION x TO ret
           .
       END FUNCTION blah.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:198: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:198"
( $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: no definition/prototype seen for FUNCTION 'x'
prog.cob:9: warning: no definition/prototype seen for PROGRAM 'y'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/syn_functions.at:198"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_398
#AT_START_399
at_fn_group_banner 399 'syn_functions.at:205' \
  "Empty function" "                                 " 2
at_xfail=no
(
  $as_echo "399. $at_setup_line: testing $at_desc ..."
  $at_traceon



# Note: Test case for "Function without END FUNCTION" in syn_definition

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       FUNCTION-ID. func.

       END FUNCTION func.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC 999 VALUE 124.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:225: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:225"
( $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: FUNCTION 'func' has no PROCEDURE DIVISION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:225"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_399
#AT_START_400
at_fn_group_banner 400 'syn_functions.at:232' \
  "Function definition inside program" "             " 2
at_xfail=no
(
  $as_echo "400. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       PROCEDURE DIVISION.
           CONTINUE
           .

       IDENTIFICATION DIVISION.
       FUNCTION-ID. f.
       END FUNCTION f.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:248: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:248"
( $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: functions may not be defined within a program/function
prog.cob:11: error: FUNCTION 'f' has no PROCEDURE DIVISION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:248"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_400
#AT_START_401
at_fn_group_banner 401 'syn_functions.at:255' \
  "Intrinsic functions: dialect" "                   " 2
at_xfail=no
(
  $as_echo "401. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION ABS (1).
           DISPLAY FUNCTION TRIM (" some text here").
           DISPLAY FUNCTION SUBSTITUTE ('some text' 'some' 'nice').
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:271: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:271"
( $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/syn_functions.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_functions.at:272: \$COMPILE_ONLY -std=acu-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=acu-strict prog.cob" "syn_functions.at:272"
( $at_check_trace; $COMPILE_ONLY -std=acu-strict 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: FUNCTION 'TRIM' unknown
prog.cob:10: error: FUNCTION 'SUBSTITUTE' unknown
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:272"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_401
#AT_START_402
at_fn_group_banner 402 'syn_functions.at:280' \
  "Intrinsic functions: replaced" "                  " 2
at_xfail=no
(
  $as_echo "402. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       FUNCTION-ID. SUBSTITUTE.

       DATA DIVISION.
       LINKAGE SECTION.
       01  func-in  PIC X(15).
       01  func-sub PIC X.
       01  func-out PIC X(15).

       PROCEDURE DIVISION USING func-in, func-sub RETURNING func-out.
           MOVE func-in TO func-out
           INSPECT func-out REPLACING ALL '%' BY func-sub
           .
       END FUNCTION SUBSTITUTE.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           FUNCTION SUBSTITUTE
           .
       PROCEDURE DIVISION.
           DISPLAY FUNCTION SUBSTITUTE(" % C%O%B%O%L % ", "_")
           DISPLAY FUNCTION SUBSTITUTE(" % C%O%B%O%L % ", "-")
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:314: \$COMPILE_ONLY -fnot-intrinsic=substitute prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-intrinsic=substitute prog.cob" "syn_functions.at:314"
( $at_check_trace; $COMPILE_ONLY -fnot-intrinsic=substitute 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/syn_functions.at:314"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/syn_functions.at:315: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:315"
( $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:24: error: syntax error, unexpected ., expecting intrinsic function name or INTRINSIC
prog.cob:26: error: FUNCTION 'SUBSTITUTE' has wrong number of arguments
prog.cob:27: error: FUNCTION 'SUBSTITUTE' has wrong number of arguments
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:315"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_402
#AT_START_403
at_fn_group_banner 403 'syn_functions.at:324' \
  "Intrinsic functions: number of arguments" "       " 2
at_xfail=no
(
  $as_echo "403. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION PI.
           DISPLAY FUNCTION PI ( ).
           DISPLAY FUNCTION PI (1).
           DISPLAY FUNCTION ABS.
           DISPLAY FUNCTION ABS (1).
           DISPLAY FUNCTION ABS (1, 2).
           DISPLAY FUNCTION DAY-TO-YYYYDDD.
           DISPLAY FUNCTION DAY-TO-YYYYDDD (6000).
           DISPLAY FUNCTION DAY-TO-YYYYDDD (6000,50).
           DISPLAY FUNCTION DAY-TO-YYYYDDD (6000,50,1600).
           DISPLAY FUNCTION DAY-TO-YYYYDDD (6000,50,1600,500).
           DISPLAY FUNCTION MAX ().
           DISPLAY FUNCTION MAX (6000).
           DISPLAY FUNCTION SUBSTITUTE ('A' 'B' 'C' 'D').
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:351: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:351"
( $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: FUNCTION 'PI' has wrong number of arguments
prog.cob:11: error: FUNCTION 'ABS' has wrong number of arguments
prog.cob:13: error: FUNCTION 'ABS' has wrong number of arguments
prog.cob:14: error: FUNCTION 'DAY-TO-YYYYDDD' has wrong number of arguments
prog.cob:18: error: FUNCTION 'DAY-TO-YYYYDDD' has wrong number of arguments
prog.cob:19: error: FUNCTION 'MAX' has wrong number of arguments
prog.cob:21: error: FUNCTION 'SUBSTITUTE' has wrong number of arguments
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:351"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_403
#AT_START_404
at_fn_group_banner 404 'syn_functions.at:364' \
  "Intrinsic functions: reference modification" "    " 2
at_xfail=no
(
  $as_echo "404. $at_setup_line: testing $at_desc ..."
  $at_traceon



# the following should be checked, currently doesn't work
#AT_DATA([prog.cob], [
#       IDENTIFICATION   DIVISION.
#       PROGRAM-ID.      prog.
#       ENVIRONMENT DIVISION.
#       DATA             DIVISION.
#       WORKING-STORAGE  SECTION.
#       PROCEDURE        DIVISION.
#           DISPLAY FUNCTION CHAR (66)(1:2).
#           DISPLAY FUNCTION NUMVAL-C (123)(1:2).
#           DISPLAY FUNCTION REVERSE ("TESTME")(20:1).
#           DISPLAY FUNCTION REVERSE ("TESTME")(-1:1).
#           DISPLAY FUNCTION REVERSE ("TESTME")(1:0).
#           STOP RUN.
#])
#
#AT_CHECK([$COMPILE_ONLY prog.cob], [1], [],
#[prog.cob:8: error: FUNCTION 'PI' can not have reference modification
#prog.cob:9: error: FUNCTION 'NUMVAL-C' can not have reference modification
#prog.cob:10: error: FUNCTION 'REVERSE' has invalid reference modification
#prog.cob:11: error: FUNCTION 'REVERSE' has invalid reference modification
#prog.cob:12: error: FUNCTION 'REVERSE' has invalid reference modification
#])

# test what is in already...
cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION REVERSE ("TESTME")(-1:1).
           DISPLAY FUNCTION REVERSE ("TESTME")(1:0).
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:404: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:404"
( $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: FUNCTION 'REVERSE' has invalid reference modification
prog.cob:9: error: FUNCTION 'REVERSE' has invalid reference modification
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:404"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_404
#AT_START_405
at_fn_group_banner 405 'syn_functions.at:412' \
  "Intrinsic functions: argument type" "             " 2
at_xfail=no
(
  $as_echo "405. $at_setup_line: testing $at_desc ..."
  $at_traceon



# TODO: Add more tests

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION ABS ('1').
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:428: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:428"
( $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: FUNCTION 'ABS' has invalid argument
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:428"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_405
#AT_START_406
at_fn_group_banner 406 'syn_functions.at:435' \
  "invalid formatted date/time args" "               " 2
at_xfail=no
(
  $as_echo "406. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  format-str         PIC X(8) VALUE "YYYYMMDD".
       01  Date-Format        CONSTANT "YYYYMMDD".
       01  Time-Format        CONSTANT "hhmmss".
       01  Datetime-Format    CONSTANT "YYYYMMDDThhmmss".
       PROCEDURE        DIVISION.
      *>   Test wrong formats
           DISPLAY FUNCTION FORMATTED-DATE ( "YYYYWWWD", 1 )
           END-DISPLAY
           DISPLAY FUNCTION FORMATTED-TIME ( "HHMMSS", 1)
           END-DISPLAY
           DISPLAY FUNCTION FORMATTED-DATETIME
                ( "YYYYWWWDTHHMMSS", 1, 1)
           END-DISPLAY

      *>   Test format in variable
           DISPLAY FUNCTION FORMATTED-DATE ( format-str, 1)
           END-DISPLAY

      *>   Test incompatible formats
           DISPLAY FUNCTION FORMATTED-CURRENT-DATE (Date-Format)
           END-DISPLAY
           DISPLAY FUNCTION FORMATTED-CURRENT-DATE (Time-Format)
           END-DISPLAY

           DISPLAY FUNCTION FORMATTED-DATE ( Time-Format, 1)
           END-DISPLAY
           DISPLAY FUNCTION FORMATTED-DATE ( Datetime-Format, 1)
           END-DISPLAY

           DISPLAY FUNCTION FORMATTED-TIME ( Date-Format, 1)
           END-DISPLAY
           DISPLAY FUNCTION FORMATTED-TIME ( Datetime-Format, 1)
           END-DISPLAY

           DISPLAY FUNCTION FORMATTED-DATETIME ( Date-Format, 1, 1)
           END-DISPLAY
           DISPLAY FUNCTION FORMATTED-DATETIME ( Time-Format, 1, 1)
           END-DISPLAY

           DISPLAY FUNCTION INTEGER-OF-FORMATTED-DATE ( Time-Format, 1)
           END-DISPLAY

           DISPLAY FUNCTION SECONDS-FROM-FORMATTED-TIME
               ( Date-Format, 1)
           END-DISPLAY

      *>   Time format with more than 9 decimal places.
           DISPLAY FUNCTION FORMATTED-TIME ( "hhmmss.ssssssssss", 1)
           END-DISPLAY

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:496: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:496"
( $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:12: error: FUNCTION 'FORMATTED-DATE' has invalid date/time format
prog.cob:14: error: FUNCTION 'FORMATTED-TIME' has invalid date/time format
prog.cob:16: error: FUNCTION 'FORMATTED-DATETIME' has invalid date/time format
prog.cob:21: warning: FUNCTION 'FORMATTED-DATE' has format in variable
prog.cob:25: error: FUNCTION 'FORMATTED-CURRENT-DATE' has invalid date/time format
prog.cob:27: error: FUNCTION 'FORMATTED-CURRENT-DATE' has invalid date/time format
prog.cob:30: error: FUNCTION 'FORMATTED-DATE' has invalid date/time format
prog.cob:32: error: FUNCTION 'FORMATTED-DATE' has invalid date/time format
prog.cob:35: error: FUNCTION 'FORMATTED-TIME' has invalid date/time format
prog.cob:37: error: FUNCTION 'FORMATTED-TIME' has invalid date/time format
prog.cob:40: error: FUNCTION 'FORMATTED-DATETIME' has invalid date/time format
prog.cob:42: error: FUNCTION 'FORMATTED-DATETIME' has invalid date/time format
prog.cob:45: error: FUNCTION 'INTEGER-OF-FORMATTED-DATE' has invalid date/time format
prog.cob:48: error: FUNCTION 'SECONDS-FROM-FORMATTED-TIME' has invalid date/time format
prog.cob:53: error: FUNCTION 'FORMATTED-TIME' has invalid date/time format
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:496"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_406
#AT_START_407
at_fn_group_banner 407 'syn_functions.at:516' \
  "invalid formats w/ DECIMAL-POINT IS COMMA" "      " 2
at_xfail=no
(
  $as_echo "407. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT IS COMMA.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION FORMATTED-TIME ("hhmmss,ss", 1)
           END-DISPLAY
           DISPLAY FUNCTION FORMATTED-DATETIME
                       ("YYYYMMDDThhmmss,ss", 1, 1)
           END-DISPLAY

           DISPLAY FUNCTION FORMATTED-TIME ("hhmmss.ss", 1)
           END-DISPLAY
           DISPLAY FUNCTION FORMATTED-DATETIME
                       ("YYYYMMDDThhmmss.ss", 1, 1)
           END-DISPLAY

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:542: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "syn_functions.at:542"
( $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:15: error: FUNCTION 'FORMATTED-TIME' has invalid date/time format
prog.cob:17: error: FUNCTION 'FORMATTED-DATETIME' has invalid date/time format
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:542"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_407
#AT_START_408
at_fn_group_banner 408 'syn_functions.at:550' \
  "Specified offset and SYSTEM-OFFSET" "             " 2
at_xfail=no
(
  $as_echo "408. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION FORMATTED-DATETIME
                       ("YYYYDDDThhmmssZ", 1, 1, 1, SYSTEM-OFFSET)
           END-DISPLAY
           DISPLAY FUNCTION FORMATTED-TIME
                       ("hhmmssZ", 1, 1, SYSTEM-OFFSET)
           END-DISPLAY
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:566: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "syn_functions.at:566"
( $at_check_trace; $COMPILE 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: cannot specify offset and SYSTEM-OFFSET at the same time
prog.cob:9: error: cannot specify offset and SYSTEM-OFFSET at the same time
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:566"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_408
#AT_START_409
at_fn_group_banner 409 'syn_functions.at:574' \
  "FUNCTION LENGTH / BYTE-LENGTH" "                  " 2
at_xfail=no
(
  $as_echo "409. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION LENGTH      ("abcd" & "xyz")
           END-DISPLAY
           DISPLAY FUNCTION BYTE-LENGTH ("abcd" & "xyz")
           END-DISPLAY
           DISPLAY FUNCTION LENGTH      ("abcd" "xyz")
           END-DISPLAY
           DISPLAY FUNCTION BYTE-LENGTH (01234)
           END-DISPLAY
           DISPLAY FUNCTION LENGTH      (567)
           END-DISPLAY
           DISPLAY FUNCTION LENGTH      ("abcd" & "xyz" PHYSICAL)
           END-DISPLAY
           DISPLAY FUNCTION BYTE-LENGTH ("abcd" & "xyz" PHYSICAL)
           END-DISPLAY
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/syn_functions.at:598: \$COMPILE -Wno-pending prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -Wno-pending prog.cob" "syn_functions.at:598"
( $at_check_trace; $COMPILE -Wno-pending 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: syntax error, unexpected Literal, expecting PHYSICAL or )
prog.cob:11: error: a non-numeric literal is expected here
prog.cob:13: error: a non-numeric literal is expected here
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/syn_functions.at:598"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_409
#AT_START_410
at_fn_group_banner 410 'listings.at:21' \
  "Minimal lines per listing pages" "                " 3
at_xfail=no
(
  $as_echo "410. $at_setup_line: testing $at_desc ..."
  $at_traceon



# note: 2.2 did not use a minmal length,
# a typo like -tlines=2 loops forever



cat >prog.cob <<'_ATEOF'

      * some comments go here
                 *> and here
                        *> and finally... here
       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 NEWSTUFF PIC X(80).
       PROCEDURE        DIVISION.
           DISPLAY NEWSTUFF " BENEFITS SOME PARTS FROM "
           "MANY" "STUFF" ", " "VERY MUCH" "GOOD" NEWSTUFF
           "AND STUFF !"
                   NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


cat >expected.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002        * some comments go here
000003                   *> and here
000004                          *> and finally... here
000005         IDENTIFICATION   DIVISION.
000006         PROGRAM-ID.      prog.
000007         DATA             DIVISION.
000008         WORKING-STORAGE  SECTION.
000009         01 NEWSTUFF PIC X(80).
000010         PROCEDURE        DIVISION.
000011             DISPLAY NEWSTUFF " BENEFITS SOME PARTS FROM "
000012             "MANY" "STUFF" ", " "VERY MUCH" "GOOD" NEWSTUFF
000013             "AND STUFF !"
000014                     NO ADVANCING
000015             END-DISPLAY.
000016             STOP RUN.

GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002

0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:75: \$COMPILE_ONLY -t prog.lst -tlines=2 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=2 prog.cob" "listings.at:75"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=2 prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cobc: warning: 2 lines per listing page specified, using 20
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:75"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:79: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:79"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:79"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:80: diff expected.lst prog.lis"
at_fn_check_prepare_trace "listings.at:80"
( $at_check_trace; diff expected.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:80"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_410
#AT_START_411
at_fn_group_banner 411 'listings.at:85' \
  "COPY within comment" "                            " 3
at_xfail=no
(
  $as_echo "411. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
      *COPY "copy.inc".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:100: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:100"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 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/listings.at:100"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog1.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006        *COPY "copy.inc".
000007         PROCEDURE        DIVISION.
000008             STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:121: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:121"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:121"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:122: diff prog1.lst prog.lis"
at_fn_check_prepare_trace "listings.at:122"
( $at_check_trace; diff prog1.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:122"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

  IDENTIFICATION   DIVISION.
  PROGRAM-ID.      prog2.
  DATA             DIVISION.
  WORKING-STORAGE  SECTION.
  *> COPY "copy.inc".
  PROCEDURE        DIVISION.
  STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:134: \$COMPILE_ONLY -t prog.lst -tlines=0 -free prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -free prog2.cob" "listings.at:134"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -free prog2.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/listings.at:134"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog2.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog2.cob                  DDD MMM dd HH:MM:SS YYYY

LINE    .....................SOURCE.............................................

000001
000002    IDENTIFICATION   DIVISION.
000003    PROGRAM-ID.      prog2.
000004    DATA             DIVISION.
000005    WORKING-STORAGE  SECTION.
000006    *> COPY "copy.inc".
000007    PROCEDURE        DIVISION.
000008    STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:155: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:155"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:155"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:156: diff prog2.lst prog.lis"
at_fn_check_prepare_trace "listings.at:156"
( $at_check_trace; diff prog2.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:156"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_411
#AT_START_412
at_fn_group_banner 412 'listings.at:161' \
  "Replacement w/o strings" "                        " 3
at_xfail=no
(
  $as_echo "412. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       REPLACE   =="SOME"== BY =="MANY"==
                 =='SOME'== BY =="VERY MUCH"==
                 ==STUFF==  BY ==NEWSTUFF==.
       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 NEWSTUFF PIC X(80).
       PROCEDURE        DIVISION.
           DISPLAY STUFF " BENEFITS SOME PARTS FROM "
                   "SOME" "STUFF" ", " 'SOME' "GOOD" STUFF "AND STUFF !"
                   NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:183: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:183"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols 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/listings.at:183"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >expected.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         REPLACE   =="SOME"== BY =="MANY"==
000003                   =='SOME'== BY =="VERY MUCH"==
000004                   ==STUFF==  BY ==NEWSTUFF==.
000005         IDENTIFICATION   DIVISION.
000006         PROGRAM-ID.      prog.
000007         DATA             DIVISION.
000008         WORKING-STORAGE  SECTION.
000009         01 NEWSTUFF PIC X(80).
000010         PROCEDURE        DIVISION.
000011             DISPLAY NEWSTUFF " BENEFITS SOME PARTS FROM "
000012             "MANY" "STUFF" ", " "VERY MUCH" "GOOD" NEWSTUFF
000012+       -    "AND STUFF !"
000013                     NO ADVANCING
000014             END-DISPLAY.
000015             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00080 ALPHANUMERIC   01   NEWSTUFF                       X(80)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:218: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:218"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:218"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:219: diff expected.lst prog.lis"
at_fn_check_prepare_trace "listings.at:219"
( $at_check_trace; diff expected.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:219"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_412
#AT_START_413
at_fn_group_banner 413 'listings.at:224' \
  "COPY replacement order" "                         " 3
at_xfail=no
(
  $as_echo "413. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >copy.inc <<'_ATEOF'

       01 TEST-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
          REPLACING ==TEST-VAR== BY ==FIRST-MATCH==
                    ==TEST-VAR== BY ==SECOND-MATCH==.
       PROCEDURE        DIVISION.
           DISPLAY FIRST-MATCH NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:247: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:247"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols 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/listings.at:247"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog3.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         COPY "copy.inc"
000007            REPLACING ==TEST-VAR== BY ==FIRST-MATCH==
000008                      ==TEST-VAR== BY ==SECOND-MATCH==.
000001C
000002C        01 FIRST-MATCH PIC X(2) VALUE "OK".
000009         PROCEDURE        DIVISION.
000010             DISPLAY FIRST-MATCH NO ADVANCING
000011             END-DISPLAY.
000012             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00002 ALPHANUMERIC   01   FIRST-MATCH                    X(2)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:280: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:280"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:280"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:281: diff prog3.lst prog.lis"
at_fn_check_prepare_trace "listings.at:281"
( $at_check_trace; diff prog3.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:281"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:283: \$COBC \$FLAGS -E -o prog.i prog.cob"
at_fn_check_prepare_dynamic "$COBC $FLAGS -E -o prog.i prog.cob" "listings.at:283"
( $at_check_trace; $COBC $FLAGS -E -o prog.i 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/listings.at:283"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:284: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i" "listings.at:284"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:284"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog4.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.i                     DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001  #line 1 "prog.cob"
000001
000002   IDENTIFICATION   DIVISION.
000003   PROGRAM-ID. prog.
000004   DATA DIVISION.
000005   WORKING-STORAGE SECTION.
000006
000007
000008
000001  #line 1 "copy.inc"
000001
000002   01 FIRST-MATCH PIC X(2) VALUE "OK".
000008  #line 8 "prog.cob"
000008
000009   PROCEDURE DIVISION.
000010   DISPLAY FIRST-MATCH NO ADVANCING
000011   END-DISPLAY.
000012   STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00002 ALPHANUMERIC   01   FIRST-MATCH                    X(2)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:321: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:321"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:321"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:322: diff prog4.lst prog.lis"
at_fn_check_prepare_trace "listings.at:322"
( $at_check_trace; diff prog4.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:322"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_413
#AT_START_414
at_fn_group_banner 414 'listings.at:327' \
  "COPY separators" "                                " 3
at_xfail=no
(
  $as_echo "414. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >copy.inc <<'_ATEOF'

       01 TEST-VAR PIC X(2) VALUE "OK".                                  COPY001
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.                                        PROG001
       PROGRAM-ID.      prog.                                            PROG002
       DATA             DIVISION.                                        PROG003
       WORKING-STORAGE  SECTION.                                         PROG004
       COPY "copy.inc"                                                   PROG005
          REPLACING ==TEST-VAR==, BY ==FIRST-MATCH==,                    PROG006
                 ,  ==TEST-VAR==; BY ==SECOND-MATCH==;                   PROG007
                 ;  ==TEST-VAR== , BY ==THIRD-MATCH==                    PROG008
                    ==TEST-VAR== ; BY ==FOURTH-MATCH==.                  PROG009
       PROCEDURE        DIVISION.                                        PROG010
           DISPLAY FIRST-MATCH NO ADVANCING                              PROG011
           END-DISPLAY.                                                  PROG012
           STOP RUN.                                                     PROG013
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:352: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:352"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols 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/listings.at:352"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog4.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         COPY "copy.inc"
000007            REPLACING ==TEST-VAR==, BY ==FIRST-MATCH==,
000008                   ,  ==TEST-VAR==; BY ==SECOND-MATCH==;
000009                   ;  ==TEST-VAR== , BY ==THIRD-MATCH==
000010                      ==TEST-VAR== ; BY ==FOURTH-MATCH==.
000001C
000002C        01 FIRST-MATCH PIC X(2) VALUE "OK".
000011         PROCEDURE        DIVISION.
000012             DISPLAY FIRST-MATCH NO ADVANCING
000013             END-DISPLAY.
000014             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00002 ALPHANUMERIC   01   FIRST-MATCH                    X(2)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:387: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:387"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:387"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:388: diff prog4.lst prog.lis"
at_fn_check_prepare_trace "listings.at:388"
( $at_check_trace; diff prog4.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:388"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_414
#AT_START_415
at_fn_group_banner 415 'listings.at:393' \
  "COPY partial replacement" "                       " 3
at_xfail=no
(
  $as_echo "415. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >copy.inc <<'_ATEOF'

       01 :TEST:-VAR PIC X(2) VALUE "OK".
       01 (TEST)-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
          REPLACING ==:TEST:== BY ==COLON==
                    ==(TEST)== BY ==PAREN==.
       PROCEDURE        DIVISION.
           DISPLAY COLON-VAR NO ADVANCING
           END-DISPLAY.
           DISPLAY PAREN-VAR NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:419: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:419"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols 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/listings.at:419"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog5.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         COPY "copy.inc"
000007            REPLACING ==:TEST:== BY ==COLON==
000008                      ==(TEST)== BY ==PAREN==.
000001C
000002C        01 COLON PIC X(2) VALUE "OK".
000003C        01 PAREN PIC X(2) VALUE "OK".
000009         PROCEDURE        DIVISION.
000010             DISPLAY COLON-VAR NO ADVANCING
000011             END-DISPLAY.
000012             DISPLAY PAREN-VAR NO ADVANCING
000013             END-DISPLAY.
000014             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00002 ALPHANUMERIC   01   COLON-VAR                      X(2)

00002 ALPHANUMERIC   01   PAREN-VAR                      X(2)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:457: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:457"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:457"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:458: diff prog5.lst prog.lis"
at_fn_check_prepare_trace "listings.at:458"
( $at_check_trace; diff prog5.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:458"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }




cat >copy1.inc <<'_ATEOF'

       01 'yyy-'struktur.
          05  'yyy-'hello    pic x(30) value 'yyy copy1.inc'.
          05  'yy1-'hello    pic x(30) value 'yy1 copy1.inc'.
          05  'yy2-'hello    pic x(30) value 'yy2 copy1.inc'.
          05  filler         pic x(20).
_ATEOF


cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. copytest.

       data division.
       working-storage section.
       01 hello                pic x(20) value 'Copytest'.

       01 xx                   pic x(02).

          copy 'copy1.inc' replacing 'YYY-' by a10-
                                     'yy1-' by a11-
                                     'yy2-' by a12-.

          copy 'copy1.inc' replacing 'YYY-' by a20-
                                     'yy1-' by a21-
                                     'yy2-' by a22-.

          copy 'copy1.inc' replacing 'YYY-' by a30-
                                     'yy1-' by a31-
                                     'yy2-' by a32-.

       procedure division.

       display hello

       display 'a10-struktur'
       display a10-struktur

       display 'a20-struktur'
       display a20-struktur

       display 'a30-struktur'
       display a30-struktur

       goback.
       end program copytest.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:509: \$COMPILE_ONLY -t prog1.lst -tlines=0 -tsymbols prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog1.lst -tlines=0 -tsymbols prog1.cob" "listings.at:509"
( $at_check_trace; $COMPILE_ONLY -t prog1.lst -tlines=0 -tsymbols prog1.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/listings.at:509"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog1.lst"
$at_traceon; }


cat >prog6.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog1.cob                  DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         identification division.
000003         program-id. copytest.
000004
000005         data division.
000006         working-storage section.
000007         01 hello                pic x(20) value 'Copytest'.
000008
000009         01 xx                   pic x(02).
000010
000011            copy 'copy1.inc' replacing 'YYY-' by a10-
000012                                       'yy1-' by a11-
000013                                       'yy2-' by a12-.
000001C
000002C        01 a10-struktur.
000003C        05 a10-hello pic x(30) value 'yyy copy1.inc'.
000004C        05 a11-hello pic x(30) value 'yy1 copy1.inc'.
000005C        05 a12-hello pic x(30) value 'yy2 copy1.inc'.
000006C           05  filler         pic x(20).
000014
000015            copy 'copy1.inc' replacing 'YYY-' by a20-
000016                                       'yy1-' by a21-
000017                                       'yy2-' by a22-.
000001C
000002C        01 a20-struktur.
000003C        05 a20-hello pic x(30) value 'yyy copy1.inc'.
000004C        05 a21-hello pic x(30) value 'yy1 copy1.inc'.
000005C        05 a22-hello pic x(30) value 'yy2 copy1.inc'.
000006C           05  filler         pic x(20).
000018
000019            copy 'copy1.inc' replacing 'YYY-' by a30-
000020                                       'yy1-' by a31-
000021                                       'yy2-' by a32-.
000001C
000002C        01 a30-struktur.
000003C        05 a30-hello pic x(30) value 'yyy copy1.inc'.
000004C        05 a31-hello pic x(30) value 'yy1 copy1.inc'.
000005C        05 a32-hello pic x(30) value 'yy2 copy1.inc'.
000006C           05  filler         pic x(20).
000022
000023         procedure division.
000024
000025         display hello
000026
000027         display 'a10-struktur'
000028         display a10-struktur
000029
000030         display 'a20-struktur'
000031         display a20-struktur
000032
000033         display 'a30-struktur'
000034         display a30-struktur
000035
000036         goback.
000037         end program copytest.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00020 ALPHANUMERIC   01   hello                          X(20)

00002 ALPHANUMERIC   01   xx                             X(02)

00110 GROUP          01   a10-struktur
00030 ALPHANUMERIC   05   a10-hello                      X(30)
00030 ALPHANUMERIC   05   a11-hello                      X(30)
00030 ALPHANUMERIC   05   a12-hello                      X(30)
00020 ALPHANUMERIC   05   FILLER                         X(20)

00110 GROUP          01   a20-struktur
00030 ALPHANUMERIC   05   a20-hello                      X(30)
00030 ALPHANUMERIC   05   a21-hello                      X(30)
00030 ALPHANUMERIC   05   a22-hello                      X(30)
00020 ALPHANUMERIC   05   FILLER                         X(20)

00110 GROUP          01   a30-struktur
00030 ALPHANUMERIC   05   a30-hello                      X(30)
00030 ALPHANUMERIC   05   a31-hello                      X(30)
00030 ALPHANUMERIC   05   a32-hello                      X(30)
00020 ALPHANUMERIC   05   FILLER                         X(20)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:603: \$UNIFY_LISTING prog1.lst prog1.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog1.lst prog1.lis once" "listings.at:603"
( $at_check_trace; $UNIFY_LISTING prog1.lst prog1.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:603"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog1.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:604: diff prog6.lst prog1.lis"
at_fn_check_prepare_trace "listings.at:604"
( $at_check_trace; diff prog6.lst prog1.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:604"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog1.lst"
$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_415
#AT_START_416
at_fn_group_banner 416 'listings.at:609' \
  "COPY LEADING replacement" "                       " 3
at_xfail=no
(
  $as_echo "416. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >copy.inc <<'_ATEOF'

       01  TEST-VAR PIC X(2) VALUE "OK".
       01  NORM-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
            REPLACING LEADING ==TEST== BY ==FIRST==
                      LEADING ==NORM== BY ==SECOND==.
       PROCEDURE        DIVISION.
           DISPLAY FIRST-VAR NO ADVANCING
           END-DISPLAY.
           DISPLAY SECOND-VAR NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:635: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:635"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols 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/listings.at:635"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >progl.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         COPY "copy.inc"
000007              REPLACING LEADING ==TEST== BY ==FIRST==
000008                        LEADING ==NORM== BY ==SECOND==.
000001C
000002C        01 FIRST-VAR PIC X(2) VALUE "OK".
000003C        01 SECOND-VAR PIC X(2) VALUE "OK".
000009         PROCEDURE        DIVISION.
000010             DISPLAY FIRST-VAR NO ADVANCING
000011             END-DISPLAY.
000012             DISPLAY SECOND-VAR NO ADVANCING
000013             END-DISPLAY.
000014             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00002 ALPHANUMERIC   01   FIRST-VAR                      X(2)

00002 ALPHANUMERIC   01   SECOND-VAR                     X(2)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:673: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:673"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:673"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:674: diff progl.lst prog.lis"
at_fn_check_prepare_trace "listings.at:674"
( $at_check_trace; diff progl.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:674"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_416
#AT_START_417
at_fn_group_banner 417 'listings.at:679' \
  "COPY TRAILING replacement" "                      " 3
at_xfail=no
(
  $as_echo "417. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >copy.inc <<'_ATEOF'

       01  TEST-FIRST  PIC X(2) VALUE "OK".
       01  TEST-SECOND PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc"
            REPLACING TRAILING ==FIRST== BY ==VAR1==
                      TRAILING ==SECOND== BY ==VAR2==.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR1 NO ADVANCING
           END-DISPLAY.
           DISPLAY TEST-VAR2 NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF



{ set +x
$as_echo "$at_srcdir/listings.at:706: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:706"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols 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/listings.at:706"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >progr.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         COPY "copy.inc"
000007              REPLACING TRAILING ==FIRST== BY ==VAR1==
000008                        TRAILING ==SECOND== BY ==VAR2==.
000001C
000002C        01 TEST-VAR1 PIC X(2) VALUE "OK".
000003C        01 TEST-VAR2 PIC X(2) VALUE "OK".
000009         PROCEDURE        DIVISION.
000010             DISPLAY TEST-VAR1 NO ADVANCING
000011             END-DISPLAY.
000012             DISPLAY TEST-VAR2 NO ADVANCING
000013             END-DISPLAY.
000014             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00002 ALPHANUMERIC   01   TEST-VAR1                      X(2)

00002 ALPHANUMERIC   01   TEST-VAR2                      X(2)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:744: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:744"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:744"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:745: diff progr.lst prog.lis"
at_fn_check_prepare_trace "listings.at:745"
( $at_check_trace; diff progr.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:745"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_417
#AT_START_418
at_fn_group_banner 418 'listings.at:750' \
  "COPY recursive replacement" "                     " 3
at_xfail=no
(
  $as_echo "418. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >copy-2.inc <<'_ATEOF'

       01 TEST-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >copy-1.inc <<'_ATEOF'

       COPY "copy-2.inc".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy-1.inc"
           REPLACING ==TEST-VAR== BY ==COPY-VAR==.
       PROCEDURE        DIVISION.
           DISPLAY COPY-VAR NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:776: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:776"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols 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/listings.at:776"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog6.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         COPY "copy-1.inc"
000007             REPLACING ==TEST-VAR== BY ==COPY-VAR==.
000001C
000002C        COPY "copy-2.inc".
000001C
000002C        01 COPY-VAR PIC X(2) VALUE "OK".
000008         PROCEDURE        DIVISION.
000009             DISPLAY COPY-VAR NO ADVANCING
000010             END-DISPLAY.
000011             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00002 ALPHANUMERIC   01   COPY-VAR                       X(2)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:810: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:810"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:810"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:811: diff prog6.lst prog.lis"
at_fn_check_prepare_trace "listings.at:811"
( $at_check_trace; diff prog6.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:811"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_418
#AT_START_419
at_fn_group_banner 419 'listings.at:816' \
  "COPY multiple files" "                            " 3
at_xfail=no
(
  $as_echo "419. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >copy-fd-1.inc <<'_ATEOF'

       FD  TEXTFILE-1        RECORD VARYING 1 TO 999 CHARACTERS
                                 DEPENDING ON TEXTFILE-1-SIZE.
       01  TEXTRECD-1.
           03 FILLER         PIC X(999).
      *
_ATEOF


cat >copy-fd-2.inc <<'_ATEOF'

       FD  TEXTFILE-2        RECORD VARYING 1 TO 999 CHARACTERS
                                 DEPENDING ON TEXTFILE-2-SIZE.
       01  TEXTRECD-2.
           03 FILLER         PIC X(999).
      *
_ATEOF


cat >copy-ws-1.inc <<'_ATEOF'

       01  TEXTFILE-1-NAME          PIC X(080)     VALUE "TEXTFILE.1".
       01  TEXTFILE-1-OCFG          PIC X(001)     VALUE "C".
           88 TEXTFILE-1-NOTOPEN    VALUE "C".
           88 TEXTFILE-1-IS-OPEN    VALUE "I", "O", "U".
       01  TEXTFILE-1-SIZE          PIC 9(004) EXTERNAL.
      *
_ATEOF


cat >copy-ws-2.inc <<'_ATEOF'

       01  TEXTFILE-2-NAME          PIC X(080)     VALUE "TEXTFILE.2".
       01  TEXTFILE-2-OCFG          PIC X(001)     VALUE "C".
           88 TEXTFILE-2-NOTOPEN    VALUE "C".
           88 TEXTFILE-2-IS-OPEN    VALUE "I", "O", "U".
       01  TEXTFILE-2-SIZE          PIC 9(004).
      *
_ATEOF


cat >copy-sl-1.inc <<'_ATEOF'

           SELECT TEXTFILE-1   ASSIGN TO DISK    TEXTFILE-1-NAME
                               ORGANIZATION      LINE SEQUENTIAL
                               ACCESS MODE       SEQUENTIAL.
      *
_ATEOF


cat >copy-sl-2.inc <<'_ATEOF'

           SELECT TEXTFILE-2   ASSIGN TO DISK    TEXTFILE-2-NAME
                               ORGANIZATION      LINE SEQUENTIAL
                               ACCESS MODE       SEQUENTIAL.
      *
_ATEOF


cat >tstcpybk.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. tstcpybk.
      *
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
      *
       SOURCE-COMPUTER. LINUX.
       OBJECT-COMPUTER. LINUX.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           COPY "copy-sl-1.inc".
           COPY "copy-sl-2.inc".

       DATA DIVISION.
       FILE SECTION.
           COPY "copy-fd-1.inc".
           COPY "copy-fd-2.inc".

       WORKING-STORAGE SECTION.
       01  HEADER BASED.
           03 FILLER         PIC X(016)     VALUE 'FCSI CodeWerks:'.
           03 FILLER         PIC X(064)     VALUE
              'Name:tstcpybk.cbl  Version:1.7.1  Date:2017-03-15'.
           03 FILLER         PIC X(002)     VALUE LOW-VALUES.
      *
       77  GLOB              PIC 99         GLOBAL.
      *
           COPY "copy-ws-1.inc".
           COPY "copy-ws-2.inc".

       PROCEDURE DIVISION.
       MAIN-PROCEDURE SECTION.
       MAIN-PROCEDURE-0000.
           CONTINUE.
       MAIN-PROCEDURE-EXIT.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:909: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols tstcpybk.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols tstcpybk.cob" "listings.at:909"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols tstcpybk.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/listings.at:909"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog3.lst <<'_ATEOF'
GnuCOBOL V.R.P               tstcpybk.cob               DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION DIVISION.
000003         PROGRAM-ID. tstcpybk.
000004        *
000005         ENVIRONMENT DIVISION.
000006         CONFIGURATION SECTION.
000007        *
000008         SOURCE-COMPUTER. LINUX.
000009         OBJECT-COMPUTER. LINUX.
000010
000011         INPUT-OUTPUT SECTION.
000012         FILE-CONTROL.
000013             COPY "copy-sl-1.inc".
000001C
000002C            SELECT TEXTFILE-1   ASSIGN TO DISK    TEXTFILE-1-NAME
000003C                                ORGANIZATION      LINE SEQUENTIAL
000004C                                ACCESS MODE       SEQUENTIAL.
000005C       *
000014             COPY "copy-sl-2.inc".
000001C
000002C            SELECT TEXTFILE-2   ASSIGN TO DISK    TEXTFILE-2-NAME
000003C                                ORGANIZATION      LINE SEQUENTIAL
000004C                                ACCESS MODE       SEQUENTIAL.
000005C       *
000015
000016         DATA DIVISION.
000017         FILE SECTION.
000018             COPY "copy-fd-1.inc".
000001C
000002C        FD  TEXTFILE-1        RECORD VARYING 1 TO 999 CHARACTERS
000003C                                  DEPENDING ON TEXTFILE-1-SIZE.
000004C        01  TEXTRECD-1.
000005C            03 FILLER         PIC X(999).
000006C       *
000019             COPY "copy-fd-2.inc".
000001C
000002C        FD  TEXTFILE-2        RECORD VARYING 1 TO 999 CHARACTERS
000003C                                  DEPENDING ON TEXTFILE-2-SIZE.
000004C        01  TEXTRECD-2.
000005C            03 FILLER         PIC X(999).
000006C       *
000020
000021         WORKING-STORAGE SECTION.
000022         01  HEADER BASED.
000023             03 FILLER         PIC X(016)     VALUE 'FCSI CodeWerks:'.
000024             03 FILLER         PIC X(064)     VALUE
000025                'Name:tstcpybk.cbl  Version:1.7.1  Date:2017-03-15'.
000026             03 FILLER         PIC X(002)     VALUE LOW-VALUES.
000027        *
000028         77  GLOB              PIC 99         GLOBAL.
000029        *
000030             COPY "copy-ws-1.inc".
000001C
000002C        01  TEXTFILE-1-NAME          PIC X(080)     VALUE "TEXTFILE.1".
000003C        01  TEXTFILE-1-OCFG          PIC X(001)     VALUE "C".
000004C            88 TEXTFILE-1-NOTOPEN    VALUE "C".
000005C            88 TEXTFILE-1-IS-OPEN    VALUE "I", "O", "U".
000006C        01  TEXTFILE-1-SIZE          PIC 9(004) EXTERNAL.
000007C       *
000031             COPY "copy-ws-2.inc".
000001C
000002C        01  TEXTFILE-2-NAME          PIC X(080)     VALUE "TEXTFILE.2".
000003C        01  TEXTFILE-2-OCFG          PIC X(001)     VALUE "C".
000004C            88 TEXTFILE-2-NOTOPEN    VALUE "C".
000005C            88 TEXTFILE-2-IS-OPEN    VALUE "I", "O", "U".
000006C        01  TEXTFILE-2-SIZE          PIC 9(004).
000007C       *
000032
000033         PROCEDURE DIVISION.
000034         MAIN-PROCEDURE SECTION.
000035         MAIN-PROCEDURE-0000.
000036             CONTINUE.
000037         MAIN-PROCEDURE-EXIT.
000038             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

00999 FILE                TEXTFILE-1
00999 GROUP          01   TEXTRECD-1
00999 ALPHANUMERIC   03   FILLER                         X(999)

00999 FILE                TEXTFILE-2
00999 GROUP          01   TEXTRECD-2
00999 ALPHANUMERIC   03   FILLER                         X(999)

      WORKING-STORAGE SECTION

00082 GROUP          01   HEADER BASED
00016 ALPHANUMERIC   03   FILLER                         X(016)
00064 ALPHANUMERIC   03   FILLER                         X(064)
00002 ALPHANUMERIC   03   FILLER                         X(002)

00002 NUMERIC        77   GLOB                           99 GLOBAL

00080 ALPHANUMERIC   01   TEXTFILE-1-NAME                X(080)

00001 ALPHANUMERIC   01   TEXTFILE-1-OCFG                X(001)
      CONDITIONAL    88   TEXTFILE-1-NOTOPEN
      CONDITIONAL    88   TEXTFILE-1-IS-OPEN

00004 NUMERIC        01   TEXTFILE-1-SIZE                9(004) EXTERNAL

00080 ALPHANUMERIC   01   TEXTFILE-2-NAME                X(080)

00001 ALPHANUMERIC   01   TEXTFILE-2-OCFG                X(001)
      CONDITIONAL    88   TEXTFILE-2-NOTOPEN
      CONDITIONAL    88   TEXTFILE-2-IS-OPEN

00004 NUMERIC        01   TEXTFILE-2-SIZE                9(004)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1031: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:1031"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1031"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1032: diff prog3.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1032"
( $at_check_trace; diff prog3.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1032"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_419
#AT_START_420
at_fn_group_banner 420 'listings.at:1037' \
  "Error/Warning messages" "                         " 3
at_xfail=no
(
  $as_echo "420. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >copy.inc <<'_ATEOF'

       ENVIRONMENT    DIVISION.
       INPUT-OUTPUT   SECTION.
       FILE-CONTROL.
           SELECT testfile
               ASSIGN TO filename
               ORGANIZATION RELATIVE
               ACCESS IS sequentia
               STATUS IS stat.
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       COPY "copy.inc".
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FIRST-MATCH NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1065: \$COMPILE_ONLY -t prog.lst prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst prog.cob" "listings.at:1065"
( $at_check_trace; $COMPILE_ONLY -t prog.lst prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "copy.inc:8: error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
copy.inc:5: error: missing file description for FILE testfile
prog.cob:7: warning: variable 'filename' will be implicitly defined
prog.cob:8: error: 'FIRST-MATCH' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/listings.at:1065"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog12.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         COPY "copy.inc".
000001C
000002C        ENVIRONMENT    DIVISION.
000003C        INPUT-OUTPUT   SECTION.
000004C        FILE-CONTROL.
000005C            SELECT testfile
error: missing file description for FILE testfile
000006C                ASSIGN TO filename
000007C                ORGANIZATION RELATIVE
000008C                ACCESS IS sequentia
error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or
     + SEQUENTIAL
000009C                STATUS IS stat.
000005         DATA             DIVISION.
000006         WORKING-STORAGE  SECTION.
000007         PROCEDURE        DIVISION.
warning: variable 'filename' will be implicitly defined
000008             DISPLAY FIRST-MATCH NO ADVANCING
error: 'FIRST-MATCH' is not defined
000009             END-DISPLAY.
000010             STOP RUN.


GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002

Error/Warning summary:

copy.inc:5: error: missing file description for FILE testfile
copy.inc:8: error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
prog.cob:7: warning: variable 'filename' will be implicitly defined
prog.cob:8: error: 'FIRST-MATCH' is not defined

1 warning in compilation group
3 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1116: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1116"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1116"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1117: diff prog12.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1117"
( $at_check_trace; diff prog12.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1117"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:1119: \$COMPILE_ONLY -T prog.lst prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -T prog.lst prog.cob" "listings.at:1119"
( $at_check_trace; $COMPILE_ONLY -T prog.lst prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "copy.inc:8: error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
copy.inc:5: error: missing file description for FILE testfile
prog.cob:7: warning: variable 'filename' will be implicitly defined
prog.cob:8: error: 'FIRST-MATCH' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/listings.at:1119"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog13.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog.cob                                                      DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................SEQUENCE

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         COPY "copy.inc".
000001C
000002C        ENVIRONMENT    DIVISION.
000003C        INPUT-OUTPUT   SECTION.
000004C        FILE-CONTROL.
000005C            SELECT testfile
error: missing file description for FILE testfile
000006C                ASSIGN TO filename
000007C                ORGANIZATION RELATIVE
000008C                ACCESS IS sequentia
error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
000009C                STATUS IS stat.
000005         DATA             DIVISION.
000006         WORKING-STORAGE  SECTION.
000007         PROCEDURE        DIVISION.
warning: variable 'filename' will be implicitly defined
000008             DISPLAY FIRST-MATCH NO ADVANCING
error: 'FIRST-MATCH' is not defined
000009             END-DISPLAY.
000010             STOP RUN.


GnuCOBOL V.R.P          prog.cob                                                      DDD MMM dd HH:MM:SS YYYY  Page 0002

Error/Warning summary:

copy.inc:5: error: missing file description for FILE testfile
copy.inc:8: error: syntax error, unexpected Identifier, expecting DYNAMIC or RANDOM or SEQUENTIAL
prog.cob:7: warning: variable 'filename' will be implicitly defined
prog.cob:8: error: 'FIRST-MATCH' is not defined

1 warning in compilation group
3 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1169: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1169"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1169"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1170: diff prog13.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1170"
( $at_check_trace; diff prog13.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1170"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 TEST-VAR PIC 9(2) VALUE 'F1'.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1184: \$COMPILE_ONLY -t prog.lst -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tsymbols prog.cob" "listings.at:1184"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tsymbols 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: numeric value is expected
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1184"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog14.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         01 TEST-VAR PIC 9(2) VALUE 'F1'.
warning: numeric value is expected
000007         PROCEDURE        DIVISION.
000008             DISPLAY TEST-VAR NO ADVANCING
000009             END-DISPLAY.
000010             STOP RUN.
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00002 NUMERIC        01   TEST-VAR                       9(2)


GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0003

Error/Warning summary:

prog.cob:6: warning: numeric value is expected

1 warning in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1223: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1223"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1223"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1224: diff prog14.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1224"
( $at_check_trace; diff prog14.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1224"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/listings.at:1227: \$COMPILE_ONLY -t prog.lst crud.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst crud.cob" "listings.at:1227"
( $at_check_trace; $COMPILE_ONLY -t prog.lst crud.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cobc: crud.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/listings.at:1227"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog15.lst <<'_ATEOF'
GnuCOBOL V.R.P          crud.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001

 cobc: crud.cob: No such file or directory


0 warnings in compilation group
1 error in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1241: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1241"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1241"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1242: diff prog15.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1242"
( $at_check_trace; diff prog15.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1242"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog.cpy <<'_ATEOF'

       78  I   VALUE 20.
       78  J   VALUE 5000.
       78  M   VALUE 5.
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 TEST-VAR PIC 9(2) VALUE 12.
       COPY 'prog.cpy'.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR NO ADVANCING
           END-DISPLAY
           MOVE 'AA' TO TEST-VAR
           DISPLAY TEST-VAR NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1266: \$COBC \$FLAGS -E -o prog.i prog.cob"
at_fn_check_prepare_dynamic "$COBC $FLAGS -E -o prog.i prog.cob" "listings.at:1266"
( $at_check_trace; $COBC $FLAGS -E -o prog.i 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/listings.at:1266"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1267: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i" "listings.at:1267"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.i
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:11: warning: numeric value is expected
prog.cob:6: note: 'TEST-VAR' defined here as PIC 9(2)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1267"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog17.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.i                     DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001  #line 1 "prog.cob"
000001
000002   IDENTIFICATION   DIVISION.
000003   PROGRAM-ID. prog.
000004   DATA DIVISION.
000005   WORKING-STORAGE SECTION.
000006   01 TEST-VAR PIC 9(2) VALUE 12.
000007
000001  #line 1 "prog.cpy"
000001
000002   78 I VALUE 20.
000003   78 J VALUE 5000.
000004   78 M VALUE 5.
000007  #line 7 "prog.cob"
000007
000008   PROCEDURE DIVISION.
000009   DISPLAY TEST-VAR NO ADVANCING
000010   END-DISPLAY
000011   MOVE 'AA' TO TEST-VAR
warning: numeric value is expected
000012   DISPLAY TEST-VAR NO ADVANCING
000013   END-DISPLAY
000014   STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00002 NUMERIC        01   TEST-VAR                       9(2)



Error/Warning summary:

prog.cob:11: warning: numeric value is expected

1 warning in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1317: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:1317"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1317"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1318: diff prog17.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1318"
( $at_check_trace; diff prog17.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1318"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 TEST-VAR PIC 9(2) VALUE 'A'.
       COPY 'CRUD.CPY'.
       PROCEDURE        DIVISION.
           DISPLAY TEST-VAR NO ADVANCING
           END-DISPLAY
           MOVE 12 TO TEST-VAR
           DISPLAY TEST-VAR NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1336: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:1336"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 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: CRUD.CPY: No such file or directory
prog.cob:6: warning: numeric value is expected
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/listings.at:1336"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog16.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         01 TEST-VAR PIC 9(2) VALUE 'A'.
warning: numeric value is expected
000007         COPY 'CRUD.CPY'.
error: CRUD.CPY: No such file or directory
000008         PROCEDURE        DIVISION.
000009             DISPLAY TEST-VAR NO ADVANCING
000010             END-DISPLAY
000011             MOVE 12 TO TEST-VAR
000012             DISPLAY TEST-VAR NO ADVANCING
000013             END-DISPLAY
000014             STOP RUN.



Error/Warning summary:

prog.cob:7: error: CRUD.CPY: No such file or directory
prog.cob:6: warning: numeric value is expected

1 warning in compilation group
1 error in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1374: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:1374"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1374"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1375: diff prog16.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1375"
( $at_check_trace; diff prog16.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1375"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:1377: \$COMPILE_ONLY -t prog.lst -tlines=0 -fmax-errors=0 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -fmax-errors=0 prog.cob" "listings.at:1377"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -fmax-errors=0 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: CRUD.CPY: No such file or directory
cobc: too many errors

cobc: aborting compile of prog.cob at line 7 (unknown: unknown)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 97 $at_status "$at_srcdir/listings.at:1377"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog17.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         01 TEST-VAR PIC 9(2) VALUE 'A'.
000007         COPY 'CRUD.CPY'.
error: CRUD.CPY: No such file or directory
000008         PROCEDURE        DIVISION.
000009             DISPLAY TEST-VAR NO ADVANCING
000010             END-DISPLAY
000011             MOVE 12 TO TEST-VAR
000012             DISPLAY TEST-VAR NO ADVANCING
000013             END-DISPLAY
000014             STOP RUN.



Error/Warning summary:

prog.cob:7: error: CRUD.CPY: No such file or directory

0 warnings in compilation group
1 error in compilation group
Too many errors in compilation group: 0 maximum errors
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1416: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:1416"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1416"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1417: diff prog17.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1417"
( $at_check_trace; diff prog17.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1417"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_420
#AT_START_421
at_fn_group_banner 421 'listings.at:1423' \
  "Two source files" "                               " 3
at_xfail=no
(
  $as_echo "421. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
      *COPY "copy.inc".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


cat >prog1.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog1.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
      *COPY "copy.inc".
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1448: \$COMPILE_ONLY -t prog.lst prog.cob prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst prog.cob prog1.cob" "listings.at:1448"
( $at_check_trace; $COMPILE_ONLY -t prog.lst prog.cob prog1.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/listings.at:1448"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog11.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006        *COPY "copy.inc".
000007         PROCEDURE        DIVISION.
000008             STOP RUN.


0 warnings in compilation group
0 errors in compilation group
GnuCOBOL V.R.P          prog1.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog1.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006        *COPY "copy.inc".
000007         PROCEDURE        DIVISION.
000008             STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1485: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1485"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1485"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1486: diff prog11.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1486"
( $at_check_trace; diff prog11.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1486"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_421
#AT_START_422
at_fn_group_banner 422 'listings.at:1491' \
  "Multiple programs in one file" "                  " 3
at_xfail=no
(
  $as_echo "422. $at_setup_line: testing $at_desc ..."
  $at_traceon






cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-1.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  blah PIC x.

       END PROGRAM prog-1.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-2.
       END PROGRAM prog-2.
_ATEOF


cat >prog20.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION DIVISION.
000003         PROGRAM-ID. prog-1.
000004
000005         DATA DIVISION.
000006         WORKING-STORAGE SECTION.
000007         01  blah PIC x.
000008
000009         END PROGRAM prog-1.
000010
000011         IDENTIFICATION DIVISION.
000012         PROGRAM-ID. prog-2.
000013         END PROGRAM prog-2.
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002

SIZE  TYPE           LVL  NAME                           PICTURE

      PROGRAM             prog-1

      WORKING-STORAGE SECTION

00001 ALPHANUMERIC   01   blah                           X

      PROGRAM             prog-2

      No fields defined.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


# Check once with $COMPILE and once with $COMPILE_ONLY.
# This tests whether codegen affects the listing.
{ set +x
$as_echo "$at_srcdir/listings.at:1551: \$COMPILE -t prog.lst -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -t prog.lst -tsymbols prog.cob" "listings.at:1551"
( $at_check_trace; $COMPILE -t prog.lst -tsymbols 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/listings.at:1551"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1552: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1552"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1552"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1553: diff prog20.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1553"
( $at_check_trace; diff prog20.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1553"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1554: \$COMPILE_ONLY -t prog2.lst -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog2.lst -tsymbols prog.cob" "listings.at:1554"
( $at_check_trace; $COMPILE_ONLY -t prog2.lst -tsymbols 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/listings.at:1554"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1555: \$UNIFY_LISTING prog2.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog2.lst prog.lis" "listings.at:1555"
( $at_check_trace; $UNIFY_LISTING prog2.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1555"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1556: diff prog20.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1556"
( $at_check_trace; diff prog20.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1556"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:1558: rm -f prog.lst prog2.lst"
at_fn_check_prepare_trace "listings.at:1558"
( $at_check_trace; rm -f prog.lst prog2.lst
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1558"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }


cat >progb.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-1.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  blah PIC x.

       PROCEDURE DIVISION.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-2.
       PROCEDURE DIVISION.
       END PROGRAM prog-2.

       END PROGRAM prog-1.
_ATEOF


cat >prog20b.lst <<'_ATEOF'
GnuCOBOL V.R.P          progb.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION DIVISION.
000003         PROGRAM-ID. prog-1.
000004
000005         DATA DIVISION.
000006         WORKING-STORAGE SECTION.
000007         01  blah PIC x.
000008
000009         PROCEDURE DIVISION.
000010
000011         IDENTIFICATION DIVISION.
000012         PROGRAM-ID. prog-2.
000013         PROCEDURE DIVISION.
000014         END PROGRAM prog-2.
000015
000016         END PROGRAM prog-1.
GnuCOBOL V.R.P          progb.cob            DDD MMM dd HH:MM:SS YYYY  Page 0002

SIZE  TYPE           LVL  NAME                           PICTURE

      PROGRAM             prog-1

      WORKING-STORAGE SECTION

00001 ALPHANUMERIC   01   blah                           X

      PROGRAM             prog-2

      No fields defined.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


# Check once with $COMPILE and once with $COMPILE_ONLY.
# This tests whether codegen affects the listing.
{ set +x
$as_echo "$at_srcdir/listings.at:1620: \$COMPILE -t prog.lst -tsymbols progb.cob"
at_fn_check_prepare_dynamic "$COMPILE -t prog.lst -tsymbols progb.cob" "listings.at:1620"
( $at_check_trace; $COMPILE -t prog.lst -tsymbols progb.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/listings.at:1620"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1621: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1621"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1621"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1622: diff prog20b.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1622"
( $at_check_trace; diff prog20b.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1622"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1623: \$COMPILE_ONLY -t prog2.lst -tsymbols progb.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog2.lst -tsymbols progb.cob" "listings.at:1623"
( $at_check_trace; $COMPILE_ONLY -t prog2.lst -tsymbols progb.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/listings.at:1623"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1624: \$UNIFY_LISTING prog2.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog2.lst prog.lis" "listings.at:1624"
( $at_check_trace; $UNIFY_LISTING prog2.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1624"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1625: diff prog20b.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1625"
( $at_check_trace; diff prog20b.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1625"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:1627: rm -f prog.lst prog2.lst"
at_fn_check_prepare_trace "listings.at:1627"
( $at_check_trace; rm -f prog.lst prog2.lst
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1627"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }


cat >progc.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-1.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  blah PIC x.

       PROCEDURE DIVISION.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-2.
       PROCEDURE.
       END PROGRAM prog-2.

       END PROGRAM prog-1.
_ATEOF


cat >prog20c.lst <<'_ATEOF'
GnuCOBOL V.R.P          progc.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION DIVISION.
000003         PROGRAM-ID. prog-1.
000004
000005         DATA DIVISION.
000006         WORKING-STORAGE SECTION.
000007         01  blah PIC x.
000008
000009         PROCEDURE DIVISION.
000010
000011         IDENTIFICATION DIVISION.
000012         PROGRAM-ID. prog-2.
000013         PROCEDURE.
error: syntax error, unexpected ., expecting DIVISION
000014         END PROGRAM prog-2.
000015
000016         END PROGRAM prog-1.
GnuCOBOL V.R.P          progc.cob            DDD MMM dd HH:MM:SS YYYY  Page 0002

SIZE  TYPE           LVL  NAME                           PICTURE

      PROGRAM             prog-1

      WORKING-STORAGE SECTION

00001 ALPHANUMERIC   01   blah                           X

      PROGRAM             prog-2

      No fields defined.


GnuCOBOL V.R.P          progc.cob            DDD MMM dd HH:MM:SS YYYY  Page 0003

Error/Warning summary:

progc.cob:13: error: syntax error, unexpected ., expecting DIVISION

0 warnings in compilation group
1 error in compilation group
_ATEOF


# Check once with $COMPILE and once with $COMPILE_ONLY.
# This tests whether codegen affects the listing.
{ set +x
$as_echo "$at_srcdir/listings.at:1696: \$COMPILE -t prog.lst -tsymbols progc.cob"
at_fn_check_prepare_dynamic "$COMPILE -t prog.lst -tsymbols progc.cob" "listings.at:1696"
( $at_check_trace; $COMPILE -t prog.lst -tsymbols progc.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "progc.cob:13: error: syntax error, unexpected ., expecting DIVISION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/listings.at:1696"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1699: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1699"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1699"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1700: diff prog20c.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1700"
( $at_check_trace; diff prog20c.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1700"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1701: \$COMPILE_ONLY -t prog2.lst -tsymbols progc.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog2.lst -tsymbols progc.cob" "listings.at:1701"
( $at_check_trace; $COMPILE_ONLY -t prog2.lst -tsymbols progc.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "progc.cob:13: error: syntax error, unexpected ., expecting DIVISION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/listings.at:1701"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1704: \$UNIFY_LISTING prog2.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog2.lst prog.lis" "listings.at:1704"
( $at_check_trace; $UNIFY_LISTING prog2.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1704"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1705: diff prog20c.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1705"
( $at_check_trace; diff prog20c.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1705"
$at_failed && at_fn_log_failure  \
"prog.lst" \
"prog2.lst"
$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_422
#AT_START_423
at_fn_group_banner 423 'listings.at:1710' \
  "Multiple programs in one compilation group" "     " 3
at_xfail=no
(
  $as_echo "423. $at_setup_line: testing $at_desc ..."
  $at_traceon



# TODO CHECK
# combinations and positions of entries in compilation group,
# the previous test should likely produce a different result, too...



cat >prog-1.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-1.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  blah   PIC x.

       PROCEDURE DIVISION.
           ACCEPT blah END-ACCEPT
           CALL "prog-2" USING blah END-CALL
           GO TO EX

           DISPLAY blah.

       EX. STOP RUN.
_ATEOF


cat >prog-2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-2.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  data-b  PIC 9.
       LINKAGE SECTION.
       01  stuff   PIC x.
       PROCEDURE DIVISION USING stuff.
       MAIN.
           MOVE FUNCTION NUMVAL (stuff) TO data-b
           DISPLAY data-b
           GO TO EX

           ACCEPT stuff.

       EX. STOP RUN.

_ATEOF


cat >expected.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION DIVISION.
000003         PROGRAM-ID. prog-1.
000004
000005         DATA DIVISION.
000006         WORKING-STORAGE SECTION.
000007         01  blah   PIC x.
000008
000009         PROCEDURE DIVISION.
000010             ACCEPT blah END-ACCEPT
000011             CALL "prog-2" USING blah END-CALL
000012             GO TO EX
000013
000014             DISPLAY blah.
warning: unreachable statement 'DISPLAY'
000015
000016         EX. STOP RUN.
GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0002

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00001 ALPHANUMERIC   01   blah                           X

GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0003

NAME                           DEFINED                REFERENCES

blah                           7       *10      11      14             x3

GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0004

LABEL                          DEFINED                REFERENCES

E prog__1                      9
P EX                           16       12                             x1
GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0005

FUNCTION                       TYPE                   REFERENCES

L prog-2                       EXTERN   11                             x1

GnuCOBOL V.R.P          prog-1.cob           DDD MMM dd HH:MM:SS YYYY  Page 0006

Error/Warning summary:

prog-1.cob:14: warning: unreachable statement 'DISPLAY'

1 warning in compilation group
0 errors in compilation group
GnuCOBOL V.R.P          prog-2.cob           DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION DIVISION.
000003         PROGRAM-ID. prog-2.
000004
000005         DATA DIVISION.
000006         WORKING-STORAGE SECTION.
000007         01  data-b  PIC 9.
000008         LINKAGE SECTION.
000009         01  stuff   PIC x.
000010         PROCEDURE DIVISION USING stuff.
000011         MAIN.
000012             MOVE FUNCTION NUMVAL (stuff) TO data-b
000013             DISPLAY data-b
000014             GO TO EX
000015
000016             ACCEPT stuff.
warning: unreachable statement 'ACCEPT'
000017
000018         EX. STOP RUN.
000019
GnuCOBOL V.R.P          prog-2.cob           DDD MMM dd HH:MM:SS YYYY  Page 0002

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00001 NUMERIC        01   data-b                         9

      LINKAGE SECTION

00001 ALPHANUMERIC   01   stuff                          X

GnuCOBOL V.R.P          prog-2.cob           DDD MMM dd HH:MM:SS YYYY  Page 0003

NAME                           DEFINED                REFERENCES

data-b                         7       *12      13                     x2

stuff                          9       *10      12     *16             x3

GnuCOBOL V.R.P          prog-2.cob           DDD MMM dd HH:MM:SS YYYY  Page 0004

LABEL                          DEFINED                REFERENCES

E prog__2                      10
P MAIN                         11     not referenced
P EX                           18       14                             x1

GnuCOBOL V.R.P          prog-2.cob           DDD MMM dd HH:MM:SS YYYY  Page 0005

Error/Warning summary:

prog-2.cob:16: warning: unreachable statement 'ACCEPT'

2 warnings in compilation group
0 errors in compilation group
_ATEOF


# Check once with $COMPILE and once with $COMPILE_ONLY.
# This tests whether codegen affects the listing.

{ set +x
$as_echo "$at_srcdir/listings.at:1879: \$COMPILE -x -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob"
at_fn_check_prepare_dynamic "$COMPILE -x -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob" "listings.at:1879"
( $at_check_trace; $COMPILE -x -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog-1.cob:14: warning: unreachable statement 'DISPLAY'
prog-2.cob: in paragraph 'MAIN':
prog-2.cob:16: warning: unreachable statement 'ACCEPT'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1879"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1884: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1884"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1884"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1885: diff expected.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1885"
( $at_check_trace; diff expected.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1885"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:1887: \$COMPILE_ONLY -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob" "listings.at:1887"
( $at_check_trace; $COMPILE_ONLY -Wunreachable -t prog.lst -Xref -tsymbols prog-1.cob prog-2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog-1.cob:14: warning: unreachable statement 'DISPLAY'
prog-2.cob: in paragraph 'MAIN':
prog-2.cob:16: warning: unreachable statement 'ACCEPT'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1887"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1892: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1892"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1892"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1893: diff expected.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1893"
( $at_check_trace; diff expected.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1893"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_423
#AT_START_424
at_fn_group_banner 424 'listings.at:1898' \
  "Wide listing" "                                   " 3
at_xfail=no
(
  $as_echo "424. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.                                       PROG001
       PROGRAM-ID.      prog.                                           PROG002
       DATA             DIVISION.                                       PROG003
       WORKING-STORAGE  SECTION.                                        PROG004
      /                                                                 PROG005
       PROCEDURE        DIVISION.                                       PROG006
           STOP RUN.                                                    PROG007
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1913: \$COMPILE_ONLY -T prog.lst prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -T prog.lst prog.cob" "listings.at:1913"
( $at_check_trace; $COMPILE_ONLY -T prog.lst 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/listings.at:1913"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog9.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog.cob                                                      DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................SEQUENCE

000001
000002         IDENTIFICATION   DIVISION.                                       PROG001
000003         PROGRAM-ID.      prog.                                           PROG002
000004         DATA             DIVISION.                                       PROG003
000005         WORKING-STORAGE  SECTION.                                        PROG004
GnuCOBOL V.R.P          prog.cob                                                      DDD MMM dd HH:MM:SS YYYY  Page 0002

LINE    PG/LN  A...B............................................................SEQUENCE

000006        /                                                                 PROG005
000007         PROCEDURE        DIVISION.                                       PROG006
000008             STOP RUN.                                                    PROG007


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1938: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1938"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1938"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1939: diff prog9.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1939"
( $at_check_trace; diff prog9.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1939"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

  IDENTIFICATION   DIVISION.
  PROGRAM-ID.      prog2.
  DATA             DIVISION.
  WORKING-STORAGE  SECTION.
  >> PAGE  page  feed  comment
  PROCEDURE        DIVISION.
 DISPLAY
 '3456&'.
  STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1953: \$COMPILE_ONLY -T prog.lst -free prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -T prog.lst -free prog2.cob" "listings.at:1953"
( $at_check_trace; $COMPILE_ONLY -T prog.lst -free prog2.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/listings.at:1953"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog10.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog2.cob                                                     DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    .....................................................SOURCE.....................................................

000001
000002    IDENTIFICATION   DIVISION.
000003    PROGRAM-ID.      prog2.
000004    DATA             DIVISION.
000005    WORKING-STORAGE  SECTION.
GnuCOBOL V.R.P          prog2.cob                                                     DDD MMM dd HH:MM:SS YYYY  Page 0002

LINE    .....................................................SOURCE.....................................................

000006    >> PAGE  page  feed  comment
000007    PROCEDURE        DIVISION.
000008   DISPLAY
000009   '3456&'.
000010    STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:1980: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:1980"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1980"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:1981: diff prog10.lst prog.lis"
at_fn_check_prepare_trace "listings.at:1981"
( $at_check_trace; diff prog10.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:1981"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_424
#AT_START_425
at_fn_group_banner 425 'listings.at:1986' \
  "Symbols: simple" "                                " 3
at_xfail=no
(
  $as_echo "425. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 WS-ONE    PIC 9(4) VALUE 37.
       01 WS-TWO    PIC A(4) VALUE 'HIGH'.
       01 WS-THREE  PIC X(4) VALUE 'BAR'.
       01 WS-FOUR            COMP-1 VALUE 37.
       01 WS-FIVE            COMP-2 VALUE 37.
       01 WS-SIX    PIC S999 COMP-3 VALUE -37.
       01 WS-SEVEN  PIC $$,$$$,$$9.99 VALUE ZERO.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2007: \$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -tsymbols prog.cob" "listings.at:2007"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -tsymbols 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/listings.at:2007"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog15.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         01 WS-ONE    PIC 9(4) VALUE 37.
000007         01 WS-TWO    PIC A(4) VALUE 'HIGH'.
000008         01 WS-THREE  PIC X(4) VALUE 'BAR'.
000009         01 WS-FOUR            COMP-1 VALUE 37.
000010         01 WS-FIVE            COMP-2 VALUE 37.
000011         01 WS-SIX    PIC S999 COMP-3 VALUE -37.
000012         01 WS-SEVEN  PIC $$,$$$,$$9.99 VALUE ZERO.
000013         PROCEDURE        DIVISION.
000014             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00004 NUMERIC        01   WS-ONE                         9(4)

00004 ALPHABETIC     01   WS-TWO                         A(4)

00004 ALPHANUMERIC   01   WS-THREE                       X(4)

00004 NUMERIC        01   WS-FOUR                        S9(7)V9(8) COMP-1

00008 NUMERIC        01   WS-FIVE                        S9(17)V9(17) COMP-2

00002 NUMERIC        01   WS-SIX                         S999 COMP-3

00013 NUMERIC        01   WS-SEVEN                       $$,$$$,$$9.99


_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2050: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:2050"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2050"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:2051: diff prog15.lst prog.lis"
at_fn_check_prepare_trace "listings.at:2051"
( $at_check_trace; diff prog15.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2051"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 WS-ONE    PIC 9(4).
       01 WS-TWO    PIC A(4).
       01 WS-THREE  PIC X(4).
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2065: \$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -fno-tsource -tsymbols prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -fno-tsource -tsymbols prog2.cob" "listings.at:2065"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -fno-tmessages -fno-tsource -tsymbols prog2.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/listings.at:2065"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog16.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog2.cob                  DDD MMM dd HH:MM:SS YYYY

SIZE  TYPE           LVL  NAME                           PICTURE

      LINKAGE SECTION

00004 NUMERIC        01   WS-ONE                         9(4)

00004 ALPHABETIC     01   WS-TWO                         A(4)

00004 ALPHANUMERIC   01   WS-THREE                       X(4)


_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2083: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:2083"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2083"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:2084: diff prog16.lst prog.lis"
at_fn_check_prepare_trace "listings.at:2084"
( $at_check_trace; diff prog16.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2084"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 WS-ONE    PIC 9(4) VALUE 37.
       01 WS-TWO    PIC A(4) VALUE 'HIGH'.
       01 WS-THREE  PIC X(4) VALUE 'BAR'.
       01 WS-FOUR            COMP-1 VALUE 37.
       01 WS-FIVE            COMP-2 VALUE 37.
       01 WS-SIX    PIC S999 COMP-3 VALUE -37.
       01 WS-SEVEN  PIC $$,$$$,$$9.99 VALUE ZERO.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2102: \$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.cob" "listings.at:2102"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.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/listings.at:2102"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog15-1.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog3.cob                  DDD MMM dd HH:MM:SS YYYY

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00004 NUMERIC        01   WS-ONE                         9(4)

00004 ALPHABETIC     01   WS-TWO                         A(4)

00004 ALPHANUMERIC   01   WS-THREE                       X(4)

00004 NUMERIC        01   WS-FOUR                        S9(7)V9(8) COMP-1

00008 NUMERIC        01   WS-FIVE                        S9(17)V9(17) COMP-2

00002 NUMERIC        01   WS-SIX                         S999 COMP-3

00013 NUMERIC        01   WS-SEVEN                       $$,$$$,$$9.99


_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2128: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:2128"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2128"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:2129: diff prog15-1.lst prog.lis"
at_fn_check_prepare_trace "listings.at:2129"
( $at_check_trace; diff prog15-1.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2129"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


# verify that the symbol listing is identical if full codegen was done
{ set +x
$as_echo "$at_srcdir/listings.at:2132: \$COMPILE -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.cob" "listings.at:2132"
( $at_check_trace; $COMPILE -t prog.lst -tlines=0 -fno-tsource -fno-tmessages -tsymbols prog3.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/listings.at:2132"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:2134: \$UNIFY_LISTING prog.lst compiled.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst compiled.lis" "listings.at:2134"
( $at_check_trace; $UNIFY_LISTING prog.lst compiled.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2134"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:2135: diff prog15-1.lst compiled.lis"
at_fn_check_prepare_trace "listings.at:2135"
( $at_check_trace; diff prog15-1.lst compiled.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2135"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_425
#AT_START_426
at_fn_group_banner 426 'listings.at:2140' \
  "Symbols: pointer" "                               " 3
at_xfail=no
(
  $as_echo "426. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  WS-Where           pic x(512).

       01  ws-mysql.
           02  ws-mysql-cid                        usage pointer.
           02  ws-mysql-result                     usage pointer.
           02  ws-mysql-result-2                   usage pointer.
           02  ws-mysql-result-3                   usage pointer.
           02  ws-mysql-count-rows                 pic s9(9) comp.
           02  ws-mysql-error-number               pic x(4).
           02  ws-mysql-error-message              pic x(80).
           02  ws-mysql-host-name                  pic x(64).
           02  ws-mysql-implementation             pic x(64).
           02  ws-mysql-password                   pic x(64).
           02  ws-mysql-base-name                  pic x(64).
           02  ws-mysql-port-number                pic x(4).
           02  ws-mysql-socket                     pic x(64).
           02  ws-mysql-command                    pic x(4096).

       01  ws-No-Paragraph pic 9(4).
       local-storage section.
       01  subscripts usage comp-5.
           12 J                    pic s9(4).
           12 K                    pic s9(4).
           12 L                    pic s9(4).

       SCREEN           SECTION.
       01  Display-Message-1 foreground-color 2.
           03  value "WS-Where=" line 23 col  1.
           03  from WS-Where (1:J) pic x(69) col 10.
       01  Display-Message-2 foreground-color 2.
           03  value "ST004 SQL Err No.=" line 4 col  1.
           03  using ws-mysql-error-number pic x(4) col 19.
           03  value " Para=" col 23.
           03  using WS-No-Paragraph pic 9(3) col 29.
           03  value " SQL Cmd=" col 32.
           03  using ws-mysql-command pic x(199) col 41.
           03  value "SQL Err Msg=" line 7 col  1.
           03  using ws-mysql-error-message pic x(67) col 13.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2192: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:2192"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols 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/listings.at:2192"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:2194: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:2194"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2194"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:2196: test \"\$COB_HAS_64_BIT_POINTER\" = \"yes\""
at_fn_check_prepare_dynamic "test \"$COB_HAS_64_BIT_POINTER\" = \"yes\"" "listings.at:2196"
( $at_check_trace; test "$COB_HAS_64_BIT_POINTER" = "yes"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2196"
if $at_failed; then :
  # Previous test "failed" --> 32 bit

cat >prog17-32.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         77  WS-Where           pic x(512).
000007
000008         01  ws-mysql.
000009             02  ws-mysql-cid                        usage pointer.
000010             02  ws-mysql-result                     usage pointer.
000011             02  ws-mysql-result-2                   usage pointer.
000012             02  ws-mysql-result-3                   usage pointer.
000013             02  ws-mysql-count-rows                 pic s9(9) comp.
000014             02  ws-mysql-error-number               pic x(4).
000015             02  ws-mysql-error-message              pic x(80).
000016             02  ws-mysql-host-name                  pic x(64).
000017             02  ws-mysql-implementation             pic x(64).
000018             02  ws-mysql-password                   pic x(64).
000019             02  ws-mysql-base-name                  pic x(64).
000020             02  ws-mysql-port-number                pic x(4).
000021             02  ws-mysql-socket                     pic x(64).
000022             02  ws-mysql-command                    pic x(4096).
000023
000024         01  ws-No-Paragraph pic 9(4).
000025         local-storage section.
000026         01  subscripts usage comp-5.
000027             12 J                    pic s9(4).
000028             12 K                    pic s9(4).
000029             12 L                    pic s9(4).
000030
000031         SCREEN           SECTION.
000032         01  Display-Message-1 foreground-color 2.
000033             03  value "WS-Where=" line 23 col  1.
000034             03  from WS-Where (1:J) pic x(69) col 10.
000035         01  Display-Message-2 foreground-color 2.
000036             03  value "ST004 SQL Err No.=" line 4 col  1.
000037             03  using ws-mysql-error-number pic x(4) col 19.
000038             03  value " Para=" col 23.
000039             03  using WS-No-Paragraph pic 9(3) col 29.
000040             03  value " SQL Cmd=" col 32.
000041             03  using ws-mysql-command pic x(199) col 41.
000042             03  value "SQL Err Msg=" line 7 col  1.
000043             03  using ws-mysql-error-message pic x(67) col 13.
000044         PROCEDURE        DIVISION.
000045             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00512 ALPHANUMERIC   77   WS-Where                       X(512)

04524 GROUP          01   ws-mysql
00004 POINTER        02   ws-mysql-cid
00004 POINTER        02   ws-mysql-result
00004 POINTER        02   ws-mysql-result-2
00004 POINTER        02   ws-mysql-result-3
00004 NUMERIC        02   ws-mysql-count-rows            S9(9) COMP
00004 ALPHANUMERIC   02   ws-mysql-error-number          X(4)
00080 ALPHANUMERIC   02   ws-mysql-error-message         X(80)
00064 ALPHANUMERIC   02   ws-mysql-host-name             X(64)
00064 ALPHANUMERIC   02   ws-mysql-implementation        X(64)
00064 ALPHANUMERIC   02   ws-mysql-password              X(64)
00064 ALPHANUMERIC   02   ws-mysql-base-name             X(64)
00004 ALPHANUMERIC   02   ws-mysql-port-number           X(4)
00064 ALPHANUMERIC   02   ws-mysql-socket                X(64)
04096 ALPHANUMERIC   02   ws-mysql-command               X(4096)

00004 NUMERIC        01   ws-No-Paragraph                9(4)

      LOCAL-STORAGE SECTION

00006 GROUP          01   subscripts
00002 NUMERIC        12   J                              S9(4) COMP-5
00002 NUMERIC        12   K                              S9(4) COMP-5
00002 NUMERIC        12   L                              S9(4) COMP-5

      SCREEN SECTION

00078 GROUP          01   Display-Message-1
00009 ALPHANUMERIC   03   FILLER                         X(9)
00069 ALPHANUMERIC   03   FILLER                         X(69)

00318 GROUP          01   Display-Message-2
00018 ALPHANUMERIC   03   FILLER                         X(18)
00004 ALPHANUMERIC   03   FILLER                         X(4)
00006 ALPHANUMERIC   03   FILLER                         X(6)
00003 NUMERIC        03   FILLER                         9(3)
00009 ALPHANUMERIC   03   FILLER                         X(9)
00199 ALPHANUMERIC   03   FILLER                         X(199)
00012 ALPHANUMERIC   03   FILLER                         X(12)
00067 ALPHANUMERIC   03   FILLER                         X(67)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2196: diff prog17-32.lst prog.lis"
at_fn_check_prepare_trace "listings.at:2196"
( $at_check_trace; diff prog17-32.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2196"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }



else
  # Previous test "passed" --> 64 bit

cat >prog17-64.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         77  WS-Where           pic x(512).
000007
000008         01  ws-mysql.
000009             02  ws-mysql-cid                        usage pointer.
000010             02  ws-mysql-result                     usage pointer.
000011             02  ws-mysql-result-2                   usage pointer.
000012             02  ws-mysql-result-3                   usage pointer.
000013             02  ws-mysql-count-rows                 pic s9(9) comp.
000014             02  ws-mysql-error-number               pic x(4).
000015             02  ws-mysql-error-message              pic x(80).
000016             02  ws-mysql-host-name                  pic x(64).
000017             02  ws-mysql-implementation             pic x(64).
000018             02  ws-mysql-password                   pic x(64).
000019             02  ws-mysql-base-name                  pic x(64).
000020             02  ws-mysql-port-number                pic x(4).
000021             02  ws-mysql-socket                     pic x(64).
000022             02  ws-mysql-command                    pic x(4096).
000023
000024         01  ws-No-Paragraph pic 9(4).
000025         local-storage section.
000026         01  subscripts usage comp-5.
000027             12 J                    pic s9(4).
000028             12 K                    pic s9(4).
000029             12 L                    pic s9(4).
000030
000031         SCREEN           SECTION.
000032         01  Display-Message-1 foreground-color 2.
000033             03  value "WS-Where=" line 23 col  1.
000034             03  from WS-Where (1:J) pic x(69) col 10.
000035         01  Display-Message-2 foreground-color 2.
000036             03  value "ST004 SQL Err No.=" line 4 col  1.
000037             03  using ws-mysql-error-number pic x(4) col 19.
000038             03  value " Para=" col 23.
000039             03  using WS-No-Paragraph pic 9(3) col 29.
000040             03  value " SQL Cmd=" col 32.
000041             03  using ws-mysql-command pic x(199) col 41.
000042             03  value "SQL Err Msg=" line 7 col  1.
000043             03  using ws-mysql-error-message pic x(67) col 13.
000044         PROCEDURE        DIVISION.
000045             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00512 ALPHANUMERIC   77   WS-Where                       X(512)

04540 GROUP          01   ws-mysql
00008 POINTER        02   ws-mysql-cid
00008 POINTER        02   ws-mysql-result
00008 POINTER        02   ws-mysql-result-2
00008 POINTER        02   ws-mysql-result-3
00004 NUMERIC        02   ws-mysql-count-rows            S9(9) COMP
00004 ALPHANUMERIC   02   ws-mysql-error-number          X(4)
00080 ALPHANUMERIC   02   ws-mysql-error-message         X(80)
00064 ALPHANUMERIC   02   ws-mysql-host-name             X(64)
00064 ALPHANUMERIC   02   ws-mysql-implementation        X(64)
00064 ALPHANUMERIC   02   ws-mysql-password              X(64)
00064 ALPHANUMERIC   02   ws-mysql-base-name             X(64)
00004 ALPHANUMERIC   02   ws-mysql-port-number           X(4)
00064 ALPHANUMERIC   02   ws-mysql-socket                X(64)
04096 ALPHANUMERIC   02   ws-mysql-command               X(4096)

00004 NUMERIC        01   ws-No-Paragraph                9(4)

      LOCAL-STORAGE SECTION

00006 GROUP          01   subscripts
00002 NUMERIC        12   J                              S9(4) COMP-5
00002 NUMERIC        12   K                              S9(4) COMP-5
00002 NUMERIC        12   L                              S9(4) COMP-5

      SCREEN SECTION

00078 GROUP          01   Display-Message-1
00009 ALPHANUMERIC   03   FILLER                         X(9)
00069 ALPHANUMERIC   03   FILLER                         X(69)

00318 GROUP          01   Display-Message-2
00018 ALPHANUMERIC   03   FILLER                         X(18)
00004 ALPHANUMERIC   03   FILLER                         X(4)
00006 ALPHANUMERIC   03   FILLER                         X(6)
00003 NUMERIC        03   FILLER                         9(3)
00009 ALPHANUMERIC   03   FILLER                         X(9)
00199 ALPHANUMERIC   03   FILLER                         X(199)
00012 ALPHANUMERIC   03   FILLER                         X(12)
00067 ALPHANUMERIC   03   FILLER                         X(67)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2196: diff prog17-64.lst prog.lis"
at_fn_check_prepare_trace "listings.at:2196"
( $at_check_trace; diff prog17-64.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2196"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }



fi
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_426
#AT_START_427
at_fn_group_banner 427 'listings.at:2420' \
  "Symbols: multiple programs/functions" "           " 3
at_xfail=no
(
  $as_echo "427. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       FUNCTION-ID.     WITHPAR.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 PAR-IN        PIC 9.
       01 PAR-OUT       PIC 9.
       PROCEDURE DIVISION USING PAR-IN RETURNING PAR-OUT.
           ADD 1 TO PAR-IN GIVING PAR-OUT END-ADD.
           GOBACK.
       END FUNCTION WITHPAR.

       IDENTIFICATION   DIVISION.
       FUNCTION-ID.     WITHOUTPAR.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 PAR           PIC 9.
       PROCEDURE DIVISION RETURNING PAR.
           MOVE 1 TO PAR.
           GOBACK.
       END FUNCTION WITHOUTPAR.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       REPOSITORY.
           FUNCTION     WITHPAR
           FUNCTION     WITHOUTPAR.
       PROCEDURE        DIVISION.
           IF WITHPAR(1) NOT = 2
              DISPLAY WITHPAR(1)
              END-DISPLAY
           END-IF.
           IF WITHOUTPAR NOT = 1
              DISPLAY WITHOUTPAR
              END-DISPLAY
           END-IF.
           STOP RUN.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2467: \$COMPILE_ONLY -t prog.lst -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tsymbols prog.cob" "listings.at:2467"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tsymbols 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/listings.at:2467"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog18.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         FUNCTION-ID.     WITHPAR.
000004         DATA             DIVISION.
000005         LINKAGE          SECTION.
000006         01 PAR-IN        PIC 9.
000007         01 PAR-OUT       PIC 9.
000008         PROCEDURE DIVISION USING PAR-IN RETURNING PAR-OUT.
000009             ADD 1 TO PAR-IN GIVING PAR-OUT END-ADD.
000010             GOBACK.
000011         END FUNCTION WITHPAR.
000012
000013         IDENTIFICATION   DIVISION.
000014         FUNCTION-ID.     WITHOUTPAR.
000015         DATA             DIVISION.
000016         LINKAGE          SECTION.
000017         01 PAR           PIC 9.
000018         PROCEDURE DIVISION RETURNING PAR.
000019             MOVE 1 TO PAR.
000020             GOBACK.
000021         END FUNCTION WITHOUTPAR.
000022
000023         IDENTIFICATION   DIVISION.
000024         PROGRAM-ID.      prog.
000025         ENVIRONMENT      DIVISION.
000026         CONFIGURATION    SECTION.
000027         REPOSITORY.
000028             FUNCTION     WITHPAR
000029             FUNCTION     WITHOUTPAR.
000030         PROCEDURE        DIVISION.
000031             IF WITHPAR(1) NOT = 2
000032                DISPLAY WITHPAR(1)
000033                END-DISPLAY
000034             END-IF.
000035             IF WITHOUTPAR NOT = 1
000036                DISPLAY WITHOUTPAR
000037                END-DISPLAY
000038             END-IF.
000039             STOP RUN.
000040         END PROGRAM prog.
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002

SIZE  TYPE           LVL  NAME                           PICTURE

      FUNCTION            WITHPAR

      LINKAGE SECTION

00001 NUMERIC        01   PAR-IN                         9

00001 NUMERIC        01   PAR-OUT                        9

      FUNCTION            WITHOUTPAR

      LINKAGE SECTION

00001 NUMERIC        01   PAR                            9

      PROGRAM             prog

      No fields defined.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2541: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:2541"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2541"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:2542: diff prog18.lst prog.lis"
at_fn_check_prepare_trace "listings.at:2542"
( $at_check_trace; diff prog18.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2542"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_427
#AT_START_428
at_fn_group_banner 428 'listings.at:2547' \
  "Symbols: OCCURS/REDEFINES" "                      " 3
at_xfail=no
(
  $as_echo "428. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       78  I   VALUE 20.
       78  J   VALUE 5000.
       78  M   VALUE 5.
       01  SETUP-REC.
           05  FL1       PIC X(04).
           05  FL2       PIC ZZZZZ.
           05  FL3       PIC 9(04).
           05  FL4       PIC 9(08) COMP.
           05  FL5       PIC 9(04) COMP-4.
           05  FL6       PIC Z,ZZZ.99.
           05  FL7       PIC S9(05) SIGN LEADING SEPARATE.
           05  FL8       PIC X(04).
           05  FL9 REDEFINES FL8 PIC 9(04).
           05  FLA.
               10  FLB OCCURS I TIMES.
                   15  FLC PIC X(02).
               10  FLD   PIC X(20).
           05  FLD1      PIC X(100).
           05  FLD2 OCCURS M TO J TIMES DEPENDING ON FL5.
               10  FILLER PIC X(01).
           05  FLD3      PIC X(3).
           05  FLD4      PIC X(4).
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2585: \$COMPILE_ONLY -fcomplex-odo -t prog.lst -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fcomplex-odo -t prog.lst -tsymbols prog.cob" "listings.at:2585"
( $at_check_trace; $COMPILE_ONLY -fcomplex-odo -t prog.lst -tsymbols 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/listings.at:2585"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog19.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         ENVIRONMENT DIVISION.
000005         CONFIGURATION SECTION.
000006         DATA             DIVISION.
000007         WORKING-STORAGE  SECTION.
000008         78  I   VALUE 20.
000009         78  J   VALUE 5000.
000010         78  M   VALUE 5.
000011         01  SETUP-REC.
000012             05  FL1       PIC X(04).
000013             05  FL2       PIC ZZZZZ.
000014             05  FL3       PIC 9(04).
000015             05  FL4       PIC 9(08) COMP.
000016             05  FL5       PIC 9(04) COMP-4.
000017             05  FL6       PIC Z,ZZZ.99.
000018             05  FL7       PIC S9(05) SIGN LEADING SEPARATE.
000019             05  FL8       PIC X(04).
000020             05  FL9 REDEFINES FL8 PIC 9(04).
000021             05  FLA.
000022                 10  FLB OCCURS I TIMES.
000023                     15  FLC PIC X(02).
000024                 10  FLD   PIC X(20).
000025             05  FLD1      PIC X(100).
000026             05  FLD2 OCCURS M TO J TIMES DEPENDING ON FL5.
000027                 10  FILLER PIC X(01).
000028             05  FLD3      PIC X(3).
000029             05  FLD4      PIC X(4).
000030         PROCEDURE        DIVISION.
000031             STOP RUN.
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

05204 GROUP          01   SETUP-REC
00004 ALPHANUMERIC   05   FL1                            X(04)
00005 NUMERIC        05   FL2                            ZZZZZ
00004 NUMERIC        05   FL3                            9(04)
00004 NUMERIC        05   FL4                            9(08) COMP
00002 NUMERIC        05   FL5                            9(04) COMP
00008 NUMERIC        05   FL6                            Z,ZZZ.99
00006 NUMERIC        05   FL7                            S9(05)
00004 ALPHANUMERIC   05   FL8                            X(04)
00004 NUMERIC        05   FL9                            9(04), REDEFINES FL8
00060 GROUP          05   FLA
00040 GROUP          10   FLB                            OCCURS 20
00002 ALPHANUMERIC   15   FLC                            X(02)
00020 ALPHANUMERIC   10   FLD                            X(20)
00100 ALPHANUMERIC   05   FLD1                           X(100)
05000 GROUP          05   FLD2                           OCCURS 5 TO 5000
00001 ALPHANUMERIC   10   FILLER                         X(01)
00003 ALPHANUMERIC   05   FLD3                           X(3)
00004 ALPHANUMERIC   05   FLD4                           X(4)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2654: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:2654"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2654"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:2655: diff prog19.lst prog.lis"
at_fn_check_prepare_trace "listings.at:2655"
( $at_check_trace; diff prog19.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2655"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_428
#AT_START_429
at_fn_group_banner 429 'listings.at:2660' \
  "Conditional compilation" "                        " 3
at_xfail=no
(
  $as_echo "429. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       >>IF ACTIVATE DEFINED
           DISPLAY "NOTOK" NO ADVANCING
           END-DISPLAY
       >>ELIF ACTIVATE2 DEFINED
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY
       >>ELSE
           DISPLAY "NOTOK" NO ADVANCING
           END-DISPLAY
       >>END-IF
           STOP RUN.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
      $IF ACTIVATE DEFINED
           DISPLAY "NOTOK" NO ADVANCING
           END-DISPLAY
      $ELIF ACTIVATE2 DEFINED
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY
      $ELSE
           DISPLAY "NOTOK" NO ADVANCING
           END-DISPLAY
      $END
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2702: \$COMPILE_ONLY -DACTIVATE2 -t prog.lst prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -DACTIVATE2 -t prog.lst prog.cob" "listings.at:2702"
( $at_check_trace; $COMPILE_ONLY -DACTIVATE2 -t prog.lst 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/listings.at:2702"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog16.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         PROCEDURE        DIVISION.
000007         >>IF ACTIVATE DEFINED
000008X            DISPLAY "NOTOK" NO ADVANCING
000009X            END-DISPLAY
000010         >>ELIF ACTIVATE2 DEFINED
000011             DISPLAY "OK" NO ADVANCING
000012             END-DISPLAY
000013         >>ELSE
000014X            DISPLAY "NOTOK" NO ADVANCING
000015X            END-DISPLAY
000016         >>END-IF
000017             STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2732: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:2732"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2732"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:2733: diff prog16.lst prog.lis"
at_fn_check_prepare_trace "listings.at:2733"
( $at_check_trace; diff prog16.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2733"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:2735: \$COMPILE_ONLY -DACTIVATE2 -t prog.lst prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -DACTIVATE2 -t prog.lst prog2.cob" "listings.at:2735"
( $at_check_trace; $COMPILE_ONLY -DACTIVATE2 -t prog.lst prog2.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/listings.at:2735"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog16b.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog2.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog2.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         PROCEDURE        DIVISION.
000007        $IF ACTIVATE DEFINED
000008X            DISPLAY "NOTOK" NO ADVANCING
000009X            END-DISPLAY
000010        $ELIF ACTIVATE2 DEFINED
000011             DISPLAY "OK" NO ADVANCING
000012             END-DISPLAY
000013        $ELSE
000014X            DISPLAY "NOTOK" NO ADVANCING
000015X            END-DISPLAY
000016        $END
000017             STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2765: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:2765"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2765"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:2766: diff prog16b.lst prog.lis"
at_fn_check_prepare_trace "listings.at:2766"
( $at_check_trace; diff prog16b.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:2766"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_429
#AT_START_430
at_fn_group_banner 430 'listings.at:2771' \
  "File descriptions" "                              " 3
at_xfail=no
(
  $as_echo "430. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT OLD-VERSION  ASSIGN TO "SYSUT1"
                               ORGANIZATION LINE SEQUENTIAL.
           SELECT NEW-VERSION  ASSIGN TO "SYSUT2"
                               ORGANIZATION LINE SEQUENTIAL.
           SELECT PRT-VERSION  ASSIGN TO "SYSUT2"
                               ORGANIZATION LINE SEQUENTIAL.
           SELECT MODIFICATION ASSIGN TO "SYSIN1"
                               ORGANIZATION LINE SEQUENTIAL.
           SELECT COMMENTARY   ASSIGN TO "SYSOU1"
                               ORGANIZATION LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.

       FD  OLD-VERSION
           LABEL RECORDS ARE STANDARD
           BLOCK CONTAINS 80 CHARACTERS
           DATA RECORD IS OLD-RECORD.

       01  OLD-RECORD.
           02 OLD-STATEMENT       PICTURE X(75).
           02 OLD-NUMBER          PICTURE X(5).

       FD  NEW-VERSION
           LABEL RECORDS ARE STANDARD
           BLOCK CONTAINS 80 CHARACTERS
           DATA RECORD IS NEW-RECORD.

       01  NEW-RECORD.
           02 NEW-STATEMENT       PICTURE X(75).
           02 NEW-NUMBER          PICTURE X(5).

       FD  MODIFICATION
           LABEL RECORDS ARE OMITTED
           BLOCK CONTAINS 80 CHARACTERS
           DATA RECORD IS UPDATE-ORDER.

       01  UPDATE-ORDER.
           02 INSERTION.
              03 COMMAND          PICTURE X(6).
                 88 ENDJOB        VALUE "ENDJOB".
                 88 ENDSET        VALUE "ENDSET".
                 88 REMOVE        VALUE "REMOVE".
                 88 ADDNEW        VALUE "INSERT".
                 88 CHANGE        VALUE "CHANGE".
                 88 DISPLY        VALUE "DISPLY".
              03 FILLER           PICTURE X.
              03 A-FIELD          PICTURE 9(5).
              03 A-ALPHA REDEFINES A-FIELD    PICTURE X(5).
                 88 A-BLANK       VALUE SPACES.
              03 FILLER           PICTURE X(4).
              03 B-FIELD          PICTURE 9(5).
              03 B-ALPHA REDEFINES B-FIELD    PICTURE X(5).
                 88 B-BLANK       VALUE SPACES.
              03 FILLER           PICTURE X(54).
           02 FILLER              PICTURE X(5).

       FD  COMMENTARY
           LABEL RECORDS ARE OMITTED
           BLOCK CONTAINS 82 CHARACTERS
           DATA RECORD IS COMMENT-LINE.

       01  COMMENT-LINE.
           02 FILLER              PICTURE X(82).

       WORKING-STORAGE  SECTION.

       01  HEADINGS-LINE.
           02 FILLER              PICTURE X(15) VALUE "EDITOR VERSION".
           02 FILLER              PICTURE X(20) VALUE "1.1 - 206/72".
           02 PHASE               PICTURE X(17) VALUE "UPDATING AS OF".
           02 MONTH-RUN           PICTURE XX.
           02 FILLER              PICTURE X VALUE "/".
           02 DAY-RUN             PICTURE XX.
           02 FILLER              PICTURE X VALUE "/".
           02 YEAR-RUN            PICTURE XX.
           02 FILLER              PICTURE X(8) VALUE SPACES.
           02 FILLER              PICTURE X(8) VALUE "  PAGE: ".
           02 PAGE-NUMBER         PICTURE 9(4) VALUE 0.

       01  COMMAND-LISTING.
           02 FILLER              PICTURE X(2) VALUE SPACES.
           02 COMMAND-IMAGE       PICTURE X(80).

       01  ACTIVITIES-LISTING.
           02 DISPOSITION         PICTURE X(2).
           02 ACTIVE-IMAGE        PICTURE X(80).

       01  UPSI-BYTE.
           02 UPSI-BIT OCCURS 8 TIMES  PICTURE X.

       01  MESSAGE-LOG.
           02 FILLER              PICTURE X(2) VALUE SPACES.
           02 MESSAGE-TEXT        PICTURE X(80).

       01  DISPLAY-MESSAGE.
           02 FILLER              PICTURE X(2) VALUE SPACES.
           02 DISPLAY-TEMP        PICTURE X(6).
           02 FILLER              PICTURE X(2) VALUE SPACES.
           02 DISPLAY-TEXT        PICTURE X(60).

       PROCEDURE DIVISION.
           OPEN INPUT OLD-VERSION, MODIFICATION,
                OUTPUT NEW-VERSION, COMMENTARY.
           CLOSE OLD-VERSION, NEW-VERSION, MODIFICATION, COMMENTARY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:2889: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:2889"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:21: warning: LABEL RECORDS is obsolete in GnuCOBOL
prog.cob:23: warning: DATA RECORDS is obsolete in GnuCOBOL
prog.cob:30: warning: LABEL RECORDS is obsolete in GnuCOBOL
prog.cob:32: warning: DATA RECORDS is obsolete in GnuCOBOL
prog.cob:39: warning: LABEL RECORDS is obsolete in GnuCOBOL
prog.cob:41: warning: DATA RECORDS is obsolete in GnuCOBOL
prog.cob:64: warning: LABEL RECORDS is obsolete in GnuCOBOL
prog.cob:66: warning: DATA RECORDS is obsolete in GnuCOBOL
prog.cob:11: error: missing file description for FILE PRT-VERSION
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/listings.at:2889"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }



cat >prog18.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION DIVISION.
000003         PROGRAM-ID. prog.
000004         ENVIRONMENT DIVISION.
000005         INPUT-OUTPUT SECTION.
000006         FILE-CONTROL.
000007             SELECT OLD-VERSION  ASSIGN TO "SYSUT1"
000008                                 ORGANIZATION LINE SEQUENTIAL.
000009             SELECT NEW-VERSION  ASSIGN TO "SYSUT2"
000010                                 ORGANIZATION LINE SEQUENTIAL.
000011             SELECT PRT-VERSION  ASSIGN TO "SYSUT2"
error: missing file description for FILE PRT-VERSION
000012                                 ORGANIZATION LINE SEQUENTIAL.
000013             SELECT MODIFICATION ASSIGN TO "SYSIN1"
000014                                 ORGANIZATION LINE SEQUENTIAL.
000015             SELECT COMMENTARY   ASSIGN TO "SYSOU1"
000016                                 ORGANIZATION LINE SEQUENTIAL.
000017         DATA DIVISION.
000018         FILE SECTION.
000019
000020         FD  OLD-VERSION
000021             LABEL RECORDS ARE STANDARD
warning: LABEL RECORDS is obsolete in GnuCOBOL
000022             BLOCK CONTAINS 80 CHARACTERS
000023             DATA RECORD IS OLD-RECORD.
warning: DATA RECORDS is obsolete in GnuCOBOL
000024
000025         01  OLD-RECORD.
000026             02 OLD-STATEMENT       PICTURE X(75).
000027             02 OLD-NUMBER          PICTURE X(5).
000028
000029         FD  NEW-VERSION
000030             LABEL RECORDS ARE STANDARD
warning: LABEL RECORDS is obsolete in GnuCOBOL
000031             BLOCK CONTAINS 80 CHARACTERS
000032             DATA RECORD IS NEW-RECORD.
warning: DATA RECORDS is obsolete in GnuCOBOL
000033
000034         01  NEW-RECORD.
000035             02 NEW-STATEMENT       PICTURE X(75).
000036             02 NEW-NUMBER          PICTURE X(5).
000037
000038         FD  MODIFICATION
000039             LABEL RECORDS ARE OMITTED
warning: LABEL RECORDS is obsolete in GnuCOBOL
000040             BLOCK CONTAINS 80 CHARACTERS
000041             DATA RECORD IS UPDATE-ORDER.
warning: DATA RECORDS is obsolete in GnuCOBOL
000042
000043         01  UPDATE-ORDER.
000044             02 INSERTION.
000045                03 COMMAND          PICTURE X(6).
000046                   88 ENDJOB        VALUE "ENDJOB".
000047                   88 ENDSET        VALUE "ENDSET".
000048                   88 REMOVE        VALUE "REMOVE".
000049                   88 ADDNEW        VALUE "INSERT".
000050                   88 CHANGE        VALUE "CHANGE".
000051                   88 DISPLY        VALUE "DISPLY".
000052                03 FILLER           PICTURE X.
000053                03 A-FIELD          PICTURE 9(5).
000054                03 A-ALPHA REDEFINES A-FIELD    PICTURE X(5).
000055                   88 A-BLANK       VALUE SPACES.
000056                03 FILLER           PICTURE X(4).
000057                03 B-FIELD          PICTURE 9(5).
000058                03 B-ALPHA REDEFINES B-FIELD    PICTURE X(5).
000059                   88 B-BLANK       VALUE SPACES.
000060                03 FILLER           PICTURE X(54).
000061             02 FILLER              PICTURE X(5).
000062
000063         FD  COMMENTARY
000064             LABEL RECORDS ARE OMITTED
warning: LABEL RECORDS is obsolete in GnuCOBOL
000065             BLOCK CONTAINS 82 CHARACTERS
000066             DATA RECORD IS COMMENT-LINE.
warning: DATA RECORDS is obsolete in GnuCOBOL
000067
000068         01  COMMENT-LINE.
000069             02 FILLER              PICTURE X(82).
000070
000071         WORKING-STORAGE  SECTION.
000072
000073         01  HEADINGS-LINE.
000074             02 FILLER              PICTURE X(15) VALUE "EDITOR VERSION".
000075             02 FILLER              PICTURE X(20) VALUE "1.1 - 206/72".
000076             02 PHASE               PICTURE X(17) VALUE "UPDATING AS OF".
000077             02 MONTH-RUN           PICTURE XX.
000078             02 FILLER              PICTURE X VALUE "/".
000079             02 DAY-RUN             PICTURE XX.
000080             02 FILLER              PICTURE X VALUE "/".
000081             02 YEAR-RUN            PICTURE XX.
000082             02 FILLER              PICTURE X(8) VALUE SPACES.
000083             02 FILLER              PICTURE X(8) VALUE "  PAGE: ".
000084             02 PAGE-NUMBER         PICTURE 9(4) VALUE 0.
000085
000086         01  COMMAND-LISTING.
000087             02 FILLER              PICTURE X(2) VALUE SPACES.
000088             02 COMMAND-IMAGE       PICTURE X(80).
000089
000090         01  ACTIVITIES-LISTING.
000091             02 DISPOSITION         PICTURE X(2).
000092             02 ACTIVE-IMAGE        PICTURE X(80).
000093
000094         01  UPSI-BYTE.
000095             02 UPSI-BIT OCCURS 8 TIMES  PICTURE X.
000096
000097         01  MESSAGE-LOG.
000098             02 FILLER              PICTURE X(2) VALUE SPACES.
000099             02 MESSAGE-TEXT        PICTURE X(80).
000100
000101         01  DISPLAY-MESSAGE.
000102             02 FILLER              PICTURE X(2) VALUE SPACES.
000103             02 DISPLAY-TEMP        PICTURE X(6).
000104             02 FILLER              PICTURE X(2) VALUE SPACES.
000105             02 DISPLAY-TEXT        PICTURE X(60).
000106
000107         PROCEDURE DIVISION.
000108             OPEN INPUT OLD-VERSION, MODIFICATION,
000109                  OUTPUT NEW-VERSION, COMMENTARY.
000110             CLOSE OLD-VERSION, NEW-VERSION, MODIFICATION, COMMENTARY.
000111             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

00080 FILE                OLD-VERSION
00080 GROUP          01   OLD-RECORD
00075 ALPHANUMERIC   02   OLD-STATEMENT                  X(75)
00005 ALPHANUMERIC   02   OLD-NUMBER                     X(5)

00080 FILE                NEW-VERSION
00080 GROUP          01   NEW-RECORD
00075 ALPHANUMERIC   02   NEW-STATEMENT                  X(75)
00005 ALPHANUMERIC   02   NEW-NUMBER                     X(5)

00032 FILE                PRT-VERSION

00080 FILE                MODIFICATION
00080 GROUP          01   UPDATE-ORDER
00075 GROUP          02   INSERTION
00006 ALPHANUMERIC   03   COMMAND                        X(6)
      CONDITIONAL    88   ENDJOB
      CONDITIONAL    88   ENDSET
      CONDITIONAL    88   REMOVE
      CONDITIONAL    88   ADDNEW
      CONDITIONAL    88   CHANGE
      CONDITIONAL    88   DISPLY
00001 ALPHANUMERIC   03   FILLER                         X
00005 NUMERIC        03   A-FIELD                        9(5)
00005 ALPHANUMERIC   03   A-ALPHA                        X(5), REDEFINES A-FIELD
      CONDITIONAL    88   A-BLANK
00004 ALPHANUMERIC   03   FILLER                         X(4)
00005 NUMERIC        03   B-FIELD                        9(5)
00005 ALPHANUMERIC   03   B-ALPHA                        X(5), REDEFINES B-FIELD
      CONDITIONAL    88   B-BLANK
00054 ALPHANUMERIC   03   FILLER                         X(54)
00005 ALPHANUMERIC   02   FILLER                         X(5)

00082 FILE                COMMENTARY
00082 GROUP          01   COMMENT-LINE
00082 ALPHANUMERIC   02   FILLER                         X(82)

      WORKING-STORAGE SECTION

00080 GROUP          01   HEADINGS-LINE
00015 ALPHANUMERIC   02   FILLER                         X(15)
00020 ALPHANUMERIC   02   FILLER                         X(20)
00017 ALPHANUMERIC   02   PHASE                          X(17)
00002 ALPHANUMERIC   02   MONTH-RUN                      XX
00001 ALPHANUMERIC   02   FILLER                         X
00002 ALPHANUMERIC   02   DAY-RUN                        XX
00001 ALPHANUMERIC   02   FILLER                         X
00002 ALPHANUMERIC   02   YEAR-RUN                       XX
00008 ALPHANUMERIC   02   FILLER                         X(8)
00008 ALPHANUMERIC   02   FILLER                         X(8)
00004 NUMERIC        02   PAGE-NUMBER                    9(4)

00082 GROUP          01   COMMAND-LISTING
00002 ALPHANUMERIC   02   FILLER                         X(2)
00080 ALPHANUMERIC   02   COMMAND-IMAGE                  X(80)

00082 GROUP          01   ACTIVITIES-LISTING
00002 ALPHANUMERIC   02   DISPOSITION                    X(2)
00080 ALPHANUMERIC   02   ACTIVE-IMAGE                   X(80)

00008 GROUP          01   UPSI-BYTE
00001 ALPHANUMERIC   02   UPSI-BIT                       X, OCCURS 8

00082 GROUP          01   MESSAGE-LOG
00002 ALPHANUMERIC   02   FILLER                         X(2)
00080 ALPHANUMERIC   02   MESSAGE-TEXT                   X(80)

00070 GROUP          01   DISPLAY-MESSAGE
00002 ALPHANUMERIC   02   FILLER                         X(2)
00006 ALPHANUMERIC   02   DISPLAY-TEMP                   X(6)
00002 ALPHANUMERIC   02   FILLER                         X(2)
00060 ALPHANUMERIC   02   DISPLAY-TEXT                   X(60)



Error/Warning summary:

prog.cob:11: error: missing file description for FILE PRT-VERSION
prog.cob:21: warning: LABEL RECORDS is obsolete in GnuCOBOL
prog.cob:23: warning: DATA RECORDS is obsolete in GnuCOBOL
prog.cob:30: warning: LABEL RECORDS is obsolete in GnuCOBOL
prog.cob:32: warning: DATA RECORDS is obsolete in GnuCOBOL
prog.cob:39: warning: LABEL RECORDS is obsolete in GnuCOBOL
prog.cob:41: warning: DATA RECORDS is obsolete in GnuCOBOL
prog.cob:64: warning: LABEL RECORDS is obsolete in GnuCOBOL
prog.cob:66: warning: DATA RECORDS is obsolete in GnuCOBOL

8 warnings in compilation group
1 error in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3121: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:3121"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3121"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:3122: diff prog18.lst prog.lis"
at_fn_check_prepare_trace "listings.at:3122"
( $at_check_trace; diff prog18.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3122"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_430
#AT_START_431
at_fn_group_banner 431 'listings.at:3127' \
  "Invalid PICTURE strings" "                        " 3
at_xfail=no
(
  $as_echo "431. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  empty-pic PIC.
       01  too-long-pic PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
       01  too-long-pic2 PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
       01  multiple-symbols.
           03  PIC 9CRCR.
           03  PIC 9DBDB.
           03  PIC SS99S.
           03  PIC 99..9.
           03  PIC 99VV9.
           03  PIC +$99+.
           03  PIC $+99$-.
       01  non-symbols.
           03  PIC 9K.
           03  PIC 999C.
           03  PIC 999D.
       01  too-many-digits PIC 9(50).
       01  too-long-number-in-parens PIC 9(11111111111111).
       01  nested-parens PIC 9((100)).
       01  unbalanced-parens PIC 9(.
       01  multiple-pairs-of-parens PIC 9(5)(3).
       01  no-digit-in-parens PIC 9().
       01  mutually-exclusive-symbols.
           03  PIC P(3)9.9.
           03  PIC 9V.9.
           03  PIC Z*.
           03  PIC +(5)--.
           03  PIC $(4)Z(9).
           03  PIC $$B*(4).
           03  PIC NX.
           03  PIC AN.
           03  PIC AZ(3).
           03  PIC 99.99XXXXX.
           03  PIC SA.
           03  PIC $$$B+++B---.
           03  PIC +++9+.
           03  PIC +9(5)CR.
           03  PIC -9(5)DB.
       01 non-rightmost-leftmost-symbols.
           03  PIC BBB+BB99.
           03  PIC 99-B.
           03  PIC 9CRB.
           03  PIC DB9(5).
           03  PIC 99$$$.
           03  PIC 99$B.
           03  PIC 0$99.
           03  PIC PPPVP9.
       01  missing-symbols.
           03  PIC B(5).
           03  PIC +.
           03  PIC $.

       01  str-constant CONSTANT "hello".
       01  float-constant CONSTANT 1.0.
       01  signed-constant CONSTANT -1.
       01  invalid-constant.
           03  PIC X(str-constant).
           03  PIC X(float-constant).
           03  PIC X(signed-constant).
           03  PIC X(unseen-constant).

       01  integer-constant CONSTANT 5.
       01  valid-pics.
           03  PIC VP9B.
           03  PIC B9P(3).
           03  PIC B$$$.
           03  PIC 0000+B0+++0B,+.
           03  PIC +(5)P(3).
           03  PIC ++.++.
           03  PIC $(integer-constant).
           03  PIC $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      -(integer-constant).   *> CHECKME: should this be really valid?


       01  PC-COLOR-BACKGROUND-TABLE.
           05  BIT-BACKGROUND-BLACK      PIC 1(8) BIT VALUE B"00000000".
           05  BIT-BACKGROUND-BLUE       PIC 1(8) BIT VALUE B"00010000".
           05  BIT-BACKGROUND-GREEN      PIC 1(8) BIT VALUE B"00100000".
           05  BIT-BACKGROUND-CYAN       PIC 1(8) BIT VALUE B"00110000".
           05  BIT-BACKGROUND-RED        PIC 1(8) BIT VALUE B"01000000".
           05  BIT-BACKGROUND-MAGENTA    PIC 1(8) BIT VALUE B"01010000".
           05  BIT-BACKGROUND-BROWN      PIC 1(8) BIT VALUE B"01100000".
           05  BIT-BACKGROUND-LIGHT-GRAY PIC 1(8) BIT VALUE B"01110000".
       01  FILLER REDEFINES PC-COLOR-BACKGROUND-TABLE.
           05  COLOR-BACKGROUND
               OCCURS 8 TIMES            PIC 1(8) BIT.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3230: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols -Wno-pending -Wno-unfinished -fword-continuation=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols -Wno-pending -Wno-unfinished -fword-continuation=ok prog.cob" "listings.at:3230"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols -Wno-pending -Wno-unfinished -fword-continuation=ok 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: missing PICTURE string
prog.cob:10: error: PICTURE string may not contain more than 255 characters; contains 301 characters
prog.cob:16: error: CR or DB may only occur once in a PICTURE string
prog.cob:17: error: CR or DB may only occur once in a PICTURE string
prog.cob:18: error: S may only occur once in a PICTURE string
prog.cob:18: error: S must be at start of PICTURE string
prog.cob:19: error: . may only occur once in a PICTURE string
prog.cob:20: error: V may only occur once in a PICTURE string
prog.cob:21: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:22: error: a leading +/- sign cannot follow a leading currency symbol
prog.cob:22: error: a trailing currency symbol cannot follow a leading currency symbol
prog.cob:22: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:24: error: invalid PICTURE character 'K'
prog.cob:25: error: C must be followed by R
prog.cob:26: error: D must be followed by B
prog.cob:27: error: numeric field cannot be larger than 38 digits
prog.cob:28: error: only up to 9 significant digits are permitted within parentheses
prog.cob:29: error: parentheses must be preceded by a picture symbol
prog.cob:30: error: unbalanced parentheses
prog.cob:31: error: parentheses must be preceded by a picture symbol
prog.cob:32: error: parentheses must contain an unsigned integer
prog.cob:34: error: . cannot follow a P which is after the decimal point
prog.cob:35: error: . cannot follow V
prog.cob:36: error: cannot have both Z and * in PICTURE string
prog.cob:37: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
prog.cob:37: error: a trailing +/- sign may only occur once in a PICTURE string
prog.cob:38: error: a Z or * which is before the decimal point cannot follow a floating currency symbol string which is before the decimal point
prog.cob:39: error: a Z or * which is before the decimal point cannot follow a floating currency symbol string which is before the decimal point
prog.cob:40: error: A or X cannot follow N
prog.cob:41: error: N cannot follow A or X
prog.cob:42: error: a Z or * which is before the decimal point cannot follow A or X
prog.cob:43: error: A or X cannot follow .
prog.cob:44: error: A or X cannot follow S
prog.cob:45: error: a leading +/- sign cannot follow B, 0 or /
prog.cob:45: error: a leading +/- sign cannot follow a floating currency symbol string which is before the decimal point
prog.cob:45: error: a leading +/- sign may only occur once in a PICTURE string
prog.cob:45: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:45: error: a trailing +/- sign may only occur once in a PICTURE string
prog.cob:46: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
prog.cob:47: error: CR or DB cannot follow a leading +/- sign
prog.cob:48: error: CR or DB cannot follow a leading +/- sign
prog.cob:50: error: a leading +/- sign cannot follow B, 0 or /
prog.cob:51: error: a leading +/- sign cannot follow 9
prog.cob:52: error: B, 0 or / cannot follow CR or DB
prog.cob:53: error: 9 cannot follow CR or DB
prog.cob:54: error: a floating currency symbol string which is before the decimal point cannot follow 9
prog.cob:55: error: a leading currency symbol cannot follow 9
prog.cob:56: error: a leading currency symbol cannot follow B, 0 or /
prog.cob:57: error: P must be at start or end of PICTURE string
prog.cob:57: error: V cannot follow a P which is after the decimal point
prog.cob:59: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:60: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:61: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:67: error: 'STR-CONSTANT' is not a numeric literal
prog.cob:68: error: 'FLOAT-CONSTANT' is not an integer
prog.cob:69: error: 'SIGNED-CONSTANT' is not unsigned
prog.cob:70: error: 'UNSEEN-CONSTANT' is not defined
prog.cob:81: warning: uncommon parentheses
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/listings.at:3230"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog19.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION DIVISION.
000003         PROGRAM-ID. prog.
000004
000005         DATA DIVISION.
000006         WORKING-STORAGE SECTION.
000007         01  empty-pic PIC.
error: missing PICTURE string
000008         01  too-long-pic PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000009        -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
000010         01  too-long-pic2 PIC XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
error: PICTURE string may not contain more than 255 characters; contains 301
     + characters
000011        -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000012        -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000013        -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000014        -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
000015         01  multiple-symbols.
000016             03  PIC 9CRCR.
error: CR or DB may only occur once in a PICTURE string
000017             03  PIC 9DBDB.
error: CR or DB may only occur once in a PICTURE string
000018             03  PIC SS99S.
error: S may only occur once in a PICTURE string
error: S must be at start of PICTURE string
000019             03  PIC 99..9.
error: . may only occur once in a PICTURE string
000020             03  PIC 99VV9.
error: V may only occur once in a PICTURE string
000021             03  PIC +$99+.
error: a trailing +/- sign cannot follow a leading +/- sign
000022             03  PIC $+99$-.
error: a leading +/- sign cannot follow a leading currency symbol
error: a trailing currency symbol cannot follow a leading currency symbol
error: a trailing +/- sign cannot follow a leading +/- sign
000023         01  non-symbols.
000024             03  PIC 9K.
error: invalid PICTURE character 'K'
000025             03  PIC 999C.
error: C must be followed by R
000026             03  PIC 999D.
error: D must be followed by B
000027         01  too-many-digits PIC 9(50).
error: numeric field cannot be larger than 38 digits
000028         01  too-long-number-in-parens PIC 9(11111111111111).
error: only up to 9 significant digits are permitted within parentheses
000029         01  nested-parens PIC 9((100)).
error: parentheses must be preceded by a picture symbol
000030         01  unbalanced-parens PIC 9(.
error: unbalanced parentheses
000031         01  multiple-pairs-of-parens PIC 9(5)(3).
error: parentheses must be preceded by a picture symbol
000032         01  no-digit-in-parens PIC 9().
error: parentheses must contain an unsigned integer
000033         01  mutually-exclusive-symbols.
000034             03  PIC P(3)9.9.
error: . cannot follow a P which is after the decimal point
000035             03  PIC 9V.9.
error: . cannot follow V
000036             03  PIC Z*.
error: cannot have both Z and * in PICTURE string
000037             03  PIC +(5)--.
error: a trailing +/- sign cannot follow a floating +/- string which is before
     + the decimal point
error: a trailing +/- sign may only occur once in a PICTURE string
000038             03  PIC $(4)Z(9).
error: a Z or * which is before the decimal point cannot follow a floating
     + currency symbol string which is before the decimal point
000039             03  PIC $$B*(4).
error: a Z or * which is before the decimal point cannot follow a floating
     + currency symbol string which is before the decimal point
000040             03  PIC NX.
error: A or X cannot follow N
000041             03  PIC AN.
error: N cannot follow A or X
000042             03  PIC AZ(3).
error: a Z or * which is before the decimal point cannot follow A or X
000043             03  PIC 99.99XXXXX.
error: A or X cannot follow .
000044             03  PIC SA.
error: A or X cannot follow S
000045             03  PIC $$$B+++B---.
error: a leading +/- sign cannot follow B, 0 or /
error: a leading +/- sign cannot follow a floating currency symbol string
     + which is before the decimal point
error: a leading +/- sign may only occur once in a PICTURE string
error: a trailing +/- sign cannot follow a leading +/- sign
error: a trailing +/- sign may only occur once in a PICTURE string
000046             03  PIC +++9+.
error: a trailing +/- sign cannot follow a floating +/- string which is before
     + the decimal point
000047             03  PIC +9(5)CR.
error: CR or DB cannot follow a leading +/- sign
000048             03  PIC -9(5)DB.
error: CR or DB cannot follow a leading +/- sign
000049         01 non-rightmost-leftmost-symbols.
000050             03  PIC BBB+BB99.
error: a leading +/- sign cannot follow B, 0 or /
000051             03  PIC 99-B.
error: a leading +/- sign cannot follow 9
000052             03  PIC 9CRB.
error: B, 0 or / cannot follow CR or DB
000053             03  PIC DB9(5).
error: 9 cannot follow CR or DB
000054             03  PIC 99$$$.
error: a floating currency symbol string which is before the decimal point
     + cannot follow 9
000055             03  PIC 99$B.
error: a leading currency symbol cannot follow 9
000056             03  PIC 0$99.
error: a leading currency symbol cannot follow B, 0 or /
000057             03  PIC PPPVP9.
error: P must be at start or end of PICTURE string
error: V cannot follow a P which is after the decimal point
000058         01  missing-symbols.
000059             03  PIC B(5).
error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9
     + and *; or at least two of the set +, - and the currency symbol
000060             03  PIC +.
error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9
     + and *; or at least two of the set +, - and the currency symbol
000061             03  PIC $.
error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9
     + and *; or at least two of the set +, - and the currency symbol
000062
000063         01  str-constant CONSTANT "hello".
000064         01  float-constant CONSTANT 1.0.
000065         01  signed-constant CONSTANT -1.
000066         01  invalid-constant.
000067             03  PIC X(str-constant).
error: 'STR-CONSTANT' is not a numeric literal
000068             03  PIC X(float-constant).
error: 'FLOAT-CONSTANT' is not an integer
000069             03  PIC X(signed-constant).
error: 'SIGNED-CONSTANT' is not unsigned
000070             03  PIC X(unseen-constant).
error: 'UNSEEN-CONSTANT' is not defined
000071
000072         01  integer-constant CONSTANT 5.
000073         01  valid-pics.
000074             03  PIC VP9B.
000075             03  PIC B9P(3).
000076             03  PIC B$$$.
000077             03  PIC 0000+B0+++0B,+.
000078             03  PIC +(5)P(3).
000079             03  PIC ++.++.
000080             03  PIC $(integer-constant).
000081             03  PIC $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
warning: uncommon parentheses
000082        -(integer-constant).   *> CHECKME: should this be really valid?
000083
000084
000085         01  PC-COLOR-BACKGROUND-TABLE.
000086             05  BIT-BACKGROUND-BLACK      PIC 1(8) BIT VALUE B"00000000".
000087             05  BIT-BACKGROUND-BLUE       PIC 1(8) BIT VALUE B"00010000".
000088             05  BIT-BACKGROUND-GREEN      PIC 1(8) BIT VALUE B"00100000".
000089             05  BIT-BACKGROUND-CYAN       PIC 1(8) BIT VALUE B"00110000".
000090             05  BIT-BACKGROUND-RED        PIC 1(8) BIT VALUE B"01000000".
000091             05  BIT-BACKGROUND-MAGENTA    PIC 1(8) BIT VALUE B"01010000".
000092             05  BIT-BACKGROUND-BROWN      PIC 1(8) BIT VALUE B"01100000".
000093             05  BIT-BACKGROUND-LIGHT-GRAY PIC 1(8) BIT VALUE B"01110000".
000094         01  FILLER REDEFINES PC-COLOR-BACKGROUND-TABLE.
000095             05  COLOR-BACKGROUND
000096                 OCCURS 8 TIMES            PIC 1(8) BIT.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00000 ALPHANUMERIC   01   empty-pic                      INVALID

00077 ALPHANUMERIC   01   too-long-pic                   XXXXXXXXXXXXXXXXXXXXXXX

00000 ALPHANUMERIC   01   too-long-pic2                  INVALID

00000 GROUP          01   multiple-symbols
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID

00000 GROUP          01   non-symbols
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID

00050 NUMERIC        01   too-many-digits                9(50)

00000 ALPHANUMERIC   01   too-long-number-in-parens      INVALID

00000 ALPHANUMERIC   01   nested-parens                  INVALID

00000 ALPHANUMERIC   01   unbalanced-parens              INVALID

00000 ALPHANUMERIC   01   multiple-pairs-of-parens       INVALID

00000 ALPHANUMERIC   01   no-digit-in-parens             INVALID

00000 GROUP          01   mutually-exclusive-symbols
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID

00000 GROUP          01   non-rightmost-leftmost-symbols
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID

00000 GROUP          01   missing-symbols
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID

00000 GROUP          01   invalid-constant
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID
00000 ALPHANUMERIC   03   FILLER                         INVALID

00086 GROUP          01   valid-pics
00002 NUMERIC        03   FILLER                         VP9B
00002 NUMERIC        03   FILLER                         B9P(3)
00004 NUMERIC        03   FILLER                         B$$$
00014 NUMERIC        03   FILLER                         0000+B0+++0B,+
00005 NUMERIC        03   FILLER                         +(5)P(3)
00005 NUMERIC        03   FILLER                         ++.++
00005 NUMERIC        03   FILLER                         $(INTEGER-CONSTANT)
00049 NUMERIC        03   FILLER                         $$$$$$$$$$$$$$$$$$$$$$$

00008 GROUP          01   PC-COLOR-BACKGROUND-TABLE
00001 NUMERIC        05   BIT-BACKGROUND-BLACK           1(8)
00001 NUMERIC        05   BIT-BACKGROUND-BLUE            1(8)
00001 NUMERIC        05   BIT-BACKGROUND-GREEN           1(8)
00001 NUMERIC        05   BIT-BACKGROUND-CYAN            1(8)
00001 NUMERIC        05   BIT-BACKGROUND-RED             1(8)
00001 NUMERIC        05   BIT-BACKGROUND-MAGENTA         1(8)
00001 NUMERIC        05   BIT-BACKGROUND-BROWN           1(8)
00001 NUMERIC        05   BIT-BACKGROUND-LIGHT-GRAY      1(8)

00008 GROUP          01   FILLER, REDEFINES PC-COLOR-BACKGROUND-TABLE
00001 BOOLEAN        05   COLOR-BACKGROUND               1(8), OCCURS 8



Error/Warning summary:

prog.cob:7: error: missing PICTURE string
prog.cob:10: error: PICTURE string may not contain more than 255 characters; contains 301 characters
prog.cob:16: error: CR or DB may only occur once in a PICTURE string
prog.cob:17: error: CR or DB may only occur once in a PICTURE string
prog.cob:18: error: S may only occur once in a PICTURE string
prog.cob:18: error: S must be at start of PICTURE string
prog.cob:19: error: . may only occur once in a PICTURE string
prog.cob:20: error: V may only occur once in a PICTURE string
prog.cob:21: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:22: error: a leading +/- sign cannot follow a leading currency symbol
prog.cob:22: error: a trailing currency symbol cannot follow a leading currency symbol
prog.cob:22: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:24: error: invalid PICTURE character 'K'
prog.cob:25: error: C must be followed by R
prog.cob:26: error: D must be followed by B
prog.cob:27: error: numeric field cannot be larger than 38 digits
prog.cob:28: error: only up to 9 significant digits are permitted within parentheses
prog.cob:29: error: parentheses must be preceded by a picture symbol
prog.cob:30: error: unbalanced parentheses
prog.cob:31: error: parentheses must be preceded by a picture symbol
prog.cob:32: error: parentheses must contain an unsigned integer
prog.cob:34: error: . cannot follow a P which is after the decimal point
prog.cob:35: error: . cannot follow V
prog.cob:36: error: cannot have both Z and * in PICTURE string
prog.cob:37: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
prog.cob:37: error: a trailing +/- sign may only occur once in a PICTURE string
prog.cob:38: error: a Z or * which is before the decimal point cannot follow a floating currency symbol string which is before the decimal point
prog.cob:39: error: a Z or * which is before the decimal point cannot follow a floating currency symbol string which is before the decimal point
prog.cob:40: error: A or X cannot follow N
prog.cob:41: error: N cannot follow A or X
prog.cob:42: error: a Z or * which is before the decimal point cannot follow A or X
prog.cob:43: error: A or X cannot follow .
prog.cob:44: error: A or X cannot follow S
prog.cob:45: error: a leading +/- sign cannot follow B, 0 or /
prog.cob:45: error: a leading +/- sign cannot follow a floating currency symbol string which is before the decimal point
prog.cob:45: error: a leading +/- sign may only occur once in a PICTURE string
prog.cob:45: error: a trailing +/- sign cannot follow a leading +/- sign
prog.cob:45: error: a trailing +/- sign may only occur once in a PICTURE string
prog.cob:46: error: a trailing +/- sign cannot follow a floating +/- string which is before the decimal point
prog.cob:47: error: CR or DB cannot follow a leading +/- sign
prog.cob:48: error: CR or DB cannot follow a leading +/- sign
prog.cob:50: error: a leading +/- sign cannot follow B, 0 or /
prog.cob:51: error: a leading +/- sign cannot follow 9
prog.cob:52: error: B, 0 or / cannot follow CR or DB
prog.cob:53: error: 9 cannot follow CR or DB
prog.cob:54: error: a floating currency symbol string which is before the decimal point cannot follow 9
prog.cob:55: error: a leading currency symbol cannot follow 9
prog.cob:56: error: a leading currency symbol cannot follow B, 0 or /
prog.cob:57: error: P must be at start or end of PICTURE string
prog.cob:57: error: V cannot follow a P which is after the decimal point
prog.cob:59: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:60: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:61: error: PICTURE string must contain at least one of the set A, N, X, Z, 1, 9 and *; or at least two of the set +, - and the currency symbol
prog.cob:67: error: 'STR-CONSTANT' is not a numeric literal
prog.cob:68: error: 'FLOAT-CONSTANT' is not an integer
prog.cob:69: error: 'SIGNED-CONSTANT' is not unsigned
prog.cob:70: error: 'UNSEEN-CONSTANT' is not defined
prog.cob:81: warning: uncommon parentheses

1 warning in compilation group
57 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3625: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:3625"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3625"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:3626: diff prog19.lst prog.lis"
at_fn_check_prepare_trace "listings.at:3626"
( $at_check_trace; diff prog19.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3626"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_431
#AT_START_432
at_fn_group_banner 432 'listings.at:3631' \
  "Variable format" "                                " 3
at_xfail=no
(
  $as_echo "432. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'
000001 $SET SOURCEFORMAT "VARIABLE"
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. prog.
000030* blah blah blah
000040 PROCEDURE DIVISION.
000050                                                                  DISPLAY "Hello!"
000060     .
000070 END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3647: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:3647"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 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/listings.at:3647"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog20.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001  000001 $SET SOURCEFORMAT "VARIABLE"
000002  000010 IDENTIFICATION DIVISION.
000003  000020 PROGRAM-ID. prog.
000004  000030* blah blah blah
000005  000040 PROCEDURE DIVISION.
000006  000050
000006+ DISPLAY "Hello!"
000007  000060     .
000008  000070 END PROGRAM prog.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3669: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:3669"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3669"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:3670: diff prog20.lst prog.lis"
at_fn_check_prepare_trace "listings.at:3670"
( $at_check_trace; diff prog20.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3670"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_432
#AT_START_433
at_fn_group_banner 433 'listings.at:3675' \
  "LISTING directive" "                              " 3
at_xfail=no
(
  $as_echo "433. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >copy.inc <<'_ATEOF'

       >>LISTING OFF
       01 TEST1-VAR PIC X(2) VALUE "OK".
       01 TEST2-VAR PIC X(2) VALUE "OK".
       01 TEST3-VAR PIC X(2) VALUE "OK".
       01 TEST4-VAR PIC X(2) VALUE "OK".
       >>LISTING ON
       01 TEST5-VAR PIC X(2) VALUE "OK".
       01 TEST6-VAR PIC X(2) VALUE "OK".
       01 TEST7-VAR PIC X(2) VALUE "OK".
       01 TEST8-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >copy2.inc <<'_ATEOF'
       >> LISTING OFF
       01 TEST9-VAR PIC X(2) VALUE "OK".
       >>LISTING
       01 TESTA-VAR PIC X(2) VALUE "OK".
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       COPY "copy.inc".
       COPY "copy2.inc".
       PROCEDURE        DIVISION.
           DISPLAY TEST1-VAR NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3712: \$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols prog.cob" "listings.at:3712"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 -tsymbols 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/listings.at:3712"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog17.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
000006         COPY "copy.inc".
000001C
000002C        >>LISTING OFF
000007C        >>LISTING ON
000008C        01 TEST5-VAR PIC X(2) VALUE "OK".
000009C        01 TEST6-VAR PIC X(2) VALUE "OK".
000010C        01 TEST7-VAR PIC X(2) VALUE "OK".
000011C        01 TEST8-VAR PIC X(2) VALUE "OK".
000007         COPY "copy2.inc".
000001C        >> LISTING OFF
000003C        >>LISTING
000004C        01 TESTA-VAR PIC X(2) VALUE "OK".
000008         PROCEDURE        DIVISION.
000009             DISPLAY TEST1-VAR NO ADVANCING
000010             END-DISPLAY.
000011             STOP RUN.

SIZE  TYPE           LVL  NAME                           PICTURE

      WORKING-STORAGE SECTION

00002 ALPHANUMERIC   01   TEST1-VAR                      X(2)

00002 ALPHANUMERIC   01   TEST2-VAR                      X(2)

00002 ALPHANUMERIC   01   TEST3-VAR                      X(2)

00002 ALPHANUMERIC   01   TEST4-VAR                      X(2)

00002 ALPHANUMERIC   01   TEST5-VAR                      X(2)

00002 ALPHANUMERIC   01   TEST6-VAR                      X(2)

00002 ALPHANUMERIC   01   TEST7-VAR                      X(2)

00002 ALPHANUMERIC   01   TEST8-VAR                      X(2)

00002 ALPHANUMERIC   01   TEST9-VAR                      X(2)

00002 ALPHANUMERIC   01   TESTA-VAR                      X(2)


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3770: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:3770"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3770"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:3771: diff prog17.lst prog.lis"
at_fn_check_prepare_trace "listings.at:3771"
( $at_check_trace; diff prog17.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3771"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_433
#AT_START_434
at_fn_group_banner 434 'listings.at:3776' \
  "Listing-directive statements" "                   " 3
at_xfail=no
(
  $as_echo "434. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'
           TITLE "GnuCOBOL lists IBM"
       IDENTIFICATION   DIVISION.
           SKIP1
       PROGRAM-ID.      prog.
           SKIP2
       DATA             DIVISION.
           SKIP3
       WORKING-STORAGE  SECTION.
       01  TITLE-01          PIC X(2).
       01  TITLE-02          PIC X(2).
           TITLE "here goes the code"
       PROCEDURE        DIVISION.
       EJECT
           MOVE SPACE TO TITLE-01
                         TITLE-02.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3799: \$COMPILE_ONLY -t prog.lst -std=ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -std=ibm prog.cob" "listings.at:3799"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -std=ibm 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/listings.at:3799"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >expect.lst <<'_ATEOF'
GnuCOBOL lists IBM      prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000002         IDENTIFICATION   DIVISION.


000004         PROGRAM-ID.      prog.



000006         DATA             DIVISION.




000008         WORKING-STORAGE  SECTION.
000009         01  TITLE-01          PIC X(2).
000010         01  TITLE-02          PIC X(2).
here goes the code      prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002

LINE    PG/LN  A...B............................................................

000012         PROCEDURE        DIVISION.
here goes the code      prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0003

LINE    PG/LN  A...B............................................................

000014             MOVE SPACE TO TITLE-01
000015                           TITLE-02.
000016             STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3839: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:3839"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3839"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:3840: diff expect.lst prog.lis"
at_fn_check_prepare_trace "listings.at:3840"
( $at_check_trace; diff expect.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3840"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_434
#AT_START_435
at_fn_group_banner 435 'listings.at:3845' \
  "Eject page" "                                     " 3
at_xfail=no
(
  $as_echo "435. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
      /
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3860: \$COMPILE_ONLY -t prog.lst prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst prog.cob" "listings.at:3860"
( $at_check_trace; $COMPILE_ONLY -t prog.lst 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/listings.at:3860"
$at_failed && at_fn_log_failure  \
"prog.lis"
$at_traceon; }


cat >prog7.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         DATA             DIVISION.
000005         WORKING-STORAGE  SECTION.
GnuCOBOL V.R.P          prog.cob             DDD MMM dd HH:MM:SS YYYY  Page 0002

LINE    PG/LN  A...B............................................................

000006        /
000007         PROCEDURE        DIVISION.
000008             STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3885: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:3885"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3885"
$at_failed && at_fn_log_failure  \
"prog.lis"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:3886: diff prog7.lst prog.lis"
at_fn_check_prepare_trace "listings.at:3886"
( $at_check_trace; diff prog7.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3886"
$at_failed && at_fn_log_failure  \
"prog.lis"
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

  IDENTIFICATION   DIVISION.
  PROGRAM-ID.      prog2.
  DATA             DIVISION.
  WORKING-STORAGE  SECTION.
>>PAGE
  PROCEDURE        DIVISION.
  STOP RUN.
_ATEOF



{ set +x
$as_echo "$at_srcdir/listings.at:3899: \$COMPILE_ONLY -t prog.lst -free prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -free prog2.cob" "listings.at:3899"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -free prog2.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/listings.at:3899"
$at_failed && at_fn_log_failure  \
"prog.lis"
$at_traceon; }


cat >prog8.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog2.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    .....................SOURCE.............................................

000001
000002    IDENTIFICATION   DIVISION.
000003    PROGRAM-ID.      prog2.
000004    DATA             DIVISION.
000005    WORKING-STORAGE  SECTION.
GnuCOBOL V.R.P          prog2.cob            DDD MMM dd HH:MM:SS YYYY  Page 0002

LINE    .....................SOURCE.............................................

000006  >>PAGE
000007    PROCEDURE        DIVISION.
000008    STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3924: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:3924"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3924"
$at_failed && at_fn_log_failure  \
"prog.lis"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:3925: diff prog8.lst prog.lis"
at_fn_check_prepare_trace "listings.at:3925"
( $at_check_trace; diff prog8.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3925"
$at_failed && at_fn_log_failure  \
"prog.lis"
$at_traceon; }


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.

       PROGRAM-ID.      prog3.


       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 WS-VAR PIC X(2).
      /
       77 WS-VA2 PIC X(2).


       LOCAL-STORAGE  SECTION.
       77 LS-VAR PIC 9(2).


       PROCEDURE        DIVISION.

           DISPLAY WS-VAR
           MOVE 99 TO LS-VAR

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3952: \$COMPILE_ONLY -t prog.lst prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst prog3.cob" "listings.at:3952"
( $at_check_trace; $COMPILE_ONLY -t prog.lst prog3.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/listings.at:3952"
$at_failed && at_fn_log_failure  \
"prog.lis"
$at_traceon; }


cat >prog9.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog3.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003
000004         PROGRAM-ID.      prog3.
000005
000006
000007         DATA             DIVISION.
000008         WORKING-STORAGE  SECTION.
000009         77 WS-VAR PIC X(2).
GnuCOBOL V.R.P          prog3.cob            DDD MMM dd HH:MM:SS YYYY  Page 0002

LINE    PG/LN  A...B............................................................

000010        /
000011         77 WS-VA2 PIC X(2).
000012
000013
000014         LOCAL-STORAGE  SECTION.
000015         77 LS-VAR PIC 9(2).
000016
000017
000018         PROCEDURE        DIVISION.
000019
000020             DISPLAY WS-VAR
000021             MOVE 99 TO LS-VAR
000022
000023             STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:3992: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:3992"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3992"
$at_failed && at_fn_log_failure  \
"prog.lis"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:3993: diff prog9.lst prog.lis"
at_fn_check_prepare_trace "listings.at:3993"
( $at_check_trace; diff prog9.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:3993"
$at_failed && at_fn_log_failure  \
"prog.lis"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:3995: \$COMPILE_ONLY -t prog.lst -tlines=20 prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=20 prog3.cob" "listings.at:3995"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=20 prog3.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/listings.at:3995"
$at_failed && at_fn_log_failure  \
"prog.lis"
$at_traceon; }


cat >prog10.lst <<'_ATEOF'
GnuCOBOL V.R.P          prog3.cob            DDD MMM dd HH:MM:SS YYYY  Page 0001

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003
000004         PROGRAM-ID.      prog3.
000005
000006
000007         DATA             DIVISION.
000008         WORKING-STORAGE  SECTION.
000009         77 WS-VAR PIC X(2).
GnuCOBOL V.R.P          prog3.cob            DDD MMM dd HH:MM:SS YYYY  Page 0002

LINE    PG/LN  A...B............................................................

000010        /
000011         77 WS-VA2 PIC X(2).
000012
000013
000014         LOCAL-STORAGE  SECTION.
000015         77 LS-VAR PIC 9(2).
000016
000017
000018         PROCEDURE        DIVISION.
000019
000020             DISPLAY WS-VAR
000021             MOVE 99 TO LS-VAR
000022
000023             STOP RUN.


0 warnings in compilation group
GnuCOBOL V.R.P          prog3.cob            DDD MMM dd HH:MM:SS YYYY  Page 0003

0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:4037: \$UNIFY_LISTING prog.lst prog.lis"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis" "listings.at:4037"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:4037"
$at_failed && at_fn_log_failure  \
"prog.lis"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:4038: diff prog10.lst prog.lis"
at_fn_check_prepare_trace "listings.at:4038"
( $at_check_trace; diff prog10.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:4038"
$at_failed && at_fn_log_failure  \
"prog.lis"
$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_435
#AT_START_436
at_fn_group_banner 436 'listings.at:4043' \
  "Cross reference" "                                " 3
at_xfail=no
(
  $as_echo "436. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >EDITOR.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.                                         EDIT0001
       PROGRAM-ID.                                                      EDIT0002
           EDITOR.                                                      EDIT0003
                                                                        EDIT0008
      *NOTE.                                                            EDIT0009
      *    THIS VERSION OF EDITOR 1 COMPRISES AN ENTIRE RE_WRITE        EDIT0010
      *    OF THE BASIC EDITOR WITH ONLY ONE CHANGE IN THE COMMAND      EDIT0011
      *    STRUCTURE, THAT BEING THE ADDITION OF A "CHANGE" COMMAND     EDIT0012
      *    TO SERVE IN PLACE OF THE INSERT-DELETE COMBINATION WHICH     EDIT0013
      *    WAS REQUIRED IN PREVIOUS VERSIONS. RECORD NUMBER FIELDS      EDIT0014
      *    HAVE ALSO BEEN REDUCED FROM 5 DIGITS TO 4.                   EDIT0015
      *    CHANGE 1.                                                    EDIT0016
      *       MODIFY TO RUN ON TI-990.                                  EDIT0017
      *    CHANGE 2.                                                    EDIT0018
      *       MODIFY TO RUN ON GNUCOBOL.                                EDIT0019
                                                                        EDIT0020
       ENVIRONMENT DIVISION.                                            EDIT0021
       CONFIGURATION SECTION.                                           EDIT0022
       SOURCE-COMPUTER.                                                 EDIT0023
           IBM-360.                                                     EDIT0024
       OBJECT-COMPUTER.                                                 EDIT0025
           IBM-360.                                                     EDIT0026
       INPUT-OUTPUT SECTION.                                            EDIT0027
       FILE-CONTROL.                                                    EDIT0028
           SELECT OLD-VERSION  ASSIGN TO "SYSUT1"                       EDIT0029
                               ORGANIZATION LINE SEQUENTIAL.            EDIT0030
           SELECT NEW-VERSION  ASSIGN TO "SYSUT2"                       EDIT0031
                               ORGANIZATION LINE SEQUENTIAL.            EDIT0032
           SELECT PRT-VERSION  ASSIGN TO "SYSUT2"                       EDIT0033
                               ORGANIZATION LINE SEQUENTIAL.            EDIT0034
           SELECT MODIFICATION ASSIGN TO "SYSIN1"                       EDIT0035
                               ORGANIZATION LINE SEQUENTIAL.            EDIT0036
           SELECT COMMENTARY   ASSIGN TO "SYSOU1"                       EDIT0037
                               ORGANIZATION LINE SEQUENTIAL.            EDIT0038
                                                                        EDIT0039
       DATA DIVISION.                                                   EDIT0040
                                                                        EDIT0041
       FILE SECTION.                                                    EDIT0042
                                                                        EDIT0043
       FD  OLD-VERSION                                                  EDIT0044
           LABEL RECORDS ARE STANDARD                                   EDIT0045
           BLOCK CONTAINS 80 CHARACTERS                                 EDIT0046
           DATA RECORD IS OLD-RECORD.                                   EDIT0047
                                                                        EDIT0048
       01  OLD-RECORD.                                                  EDIT0049
           02 OLD-STATEMENT       PICTURE X(75).                        EDIT0050
           02 OLD-NUMBER          PICTURE X(5).                         EDIT0051
                                                                        EDIT0052
       FD  NEW-VERSION                                                  EDIT0053
           LABEL RECORDS ARE STANDARD                                   EDIT0054
           BLOCK CONTAINS 80 CHARACTERS                                 EDIT0055
           DATA RECORD IS NEW-RECORD.                                   EDIT0056
                                                                        EDIT0057
       01  NEW-RECORD.                                                  EDIT0058
           02 NEW-STATEMENT       PICTURE X(75).                        EDIT0059
           02 NEW-NUMBER          PICTURE X(5).                         EDIT0060
                                                                        EDIT0061
       FD  MODIFICATION                                                 EDIT0062
           LABEL RECORDS ARE OMITTED                                    EDIT0063
           BLOCK CONTAINS 80 CHARACTERS                                 EDIT0064
           DATA RECORD IS UPDATE-ORDER.                                 EDIT0065
                                                                        EDIT0066
       01  UPDATE-ORDER.                                                EDIT0067
           02 INSERTION.                                                EDIT0068
              03 COMMAND          PICTURE X(6).                         EDIT0069
                 88 ENDJOB        VALUE "ENDJOB".                       EDIT0070
                 88 ENDSET        VALUE "ENDSET".                       EDIT0071
                 88 REMOVE        VALUE "REMOVE".                       EDIT0072
                 88 ADDNEW        VALUE "INSERT".                       EDIT0073
                 88 CHANGE        VALUE "CHANGE".                       EDIT0074
                 88 DISPLY        VALUE "DISPLY".                       EDIT0075
              03 FILLER           PICTURE X.                            EDIT0076
              03 A-FIELD          PICTURE 9(5).                         EDIT0077
              03 A-ALPHA REDEFINES A-FIELD    PICTURE X(5).             EDIT0078
                 88 A-BLANK       VALUE SPACES.                         EDIT0079
              03 FILLER           PICTURE X(4).                         EDIT0080
              03 B-FIELD          PICTURE 9(5).                         EDIT0081
              03 B-ALPHA REDEFINES B-FIELD    PICTURE X(5).             EDIT0082
                 88 B-BLANK       VALUE SPACES.                         EDIT0083
              03 FILLER           PICTURE X(54).                        EDIT0084
           02 FILLER              PICTURE X(5).                         EDIT0085
                                                                        EDIT0086
       FD  COMMENTARY                                                   EDIT0087
           LABEL RECORDS ARE OMITTED                                    EDIT0088
           BLOCK CONTAINS 82 CHARACTERS                                 EDIT0089
           DATA RECORD IS COMMENT-LINE.                                 EDIT0090
                                                                        EDIT0091
       01  COMMENT-LINE.                                                EDIT0092
           02 FILLER              PICTURE X(82).                        EDIT0093
                                                                        EDIT0094
       WORKING-STORAGE SECTION.                                         EDIT0095
                                                                        EDIT0096
       77  COMMAND-ADDITIONS      PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0097
       77  COMMAND-SUBTRACTIONS   PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0098
       77  TOTAL-INSERTED         PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0099
       77  TOTAL-DELETED          PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0100
       77  OUTPUT-COUNT           PICTURE 9(5) COMPUTATIONAL VALUE 0.   EDIT0101
       77  LINE-COUNT             PICTURE 9(2) COMPUTATIONAL VALUE 0.   EDIT0102
       77  FIELDA                 PICTURE 9(5) VALUE 0.                 EDIT0103
       77  FIELDB                 PICTURE 9(5) VALUE 0.                 EDIT0104
       77  BLANK-LINE             PICTURE X(82) VALUE SPACES.           EDIT0105
                                                                        EDIT0106
       01  DATE-FROM-SYS.                                               EDIT0107
           02 DFSYS OCCURS 3 TIMES PICTURE 99.                          EDIT0108
                                                                        EDIT0109
       01  HEADINGS-LINE.                                               EDIT0110
           02 FILLER              PICTURE X(15) VALUE "EDITOR VERSION". EDIT0111
           02 FILLER              PICTURE X(20) VALUE "1.1 - 206/72".   EDIT0112
           02 PHASE               PICTURE X(17) VALUE "UPDATING AS OF". EDIT0113
           02 MONTH-RUN           PICTURE XX.                           EDIT0114
           02 FILLER              PICTURE X VALUE "/".                  EDIT0115
           02 DAY-RUN             PICTURE XX.                           EDIT0116
           02 FILLER              PICTURE X VALUE "/".                  EDIT0117
           02 YEAR-RUN            PICTURE XX.                           EDIT0118
           02 FILLER              PICTURE X(8) VALUE SPACES.            EDIT0119
           02 FILLER              PICTURE X(8) VALUE "  PAGE: ".        EDIT0120
           02 PAGE-NUMBER         PICTURE 9(4) VALUE 0.                 EDIT0121
                                                                        EDIT0122
       01  COMMAND-LISTING.                                             EDIT0123
           02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0124
           02 COMMAND-IMAGE       PICTURE X(80).                        EDIT0125
                                                                        EDIT0126
       01  ACTIVITIES-LISTING.                                          EDIT0127
           02 DISPOSITION         PICTURE X(2).                         EDIT0128
           02 ACTIVE-IMAGE        PICTURE X(80).                        EDIT0129
                                                                        EDIT0130
       01  UPSI-BYTE.                                                   EDIT0131
           02 UPSI-BIT OCCURS 8 TIMES  PICTURE X.                       EDIT0132
                                                                        EDIT0133
       01  MESSAGE-LOG.                                                 EDIT0134
           02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0135
           02 MESSAGE-TEXT        PICTURE X(80).                        EDIT0136
                                                                        EDIT0137
       01  DISPLAY-MESSAGE.                                             EDIT0138
           02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0139
           02 DISPLAY-TEMP        PICTURE X(6).                         EDIT0140
           02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0141
           02 DISPLAY-TEXT        PICTURE X(60).                        EDIT0142
                                                                        EDIT0143
       77  END-JOB-PROCESS        PICTURE 9 VALUE 0.                    EDIT0144
       77  DELETE-PROCESS         PICTURE 9 VALUE 1.                    EDIT0145
       77  INSERT-PROCESS         PICTURE 9 VALUE 2.                    EDIT0146
       77  WRITE-PROCESS          PICTURE 9 VALUE 3.                    EDIT0147
                                                                        EDIT0148
       01  SELECTORS.                                                   EDIT0149
           02 RETURN-SELECT       PICTURE 9 VALUE 0.                    EDIT0150
           02 NEXT-JOB-SELECT     PICTURE 9 VALUE 0.                    EDIT0151
                                                                        EDIT0152
       PROCEDURE DIVISION.                                              EDIT0153
                                                                        EDIT0154
       START-SECTION.                                                   EDIT0155
           OPEN INPUT OLD-VERSION, MODIFICATION,                        EDIT0156
                OUTPUT NEW-VERSION, COMMENTARY.                         EDIT0157
           MOVE "F" TO UPSI-BIT (1), UPSI-BIT (2).                      EDIT0158
           ACCEPT DATE-FROM-SYS FROM DATE.                              EDIT0159
           MOVE DFSYS (1) TO YEAR-RUN.                                  EDIT0160
           MOVE DFSYS (2) TO MONTH-RUN.                                 EDIT0161
           MOVE DFSYS (3) TO DAY-RUN.                                   EDIT0162
           READ OLD-VERSION AT END                                      EDIT0163
              MOVE "NO OLD VERSION FOUND" TO MESSAGE-TEXT               EDIT0164
              WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0165
              GO TO END-JOB.                                            EDIT0166
           MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0167
           PERFORM OUTPUT-A-RECORD.                                     EDIT0168
                                                                        EDIT0169
       TOP-OF-PAGE-ROUTINE.                                             EDIT0170
           ADD 1 TO PAGE-NUMBER.                                        EDIT0171
           MOVE ZERO TO LINE-COUNT.                                     EDIT0172
           WRITE COMMENT-LINE FROM HEADINGS-LINE AFTER PAGE.            EDIT0173
           WRITE COMMENT-LINE FROM BLANK-LINE.                          EDIT0174
                                                                        EDIT0175
       READ-A-COMMAND.                                                  EDIT0176
           READ MODIFICATION AT END                                     EDIT0177
              MOVE "MODIFICATION FILE ENDED " TO MESSAGE-TEXT           EDIT0178
              WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0179
              GO TO FINISH-JOB.                                         EDIT0180
           MOVE UPDATE-ORDER TO COMMAND-IMAGE.                          EDIT0181
           WRITE COMMENT-LINE FROM COMMAND-LISTING.                     EDIT0182
           ADD 2 TO LINE-COUNT.                                         EDIT0183
           IF A-BLANK MOVE ZEROES TO A-FIELD.                           EDIT0184
           IF B-BLANK MOVE ZEROES TO B-FIELD.                           EDIT0185
           MOVE A-FIELD TO FIELDA.                                      EDIT0186
           MOVE B-FIELD TO FIELDB.                                      EDIT0187
                                                                        EDIT0188
       TEST-COMMAND-TYPE.                                               EDIT0189
           IF CHANGE GO TO CHANGE-A-RECORD.                             EDIT0190
           IF REMOVE GO TO DELETE-A-RECORD.                             EDIT0191
           IF DISPLY MOVE "T" TO UPSI-BIT (2)                           EDIT0192
              GO TO FINISH-JOB.                                         EDIT0193
           IF ENDJOB GO TO FINISH-JOB.                                  EDIT0194
           IF ADDNEW GO TO INSERT-A-RECORD.                             EDIT0195
           MOVE "INVALID COMMAND IGNORED." TO MESSAGE-TEXT.             EDIT0196
           WRITE COMMENT-LINE FROM MESSAGE-LOG.                         EDIT0197
           GO TO READ-A-COMMAND.                                        EDIT0198
                                                                        EDIT0199
       CHANGE-A-RECORD.                                                 EDIT0200
           ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.        EDIT0201
           ALTER NEXT-JOB-STEP TO PROCEED TO DELETION-PROCESS.          EDIT0202
                                                                        EDIT0205
       FIND-FIELDA.                                                     EDIT0206
           IF OLD-NUMBER IS GREATER THAN FIELDA                         EDIT0207
              MOVE "RECORD ALREADY PASSED" TO MESSAGE-TEXT              EDIT0208
              WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0209
              GO TO READ-A-COMMAND.                                     EDIT0210
           READ OLD-VERSION AT END                                      EDIT0211
              MOVE "NOT FOUND IN OLD VERSION" TO DISPLAY-TEXT           EDIT0212
              MOVE FIELDA TO DISPLAY-TEMP                               EDIT0213
              WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0214
              GO TO END-JOB.                                            EDIT0215
           IF OLD-NUMBER IS LESS THAN FIELDA                            EDIT0216
              MOVE OLD-STATEMENT TO NEW-STATEMENT                       EDIT0217
              PERFORM OUTPUT-A-RECORD                                   EDIT0218
              GO TO FIND-FIELDA.                                        EDIT0219
                                                                        EDIT0220
       RETURN-TO-USER.                                                  EDIT0221
           GO TO END-JOB.                                               EDIT0223
                                                                        EDIT0228
       INSERT-A-RECORD.                                                 EDIT0229
           ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.        EDIT0230
           ALTER NEXT-JOB-STEP TO PROCEED TO FORCED-WRITE.              EDIT0231
           GO TO FIND-FIELDA.                                           EDIT0234
                                                                        EDIT0235
       INSERTION-PROCESS.                                               EDIT0236
           READ MODIFICATION AT END                                     EDIT0237
              MOVE "NO ENDSET FOUND" TO MESSAGE-TEXT                    EDIT0238
              WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0239
              GO TO END-JOB.                                            EDIT0240
           IF ENDSET                                                    EDIT0241
              MOVE COMMAND-ADDITIONS TO DISPLAY-TEMP                    EDIT0242
              MOVE "RECORDS INSERTED." TO DISPLAY-TEXT                  EDIT0243
              WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0244
              ADD COMMAND-ADDITIONS TO TOTAL-INSERTED                   EDIT0245
              MOVE ZEROES TO COMMAND-ADDITIONS                          EDIT0246
              GO TO NEXT-JOB-STEP.                                      EDIT0247
           MOVE INSERTION TO NEW-STATEMENT, ACTIVE-IMAGE.               EDIT0248
           MOVE "I " TO DISPOSITION.                                    EDIT0249
           PERFORM OUTPUT-A-RECORD.                                     EDIT0250
           WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0251
           ADD 1 TO COMMAND-ADDITIONS.                                  EDIT0252
           ADD 1 TO LINE-COUNT.                                         EDIT0253
           IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0254
           GO TO INSERTION-PROCESS.                                     EDIT0255
                                                                        EDIT0256
       NEXT-JOB-STEP.                                                   EDIT0257
           GO TO END-JOB.                                               EDIT0259
                                                                        EDIT0264
       FORCED-WRITE.                                                    EDIT0265
           MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0266
           PERFORM OUTPUT-A-RECORD.                                     EDIT0267
           GO TO READ-A-COMMAND.                                        EDIT0268
                                                                        EDIT0269
       DELETE-A-RECORD.                                                 EDIT0270
           ALTER RETURN-TO-USER TO PROCEED TO DELETION-PROCESS.         EDIT0271
           GO TO FIND-FIELDA.                                           EDIT0273
                                                                        EDIT0274
       DELETION-PROCESS.                                                EDIT0275
           MOVE OLD-RECORD TO ACTIVE-IMAGE.                             EDIT0276
           MOVE "D " TO DISPOSITION.                                    EDIT0277
           WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0278
           ADD 1 TO LINE-COUNT.                                         EDIT0279
           IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0280
           ADD 1 TO COMMAND-SUBTRACTIONS.                               EDIT0281
           IF OLD-NUMBER IS NOT LESS THAN FIELDB                        EDIT0282
              MOVE COMMAND-SUBTRACTIONS TO DISPLAY-TEMP                 EDIT0283
              MOVE "RECORDS DELETED." TO DISPLAY-TEXT                   EDIT0284
              WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0285
              ADD COMMAND-SUBTRACTIONS TO TOTAL-DELETED                 EDIT0286
              MOVE OLD-STATEMENT TO NEW-STATEMENT                       EDIT0287
              MOVE ZEROES TO COMMAND-SUBTRACTIONS                       EDIT0288
              GO TO READ-A-COMMAND.                                     EDIT0289
           READ OLD-VERSION AT END                                      EDIT0290
              MOVE "NOT FOUND IN OLD VERSION DOING DELETE"              EDIT0291
                    TO DISPLAY-TEXT                                     EDIT0292
              WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0293
              GO TO END-JOB.                                            EDIT0294
           GO TO DELETION-PROCESS.                                      EDIT0295
                                                                        EDIT0296
       OUTPUT-A-RECORD.                                                 EDIT0297
           ADD 1 TO OUTPUT-COUNT.                                       EDIT0298
           MOVE OUTPUT-COUNT TO NEW-NUMBER.                             EDIT0299
           WRITE NEW-RECORD.                                            EDIT0300
                                                                        EDIT0301
       FINISH-JOB.                                                      EDIT0302
           READ OLD-VERSION AT END GO TO TEST-FOR-LISTING.              EDIT0303
           MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0304
           GO TO OUTPUT-A-RECORD.                                       EDIT0305
                                                                        EDIT0306
       TEST-FOR-LISTING.                                                EDIT0307
           PERFORM TOP-OF-PAGE-ROUTINE.                                 EDIT0308
           MOVE OLD-NUMBER TO DISPLAY-TEMP.                             EDIT0309
           MOVE "RECORDS READ." TO DISPLAY-TEXT.                        EDIT0310
           WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0311
           MOVE TOTAL-INSERTED TO DISPLAY-TEMP.                         EDIT0312
           MOVE "RECORDS ADDED." TO DISPLAY-TEXT.                       EDIT0313
           WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0314
           MOVE TOTAL-DELETED TO DISPLAY-TEMP.                          EDIT0315
           MOVE "RECORDS DROPPED." TO DISPLAY-TEXT.                     EDIT0316
           WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0317
           MOVE OUTPUT-COUNT TO DISPLAY-TEMP.                           EDIT0318
           MOVE "RECORDS IN NEW FILE." TO DISPLAY-TEXT.                 EDIT0319
           WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0320
           IF UPSI-BIT (2) EQUAL "F" GO TO END-JOB.                     EDIT0321
           CLOSE NEW-VERSION.                                           EDIT0322
           OPEN INPUT NEW-VERSION.                                      EDIT0323
           MOVE "UPDATED LISTING" TO PHASE.                             EDIT0324
           MOVE ZEROES TO PAGE-NUMBER.                                  EDIT0325
           PERFORM TOP-OF-PAGE-ROUTINE.                                 EDIT0326
           MOVE SPACES TO DISPOSITION.                                  EDIT0327
                                                                        EDIT0328
       LISTING-LOOP.                                                    EDIT0329
           READ NEW-VERSION AT END GO TO END-JOB.                       EDIT0330
           MOVE NEW-RECORD TO ACTIVE-IMAGE.                             EDIT0331
           WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0332
           ADD 1 TO LINE-COUNT.                                         EDIT0333
           IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0334
           GO TO LISTING-LOOP.                                          EDIT0335
                                                                        EDIT0336
       END-JOB.                                                         EDIT0337
           MOVE "PROGRAM TERMINATION" TO MESSAGE-TEXT.                  EDIT0338
           WRITE COMMENT-LINE FROM MESSAGE-LOG.                         EDIT0339
           CLOSE OLD-VERSION, NEW-VERSION, MODIFICATION, COMMENTARY.    EDIT0340
           STOP RUN.                                                    EDIT0341
                                                                        EDIT0342
       END PROGRAM EDITOR.                                              EDIT0343
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:4375: \$COMPILE_ONLY -Xref -t prog.lst -tlines=0 -tsymbols EDITOR.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Xref -t prog.lst -tlines=0 -tsymbols EDITOR.cob" "listings.at:4375"
( $at_check_trace; $COMPILE_ONLY -Xref -t prog.lst -tlines=0 -tsymbols EDITOR.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "EDITOR.cob:42: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:44: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:51: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:53: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:60: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:62: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:85: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:87: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:30: error: missing file description for FILE PRT-VERSION
EDITOR.cob: in paragraph 'CHANGE-A-RECORD':
EDITOR.cob:198: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:199: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob: in paragraph 'INSERT-A-RECORD':
EDITOR.cob:220: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:221: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob: in paragraph 'DELETE-A-RECORD':
EDITOR.cob:254: warning: ALTER is obsolete in GnuCOBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/listings.at:4375"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }



cat >prog18.lst <<'_ATEOF'
GnuCOBOL V.R.P               EDITOR.cob                 DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION DIVISION.
000003         PROGRAM-ID.
000004             EDITOR.
000005
000006        *NOTE.
000007        *    THIS VERSION OF EDITOR 1 COMPRISES AN ENTIRE RE_WRITE
000008        *    OF THE BASIC EDITOR WITH ONLY ONE CHANGE IN THE COMMAND
000009        *    STRUCTURE, THAT BEING THE ADDITION OF A "CHANGE" COMMAND
000010        *    TO SERVE IN PLACE OF THE INSERT-DELETE COMBINATION WHICH
000011        *    WAS REQUIRED IN PREVIOUS VERSIONS. RECORD NUMBER FIELDS
000012        *    HAVE ALSO BEEN REDUCED FROM 5 DIGITS TO 4.
000013        *    CHANGE 1.
000014        *       MODIFY TO RUN ON TI-990.
000015        *    CHANGE 2.
000016        *       MODIFY TO RUN ON GNUCOBOL.
000017
000018         ENVIRONMENT DIVISION.
000019         CONFIGURATION SECTION.
000020         SOURCE-COMPUTER.
000021             IBM-360.
000022         OBJECT-COMPUTER.
000023             IBM-360.
000024         INPUT-OUTPUT SECTION.
000025         FILE-CONTROL.
000026             SELECT OLD-VERSION  ASSIGN TO "SYSUT1"
000027                                 ORGANIZATION LINE SEQUENTIAL.
000028             SELECT NEW-VERSION  ASSIGN TO "SYSUT2"
000029                                 ORGANIZATION LINE SEQUENTIAL.
000030             SELECT PRT-VERSION  ASSIGN TO "SYSUT2"
error: missing file description for FILE PRT-VERSION
000031                                 ORGANIZATION LINE SEQUENTIAL.
000032             SELECT MODIFICATION ASSIGN TO "SYSIN1"
000033                                 ORGANIZATION LINE SEQUENTIAL.
000034             SELECT COMMENTARY   ASSIGN TO "SYSOU1"
000035                                 ORGANIZATION LINE SEQUENTIAL.
000036
000037         DATA DIVISION.
000038
000039         FILE SECTION.
000040
000041         FD  OLD-VERSION
000042             LABEL RECORDS ARE STANDARD
warning: LABEL RECORDS is obsolete in GnuCOBOL
000043             BLOCK CONTAINS 80 CHARACTERS
000044             DATA RECORD IS OLD-RECORD.
warning: DATA RECORDS is obsolete in GnuCOBOL
000045
000046         01  OLD-RECORD.
000047             02 OLD-STATEMENT       PICTURE X(75).
000048             02 OLD-NUMBER          PICTURE X(5).
000049
000050         FD  NEW-VERSION
000051             LABEL RECORDS ARE STANDARD
warning: LABEL RECORDS is obsolete in GnuCOBOL
000052             BLOCK CONTAINS 80 CHARACTERS
000053             DATA RECORD IS NEW-RECORD.
warning: DATA RECORDS is obsolete in GnuCOBOL
000054
000055         01  NEW-RECORD.
000056             02 NEW-STATEMENT       PICTURE X(75).
000057             02 NEW-NUMBER          PICTURE X(5).
000058
000059         FD  MODIFICATION
000060             LABEL RECORDS ARE OMITTED
warning: LABEL RECORDS is obsolete in GnuCOBOL
000061             BLOCK CONTAINS 80 CHARACTERS
000062             DATA RECORD IS UPDATE-ORDER.
warning: DATA RECORDS is obsolete in GnuCOBOL
000063
000064         01  UPDATE-ORDER.
000065             02 INSERTION.
000066                03 COMMAND          PICTURE X(6).
000067                   88 ENDJOB        VALUE "ENDJOB".
000068                   88 ENDSET        VALUE "ENDSET".
000069                   88 REMOVE        VALUE "REMOVE".
000070                   88 ADDNEW        VALUE "INSERT".
000071                   88 CHANGE        VALUE "CHANGE".
000072                   88 DISPLY        VALUE "DISPLY".
000073                03 FILLER           PICTURE X.
000074                03 A-FIELD          PICTURE 9(5).
000075                03 A-ALPHA REDEFINES A-FIELD    PICTURE X(5).
000076                   88 A-BLANK       VALUE SPACES.
000077                03 FILLER           PICTURE X(4).
000078                03 B-FIELD          PICTURE 9(5).
000079                03 B-ALPHA REDEFINES B-FIELD    PICTURE X(5).
000080                   88 B-BLANK       VALUE SPACES.
000081                03 FILLER           PICTURE X(54).
000082             02 FILLER              PICTURE X(5).
000083
000084         FD  COMMENTARY
000085             LABEL RECORDS ARE OMITTED
warning: LABEL RECORDS is obsolete in GnuCOBOL
000086             BLOCK CONTAINS 82 CHARACTERS
000087             DATA RECORD IS COMMENT-LINE.
warning: DATA RECORDS is obsolete in GnuCOBOL
000088
000089         01  COMMENT-LINE.
000090             02 FILLER              PICTURE X(82).
000091
000092         WORKING-STORAGE SECTION.
000093
000094         77  COMMAND-ADDITIONS      PICTURE 9(3) COMPUTATIONAL VALUE 0.
000095         77  COMMAND-SUBTRACTIONS   PICTURE 9(3) COMPUTATIONAL VALUE 0.
000096         77  TOTAL-INSERTED         PICTURE 9(3) COMPUTATIONAL VALUE 0.
000097         77  TOTAL-DELETED          PICTURE 9(3) COMPUTATIONAL VALUE 0.
000098         77  OUTPUT-COUNT           PICTURE 9(5) COMPUTATIONAL VALUE 0.
000099         77  LINE-COUNT             PICTURE 9(2) COMPUTATIONAL VALUE 0.
000100         77  FIELDA                 PICTURE 9(5) VALUE 0.
000101         77  FIELDB                 PICTURE 9(5) VALUE 0.
000102         77  BLANK-LINE             PICTURE X(82) VALUE SPACES.
000103
000104         01  DATE-FROM-SYS.
000105             02 DFSYS OCCURS 3 TIMES PICTURE 99.
000106
000107         01  HEADINGS-LINE.
000108             02 FILLER              PICTURE X(15) VALUE "EDITOR VERSION".
000109             02 FILLER              PICTURE X(20) VALUE "1.1 - 206/72".
000110             02 PHASE               PICTURE X(17) VALUE "UPDATING AS OF".
000111             02 MONTH-RUN           PICTURE XX.
000112             02 FILLER              PICTURE X VALUE "/".
000113             02 DAY-RUN             PICTURE XX.
000114             02 FILLER              PICTURE X VALUE "/".
000115             02 YEAR-RUN            PICTURE XX.
000116             02 FILLER              PICTURE X(8) VALUE SPACES.
000117             02 FILLER              PICTURE X(8) VALUE "  PAGE: ".
000118             02 PAGE-NUMBER         PICTURE 9(4) VALUE 0.
000119
000120         01  COMMAND-LISTING.
000121             02 FILLER              PICTURE X(2) VALUE SPACES.
000122             02 COMMAND-IMAGE       PICTURE X(80).
000123
000124         01  ACTIVITIES-LISTING.
000125             02 DISPOSITION         PICTURE X(2).
000126             02 ACTIVE-IMAGE        PICTURE X(80).
000127
000128         01  UPSI-BYTE.
000129             02 UPSI-BIT OCCURS 8 TIMES  PICTURE X.
000130
000131         01  MESSAGE-LOG.
000132             02 FILLER              PICTURE X(2) VALUE SPACES.
000133             02 MESSAGE-TEXT        PICTURE X(80).
000134
000135         01  DISPLAY-MESSAGE.
000136             02 FILLER              PICTURE X(2) VALUE SPACES.
000137             02 DISPLAY-TEMP        PICTURE X(6).
000138             02 FILLER              PICTURE X(2) VALUE SPACES.
000139             02 DISPLAY-TEXT        PICTURE X(60).
000140
000141         77  END-JOB-PROCESS        PICTURE 9 VALUE 0.
000142         77  DELETE-PROCESS         PICTURE 9 VALUE 1.
000143         77  INSERT-PROCESS         PICTURE 9 VALUE 2.
000144         77  WRITE-PROCESS          PICTURE 9 VALUE 3.
000145
000146         01  SELECTORS.
000147             02 RETURN-SELECT       PICTURE 9 VALUE 0.
000148             02 NEXT-JOB-SELECT     PICTURE 9 VALUE 0.
000149
000150         PROCEDURE DIVISION.
000151
000152         START-SECTION.
000153             OPEN INPUT OLD-VERSION, MODIFICATION,
000154                  OUTPUT NEW-VERSION, COMMENTARY.
000155             MOVE "F" TO UPSI-BIT (1), UPSI-BIT (2).
000156             ACCEPT DATE-FROM-SYS FROM DATE.
000157             MOVE DFSYS (1) TO YEAR-RUN.
000158             MOVE DFSYS (2) TO MONTH-RUN.
000159             MOVE DFSYS (3) TO DAY-RUN.
000160             READ OLD-VERSION AT END
000161                MOVE "NO OLD VERSION FOUND" TO MESSAGE-TEXT
000162                WRITE COMMENT-LINE FROM MESSAGE-LOG
000163                GO TO END-JOB.
000164             MOVE OLD-STATEMENT TO NEW-STATEMENT.
000165             PERFORM OUTPUT-A-RECORD.
000166
000167         TOP-OF-PAGE-ROUTINE.
000168             ADD 1 TO PAGE-NUMBER.
000169             MOVE ZERO TO LINE-COUNT.
000170             WRITE COMMENT-LINE FROM HEADINGS-LINE AFTER PAGE.
000171             WRITE COMMENT-LINE FROM BLANK-LINE.
000172
000173         READ-A-COMMAND.
000174             READ MODIFICATION AT END
000175                MOVE "MODIFICATION FILE ENDED " TO MESSAGE-TEXT
000176                WRITE COMMENT-LINE FROM MESSAGE-LOG
000177                GO TO FINISH-JOB.
000178             MOVE UPDATE-ORDER TO COMMAND-IMAGE.
000179             WRITE COMMENT-LINE FROM COMMAND-LISTING.
000180             ADD 2 TO LINE-COUNT.
000181             IF A-BLANK MOVE ZEROES TO A-FIELD.
000182             IF B-BLANK MOVE ZEROES TO B-FIELD.
000183             MOVE A-FIELD TO FIELDA.
000184             MOVE B-FIELD TO FIELDB.
000185
000186         TEST-COMMAND-TYPE.
000187             IF CHANGE GO TO CHANGE-A-RECORD.
000188             IF REMOVE GO TO DELETE-A-RECORD.
000189             IF DISPLY MOVE "T" TO UPSI-BIT (2)
000190                GO TO FINISH-JOB.
000191             IF ENDJOB GO TO FINISH-JOB.
000192             IF ADDNEW GO TO INSERT-A-RECORD.
000193             MOVE "INVALID COMMAND IGNORED." TO MESSAGE-TEXT.
000194             WRITE COMMENT-LINE FROM MESSAGE-LOG.
000195             GO TO READ-A-COMMAND.
000196
000197         CHANGE-A-RECORD.
000198             ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.
warning: ALTER is obsolete in GnuCOBOL
000199             ALTER NEXT-JOB-STEP TO PROCEED TO DELETION-PROCESS.
warning: ALTER is obsolete in GnuCOBOL
000200
000201         FIND-FIELDA.
000202             IF OLD-NUMBER IS GREATER THAN FIELDA
000203                MOVE "RECORD ALREADY PASSED" TO MESSAGE-TEXT
000204                WRITE COMMENT-LINE FROM MESSAGE-LOG
000205                GO TO READ-A-COMMAND.
000206             READ OLD-VERSION AT END
000207                MOVE "NOT FOUND IN OLD VERSION" TO DISPLAY-TEXT
000208                MOVE FIELDA TO DISPLAY-TEMP
000209                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE
000210                GO TO END-JOB.
000211             IF OLD-NUMBER IS LESS THAN FIELDA
000212                MOVE OLD-STATEMENT TO NEW-STATEMENT
000213                PERFORM OUTPUT-A-RECORD
000214                GO TO FIND-FIELDA.
000215
000216         RETURN-TO-USER.
000217             GO TO END-JOB.
000218
000219         INSERT-A-RECORD.
000220             ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.
warning: ALTER is obsolete in GnuCOBOL
000221             ALTER NEXT-JOB-STEP TO PROCEED TO FORCED-WRITE.
warning: ALTER is obsolete in GnuCOBOL
000222             GO TO FIND-FIELDA.
000223
000224         INSERTION-PROCESS.
000225             READ MODIFICATION AT END
000226                MOVE "NO ENDSET FOUND" TO MESSAGE-TEXT
000227                WRITE COMMENT-LINE FROM MESSAGE-LOG
000228                GO TO END-JOB.
000229             IF ENDSET
000230                MOVE COMMAND-ADDITIONS TO DISPLAY-TEMP
000231                MOVE "RECORDS INSERTED." TO DISPLAY-TEXT
000232                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE
000233                ADD COMMAND-ADDITIONS TO TOTAL-INSERTED
000234                MOVE ZEROES TO COMMAND-ADDITIONS
000235                GO TO NEXT-JOB-STEP.
000236             MOVE INSERTION TO NEW-STATEMENT, ACTIVE-IMAGE.
000237             MOVE "I " TO DISPOSITION.
000238             PERFORM OUTPUT-A-RECORD.
000239             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.
000240             ADD 1 TO COMMAND-ADDITIONS.
000241             ADD 1 TO LINE-COUNT.
000242             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.
000243             GO TO INSERTION-PROCESS.
000244
000245         NEXT-JOB-STEP.
000246             GO TO END-JOB.
000247
000248         FORCED-WRITE.
000249             MOVE OLD-STATEMENT TO NEW-STATEMENT.
000250             PERFORM OUTPUT-A-RECORD.
000251             GO TO READ-A-COMMAND.
000252
000253         DELETE-A-RECORD.
000254             ALTER RETURN-TO-USER TO PROCEED TO DELETION-PROCESS.
warning: ALTER is obsolete in GnuCOBOL
000255             GO TO FIND-FIELDA.
000256
000257         DELETION-PROCESS.
000258             MOVE OLD-RECORD TO ACTIVE-IMAGE.
000259             MOVE "D " TO DISPOSITION.
000260             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.
000261             ADD 1 TO LINE-COUNT.
000262             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.
000263             ADD 1 TO COMMAND-SUBTRACTIONS.
000264             IF OLD-NUMBER IS NOT LESS THAN FIELDB
000265                MOVE COMMAND-SUBTRACTIONS TO DISPLAY-TEMP
000266                MOVE "RECORDS DELETED." TO DISPLAY-TEXT
000267                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE
000268                ADD COMMAND-SUBTRACTIONS TO TOTAL-DELETED
000269                MOVE OLD-STATEMENT TO NEW-STATEMENT
000270                MOVE ZEROES TO COMMAND-SUBTRACTIONS
000271                GO TO READ-A-COMMAND.
000272             READ OLD-VERSION AT END
000273                MOVE "NOT FOUND IN OLD VERSION DOING DELETE"
000274                      TO DISPLAY-TEXT
000275                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE
000276                GO TO END-JOB.
000277             GO TO DELETION-PROCESS.
000278
000279         OUTPUT-A-RECORD.
000280             ADD 1 TO OUTPUT-COUNT.
000281             MOVE OUTPUT-COUNT TO NEW-NUMBER.
000282             WRITE NEW-RECORD.
000283
000284         FINISH-JOB.
000285             READ OLD-VERSION AT END GO TO TEST-FOR-LISTING.
000286             MOVE OLD-STATEMENT TO NEW-STATEMENT.
000287             GO TO OUTPUT-A-RECORD.
000288
000289         TEST-FOR-LISTING.
000290             PERFORM TOP-OF-PAGE-ROUTINE.
000291             MOVE OLD-NUMBER TO DISPLAY-TEMP.
000292             MOVE "RECORDS READ." TO DISPLAY-TEXT.
000293             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.
000294             MOVE TOTAL-INSERTED TO DISPLAY-TEMP.
000295             MOVE "RECORDS ADDED." TO DISPLAY-TEXT.
000296             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.
000297             MOVE TOTAL-DELETED TO DISPLAY-TEMP.
000298             MOVE "RECORDS DROPPED." TO DISPLAY-TEXT.
000299             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.
000300             MOVE OUTPUT-COUNT TO DISPLAY-TEMP.
000301             MOVE "RECORDS IN NEW FILE." TO DISPLAY-TEXT.
000302             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.
000303             IF UPSI-BIT (2) EQUAL "F" GO TO END-JOB.
000304             CLOSE NEW-VERSION.
000305             OPEN INPUT NEW-VERSION.
000306             MOVE "UPDATED LISTING" TO PHASE.
000307             MOVE ZEROES TO PAGE-NUMBER.
000308             PERFORM TOP-OF-PAGE-ROUTINE.
000309             MOVE SPACES TO DISPOSITION.
000310
000311         LISTING-LOOP.
000312             READ NEW-VERSION AT END GO TO END-JOB.
000313             MOVE NEW-RECORD TO ACTIVE-IMAGE.
000314             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.
000315             ADD 1 TO LINE-COUNT.
000316             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.
000317             GO TO LISTING-LOOP.
000318
000319         END-JOB.
000320             MOVE "PROGRAM TERMINATION" TO MESSAGE-TEXT.
000321             WRITE COMMENT-LINE FROM MESSAGE-LOG.
000322             CLOSE OLD-VERSION, NEW-VERSION, MODIFICATION, COMMENTARY.
000323             STOP RUN.
000324
000325         END PROGRAM EDITOR.

SIZE  TYPE           LVL  NAME                           PICTURE

00080 FILE                OLD-VERSION
00080 GROUP          01   OLD-RECORD
00075 ALPHANUMERIC   02   OLD-STATEMENT                  X(75)
00005 ALPHANUMERIC   02   OLD-NUMBER                     X(5)

00080 FILE                NEW-VERSION
00080 GROUP          01   NEW-RECORD
00075 ALPHANUMERIC   02   NEW-STATEMENT                  X(75)
00005 ALPHANUMERIC   02   NEW-NUMBER                     X(5)

00032 FILE                PRT-VERSION

00080 FILE                MODIFICATION
00080 GROUP          01   UPDATE-ORDER
00075 GROUP          02   INSERTION
00006 ALPHANUMERIC   03   COMMAND                        X(6)
      CONDITIONAL    88   ENDJOB
      CONDITIONAL    88   ENDSET
      CONDITIONAL    88   REMOVE
      CONDITIONAL    88   ADDNEW
      CONDITIONAL    88   CHANGE
      CONDITIONAL    88   DISPLY
00001 ALPHANUMERIC   03   FILLER                         X
00005 NUMERIC        03   A-FIELD                        9(5)
00005 ALPHANUMERIC   03   A-ALPHA                        X(5), REDEFINES A-FIELD
      CONDITIONAL    88   A-BLANK
00004 ALPHANUMERIC   03   FILLER                         X(4)
00005 NUMERIC        03   B-FIELD                        9(5)
00005 ALPHANUMERIC   03   B-ALPHA                        X(5), REDEFINES B-FIELD
      CONDITIONAL    88   B-BLANK
00054 ALPHANUMERIC   03   FILLER                         X(54)
00005 ALPHANUMERIC   02   FILLER                         X(5)

00082 FILE                COMMENTARY
00082 GROUP          01   COMMENT-LINE
00082 ALPHANUMERIC   02   FILLER                         X(82)

      WORKING-STORAGE SECTION

00002 NUMERIC        77   COMMAND-ADDITIONS              9(3) COMP
00002 NUMERIC        77   COMMAND-SUBTRACTIONS           9(3) COMP
00002 NUMERIC        77   TOTAL-INSERTED                 9(3) COMP
00002 NUMERIC        77   TOTAL-DELETED                  9(3) COMP
00004 NUMERIC        77   OUTPUT-COUNT                   9(5) COMP
00001 NUMERIC        77   LINE-COUNT                     9(2) COMP
00005 NUMERIC        77   FIELDA                         9(5)
00005 NUMERIC        77   FIELDB                         9(5)
00082 ALPHANUMERIC   77   BLANK-LINE                     X(82)

00006 GROUP          01   DATE-FROM-SYS
00002 NUMERIC        02   DFSYS                          99, OCCURS 3

00080 GROUP          01   HEADINGS-LINE
00015 ALPHANUMERIC   02   FILLER                         X(15)
00020 ALPHANUMERIC   02   FILLER                         X(20)
00017 ALPHANUMERIC   02   PHASE                          X(17)
00002 ALPHANUMERIC   02   MONTH-RUN                      XX
00001 ALPHANUMERIC   02   FILLER                         X
00002 ALPHANUMERIC   02   DAY-RUN                        XX
00001 ALPHANUMERIC   02   FILLER                         X
00002 ALPHANUMERIC   02   YEAR-RUN                       XX
00008 ALPHANUMERIC   02   FILLER                         X(8)
00008 ALPHANUMERIC   02   FILLER                         X(8)
00004 NUMERIC        02   PAGE-NUMBER                    9(4)

00082 GROUP          01   COMMAND-LISTING
00002 ALPHANUMERIC   02   FILLER                         X(2)
00080 ALPHANUMERIC   02   COMMAND-IMAGE                  X(80)

00082 GROUP          01   ACTIVITIES-LISTING
00002 ALPHANUMERIC   02   DISPOSITION                    X(2)
00080 ALPHANUMERIC   02   ACTIVE-IMAGE                   X(80)

00008 GROUP          01   UPSI-BYTE
00001 ALPHANUMERIC   02   UPSI-BIT                       X, OCCURS 8

00082 GROUP          01   MESSAGE-LOG
00002 ALPHANUMERIC   02   FILLER                         X(2)
00080 ALPHANUMERIC   02   MESSAGE-TEXT                   X(80)

00070 GROUP          01   DISPLAY-MESSAGE
00002 ALPHANUMERIC   02   FILLER                         X(2)
00006 ALPHANUMERIC   02   DISPLAY-TEMP                   X(6)
00002 ALPHANUMERIC   02   FILLER                         X(2)
00060 ALPHANUMERIC   02   DISPLAY-TEXT                   X(60)

00001 NUMERIC        77   END-JOB-PROCESS                9
00001 NUMERIC        77   DELETE-PROCESS                 9
00001 NUMERIC        77   INSERT-PROCESS                 9
00001 NUMERIC        77   WRITE-PROCESS                  9

00002 GROUP          01   SELECTORS
00001 NUMERIC        02   RETURN-SELECT                  9
00001 NUMERIC        02   NEXT-JOB-SELECT                9


NAME                           DEFINED                REFERENCES

OLD-VERSION                    26       41      153     160     206     272
                                        285     322                    x7
OLD-RECORD                     46       44      258                    x2
OLD-STATEMENT                  47       164     212     249     269     286
                                                                       x5
OLD-NUMBER                     48       202     211     264     291    x4

NEW-VERSION                    28       50     *154    *282     304     305
                                        312     322                    x7
NEW-RECORD                     55       53      282     313            x3
NEW-STATEMENT                  56      *164    *212    *236    *249    *269
                                       *286                            x6
NEW-NUMBER                     57      *281                            x1

PRT-VERSION                    30     not referenced

MODIFICATION                   32       59      153     174     225     322
                                                                       x5
UPDATE-ORDER                   64       62      178                    x2
INSERTION                      65       236                            x1
COMMAND                        66     referenced by parent/child
ENDJOB                         67       191                            x1
ENDSET                         68       229                            x1
REMOVE                         69       188                            x1
ADDNEW                         70       192                            x1
CHANGE                         71       187                            x1
DISPLY                         72       189                            x1
A-FIELD                        74      *181     183                    x2
A-ALPHA                        75     referenced by parent/child
A-BLANK                        76       181                            x1
B-FIELD                        78      *182     184                    x2
B-ALPHA                        79     referenced by parent/child
B-BLANK                        80       182                            x1

COMMENTARY                     34       84     *154    *162    *170    *171
                                       *176    *179    *194    *204    *209
                                       *227    *232    *239    *260    *267
                                       *275    *293    *296    *299    *302
                                       *314    *321     322            x23
COMMENT-LINE                   89       87     *162    *170    *171    *176
                                       *179    *194    *204    *209    *227
                                       *232    *239    *260    *267    *275
                                       *293    *296    *299    *302    *314
                                       *321                            x21

COMMAND-ADDITIONS              94       230     233    *234     240    x4
COMMAND-SUBTRACTIONS           95       263     265     268    *270    x4
TOTAL-INSERTED                 96       233     294                    x2
TOTAL-DELETED                  97       268     297                    x2
OUTPUT-COUNT                   98       280     281     300            x3
LINE-COUNT                     99      *169     180     241     242     261
                                        262     315     316            x8
FIELDA                         100     *183     202     208     211    x4
FIELDB                         101     *184     264                    x2
BLANK-LINE                     102      171                            x1
DATE-FROM-SYS                  104     *156                            x1
DFSYS                          105      157     158     159            x3
HEADINGS-LINE                  107      170                            x1
PHASE                          110     *306                            x1
MONTH-RUN                      111     *158                            x1
DAY-RUN                        113     *159                            x1
YEAR-RUN                       115     *157                            x1
PAGE-NUMBER                    118      168    *307                    x2
COMMAND-LISTING                120      179                            x1
COMMAND-IMAGE                  122     *178                            x1
ACTIVITIES-LISTING             124      239     260     314            x3
DISPOSITION                    125     *237    *259    *309            x3
ACTIVE-IMAGE                   126     *236    *258    *313            x3
UPSI-BYTE                      128    referenced by child
UPSI-BIT                       129     *155    *189     303            x3
MESSAGE-LOG                    131      162     176     194     204     227
                                        321                            x6
MESSAGE-TEXT                   133     *161    *175    *193    *203    *226
                                       *320                            x6
DISPLAY-MESSAGE                135      209     232     267     275     293
                                        296     299     302            x8
DISPLAY-TEMP                   137     *208    *230    *265    *291    *294
                                       *297    *300                    x7
DISPLAY-TEXT                   139     *207    *231    *266    *274    *292
                                       *295    *298    *301            x8
END-JOB-PROCESS                141    not referenced
DELETE-PROCESS                 142    not referenced
INSERT-PROCESS                 143    not referenced
WRITE-PROCESS                  144    not referenced
SELECTORS                      146    not referenced
RETURN-SELECT                  147    not referenced
NEXT-JOB-SELECT                148    not referenced


LABEL                          DEFINED                REFERENCES

E EDITOR                       150
P START-SECTION                152    not referenced
P TOP-OF-PAGE-ROUTINE          167      242     262     290     308     316
                                                                       x5
P READ-A-COMMAND               173      195     205     251     271    x4
P TEST-COMMAND-TYPE            186    not referenced
P CHANGE-A-RECORD              197      187                            x1
P FIND-FIELDA                  201      214     222     255            x3
P RETURN-TO-USER               216      198     220     254            x3
P INSERT-A-RECORD              219      192                            x1
P INSERTION-PROCESS            224      198     220     243            x3
P NEXT-JOB-STEP                245      199     221     235            x3
P FORCED-WRITE                 248      221                            x1
P DELETE-A-RECORD              253      188                            x1
P DELETION-PROCESS             257      199     254     277            x3
P OUTPUT-A-RECORD              279      165     213     238     250     287
                                                                       x5
P FINISH-JOB                   284      177     190     191            x3
P TEST-FOR-LISTING             289      285                            x1
P LISTING-LOOP                 311      317                            x1
P END-JOB                      319      163     210     217     228     246
                                        276     303     312            x8


Error/Warning summary:

EDITOR.cob:30: error: missing file description for FILE PRT-VERSION
EDITOR.cob:42: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:44: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:51: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:53: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:60: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:62: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:85: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:87: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:198: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:199: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:220: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:221: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:254: warning: ALTER is obsolete in GnuCOBOL

13 warnings in compilation group
1 error in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:4977: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:4977"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:4977"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:4978: diff prog18.lst prog.lis"
at_fn_check_prepare_trace "listings.at:4978"
( $at_check_trace; diff prog18.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:4978"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/listings.at:4980: \$COMPILE_ONLY -Xref -T prog.lst -tlines=0 -tsymbols EDITOR.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -Xref -T prog.lst -tlines=0 -tsymbols EDITOR.cob" "listings.at:4980"
( $at_check_trace; $COMPILE_ONLY -Xref -T prog.lst -tlines=0 -tsymbols EDITOR.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "EDITOR.cob:42: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:44: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:51: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:53: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:60: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:62: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:85: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:87: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:30: error: missing file description for FILE PRT-VERSION
EDITOR.cob: in paragraph 'CHANGE-A-RECORD':
EDITOR.cob:198: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:199: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob: in paragraph 'INSERT-A-RECORD':
EDITOR.cob:220: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:221: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob: in paragraph 'DELETE-A-RECORD':
EDITOR.cob:254: warning: ALTER is obsolete in GnuCOBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/listings.at:4980"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }



cat >prog19.lst <<'_ATEOF'
GnuCOBOL V.R.P               EDITOR.cob                                                         DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................SEQUENCE

000001
000002         IDENTIFICATION DIVISION.                                         EDIT0001
000003         PROGRAM-ID.                                                      EDIT0002
000004             EDITOR.                                                      EDIT0003
000005                                                                          EDIT0008
000006        *NOTE.                                                            EDIT0009
000007        *    THIS VERSION OF EDITOR 1 COMPRISES AN ENTIRE RE_WRITE        EDIT0010
000008        *    OF THE BASIC EDITOR WITH ONLY ONE CHANGE IN THE COMMAND      EDIT0011
000009        *    STRUCTURE, THAT BEING THE ADDITION OF A "CHANGE" COMMAND     EDIT0012
000010        *    TO SERVE IN PLACE OF THE INSERT-DELETE COMBINATION WHICH     EDIT0013
000011        *    WAS REQUIRED IN PREVIOUS VERSIONS. RECORD NUMBER FIELDS      EDIT0014
000012        *    HAVE ALSO BEEN REDUCED FROM 5 DIGITS TO 4.                   EDIT0015
000013        *    CHANGE 1.                                                    EDIT0016
000014        *       MODIFY TO RUN ON TI-990.                                  EDIT0017
000015        *    CHANGE 2.                                                    EDIT0018
000016        *       MODIFY TO RUN ON GNUCOBOL.                                EDIT0019
000017                                                                          EDIT0020
000018         ENVIRONMENT DIVISION.                                            EDIT0021
000019         CONFIGURATION SECTION.                                           EDIT0022
000020         SOURCE-COMPUTER.                                                 EDIT0023
000021             IBM-360.                                                     EDIT0024
000022         OBJECT-COMPUTER.                                                 EDIT0025
000023             IBM-360.                                                     EDIT0026
000024         INPUT-OUTPUT SECTION.                                            EDIT0027
000025         FILE-CONTROL.                                                    EDIT0028
000026             SELECT OLD-VERSION  ASSIGN TO "SYSUT1"                       EDIT0029
000027                                 ORGANIZATION LINE SEQUENTIAL.            EDIT0030
000028             SELECT NEW-VERSION  ASSIGN TO "SYSUT2"                       EDIT0031
000029                                 ORGANIZATION LINE SEQUENTIAL.            EDIT0032
000030             SELECT PRT-VERSION  ASSIGN TO "SYSUT2"                       EDIT0033
error: missing file description for FILE PRT-VERSION
000031                                 ORGANIZATION LINE SEQUENTIAL.            EDIT0034
000032             SELECT MODIFICATION ASSIGN TO "SYSIN1"                       EDIT0035
000033                                 ORGANIZATION LINE SEQUENTIAL.            EDIT0036
000034             SELECT COMMENTARY   ASSIGN TO "SYSOU1"                       EDIT0037
000035                                 ORGANIZATION LINE SEQUENTIAL.            EDIT0038
000036                                                                          EDIT0039
000037         DATA DIVISION.                                                   EDIT0040
000038                                                                          EDIT0041
000039         FILE SECTION.                                                    EDIT0042
000040                                                                          EDIT0043
000041         FD  OLD-VERSION                                                  EDIT0044
000042             LABEL RECORDS ARE STANDARD                                   EDIT0045
warning: LABEL RECORDS is obsolete in GnuCOBOL
000043             BLOCK CONTAINS 80 CHARACTERS                                 EDIT0046
000044             DATA RECORD IS OLD-RECORD.                                   EDIT0047
warning: DATA RECORDS is obsolete in GnuCOBOL
000045                                                                          EDIT0048
000046         01  OLD-RECORD.                                                  EDIT0049
000047             02 OLD-STATEMENT       PICTURE X(75).                        EDIT0050
000048             02 OLD-NUMBER          PICTURE X(5).                         EDIT0051
000049                                                                          EDIT0052
000050         FD  NEW-VERSION                                                  EDIT0053
000051             LABEL RECORDS ARE STANDARD                                   EDIT0054
warning: LABEL RECORDS is obsolete in GnuCOBOL
000052             BLOCK CONTAINS 80 CHARACTERS                                 EDIT0055
000053             DATA RECORD IS NEW-RECORD.                                   EDIT0056
warning: DATA RECORDS is obsolete in GnuCOBOL
000054                                                                          EDIT0057
000055         01  NEW-RECORD.                                                  EDIT0058
000056             02 NEW-STATEMENT       PICTURE X(75).                        EDIT0059
000057             02 NEW-NUMBER          PICTURE X(5).                         EDIT0060
000058                                                                          EDIT0061
000059         FD  MODIFICATION                                                 EDIT0062
000060             LABEL RECORDS ARE OMITTED                                    EDIT0063
warning: LABEL RECORDS is obsolete in GnuCOBOL
000061             BLOCK CONTAINS 80 CHARACTERS                                 EDIT0064
000062             DATA RECORD IS UPDATE-ORDER.                                 EDIT0065
warning: DATA RECORDS is obsolete in GnuCOBOL
000063                                                                          EDIT0066
000064         01  UPDATE-ORDER.                                                EDIT0067
000065             02 INSERTION.                                                EDIT0068
000066                03 COMMAND          PICTURE X(6).                         EDIT0069
000067                   88 ENDJOB        VALUE "ENDJOB".                       EDIT0070
000068                   88 ENDSET        VALUE "ENDSET".                       EDIT0071
000069                   88 REMOVE        VALUE "REMOVE".                       EDIT0072
000070                   88 ADDNEW        VALUE "INSERT".                       EDIT0073
000071                   88 CHANGE        VALUE "CHANGE".                       EDIT0074
000072                   88 DISPLY        VALUE "DISPLY".                       EDIT0075
000073                03 FILLER           PICTURE X.                            EDIT0076
000074                03 A-FIELD          PICTURE 9(5).                         EDIT0077
000075                03 A-ALPHA REDEFINES A-FIELD    PICTURE X(5).             EDIT0078
000076                   88 A-BLANK       VALUE SPACES.                         EDIT0079
000077                03 FILLER           PICTURE X(4).                         EDIT0080
000078                03 B-FIELD          PICTURE 9(5).                         EDIT0081
000079                03 B-ALPHA REDEFINES B-FIELD    PICTURE X(5).             EDIT0082
000080                   88 B-BLANK       VALUE SPACES.                         EDIT0083
000081                03 FILLER           PICTURE X(54).                        EDIT0084
000082             02 FILLER              PICTURE X(5).                         EDIT0085
000083                                                                          EDIT0086
000084         FD  COMMENTARY                                                   EDIT0087
000085             LABEL RECORDS ARE OMITTED                                    EDIT0088
warning: LABEL RECORDS is obsolete in GnuCOBOL
000086             BLOCK CONTAINS 82 CHARACTERS                                 EDIT0089
000087             DATA RECORD IS COMMENT-LINE.                                 EDIT0090
warning: DATA RECORDS is obsolete in GnuCOBOL
000088                                                                          EDIT0091
000089         01  COMMENT-LINE.                                                EDIT0092
000090             02 FILLER              PICTURE X(82).                        EDIT0093
000091                                                                          EDIT0094
000092         WORKING-STORAGE SECTION.                                         EDIT0095
000093                                                                          EDIT0096
000094         77  COMMAND-ADDITIONS      PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0097
000095         77  COMMAND-SUBTRACTIONS   PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0098
000096         77  TOTAL-INSERTED         PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0099
000097         77  TOTAL-DELETED          PICTURE 9(3) COMPUTATIONAL VALUE 0.   EDIT0100
000098         77  OUTPUT-COUNT           PICTURE 9(5) COMPUTATIONAL VALUE 0.   EDIT0101
000099         77  LINE-COUNT             PICTURE 9(2) COMPUTATIONAL VALUE 0.   EDIT0102
000100         77  FIELDA                 PICTURE 9(5) VALUE 0.                 EDIT0103
000101         77  FIELDB                 PICTURE 9(5) VALUE 0.                 EDIT0104
000102         77  BLANK-LINE             PICTURE X(82) VALUE SPACES.           EDIT0105
000103                                                                          EDIT0106
000104         01  DATE-FROM-SYS.                                               EDIT0107
000105             02 DFSYS OCCURS 3 TIMES PICTURE 99.                          EDIT0108
000106                                                                          EDIT0109
000107         01  HEADINGS-LINE.                                               EDIT0110
000108             02 FILLER              PICTURE X(15) VALUE "EDITOR VERSION". EDIT0111
000109             02 FILLER              PICTURE X(20) VALUE "1.1 - 206/72".   EDIT0112
000110             02 PHASE               PICTURE X(17) VALUE "UPDATING AS OF". EDIT0113
000111             02 MONTH-RUN           PICTURE XX.                           EDIT0114
000112             02 FILLER              PICTURE X VALUE "/".                  EDIT0115
000113             02 DAY-RUN             PICTURE XX.                           EDIT0116
000114             02 FILLER              PICTURE X VALUE "/".                  EDIT0117
000115             02 YEAR-RUN            PICTURE XX.                           EDIT0118
000116             02 FILLER              PICTURE X(8) VALUE SPACES.            EDIT0119
000117             02 FILLER              PICTURE X(8) VALUE "  PAGE: ".        EDIT0120
000118             02 PAGE-NUMBER         PICTURE 9(4) VALUE 0.                 EDIT0121
000119                                                                          EDIT0122
000120         01  COMMAND-LISTING.                                             EDIT0123
000121             02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0124
000122             02 COMMAND-IMAGE       PICTURE X(80).                        EDIT0125
000123                                                                          EDIT0126
000124         01  ACTIVITIES-LISTING.                                          EDIT0127
000125             02 DISPOSITION         PICTURE X(2).                         EDIT0128
000126             02 ACTIVE-IMAGE        PICTURE X(80).                        EDIT0129
000127                                                                          EDIT0130
000128         01  UPSI-BYTE.                                                   EDIT0131
000129             02 UPSI-BIT OCCURS 8 TIMES  PICTURE X.                       EDIT0132
000130                                                                          EDIT0133
000131         01  MESSAGE-LOG.                                                 EDIT0134
000132             02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0135
000133             02 MESSAGE-TEXT        PICTURE X(80).                        EDIT0136
000134                                                                          EDIT0137
000135         01  DISPLAY-MESSAGE.                                             EDIT0138
000136             02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0139
000137             02 DISPLAY-TEMP        PICTURE X(6).                         EDIT0140
000138             02 FILLER              PICTURE X(2) VALUE SPACES.            EDIT0141
000139             02 DISPLAY-TEXT        PICTURE X(60).                        EDIT0142
000140                                                                          EDIT0143
000141         77  END-JOB-PROCESS        PICTURE 9 VALUE 0.                    EDIT0144
000142         77  DELETE-PROCESS         PICTURE 9 VALUE 1.                    EDIT0145
000143         77  INSERT-PROCESS         PICTURE 9 VALUE 2.                    EDIT0146
000144         77  WRITE-PROCESS          PICTURE 9 VALUE 3.                    EDIT0147
000145                                                                          EDIT0148
000146         01  SELECTORS.                                                   EDIT0149
000147             02 RETURN-SELECT       PICTURE 9 VALUE 0.                    EDIT0150
000148             02 NEXT-JOB-SELECT     PICTURE 9 VALUE 0.                    EDIT0151
000149                                                                          EDIT0152
000150         PROCEDURE DIVISION.                                              EDIT0153
000151                                                                          EDIT0154
000152         START-SECTION.                                                   EDIT0155
000153             OPEN INPUT OLD-VERSION, MODIFICATION,                        EDIT0156
000154                  OUTPUT NEW-VERSION, COMMENTARY.                         EDIT0157
000155             MOVE "F" TO UPSI-BIT (1), UPSI-BIT (2).                      EDIT0158
000156             ACCEPT DATE-FROM-SYS FROM DATE.                              EDIT0159
000157             MOVE DFSYS (1) TO YEAR-RUN.                                  EDIT0160
000158             MOVE DFSYS (2) TO MONTH-RUN.                                 EDIT0161
000159             MOVE DFSYS (3) TO DAY-RUN.                                   EDIT0162
000160             READ OLD-VERSION AT END                                      EDIT0163
000161                MOVE "NO OLD VERSION FOUND" TO MESSAGE-TEXT               EDIT0164
000162                WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0165
000163                GO TO END-JOB.                                            EDIT0166
000164             MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0167
000165             PERFORM OUTPUT-A-RECORD.                                     EDIT0168
000166                                                                          EDIT0169
000167         TOP-OF-PAGE-ROUTINE.                                             EDIT0170
000168             ADD 1 TO PAGE-NUMBER.                                        EDIT0171
000169             MOVE ZERO TO LINE-COUNT.                                     EDIT0172
000170             WRITE COMMENT-LINE FROM HEADINGS-LINE AFTER PAGE.            EDIT0173
000171             WRITE COMMENT-LINE FROM BLANK-LINE.                          EDIT0174
000172                                                                          EDIT0175
000173         READ-A-COMMAND.                                                  EDIT0176
000174             READ MODIFICATION AT END                                     EDIT0177
000175                MOVE "MODIFICATION FILE ENDED " TO MESSAGE-TEXT           EDIT0178
000176                WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0179
000177                GO TO FINISH-JOB.                                         EDIT0180
000178             MOVE UPDATE-ORDER TO COMMAND-IMAGE.                          EDIT0181
000179             WRITE COMMENT-LINE FROM COMMAND-LISTING.                     EDIT0182
000180             ADD 2 TO LINE-COUNT.                                         EDIT0183
000181             IF A-BLANK MOVE ZEROES TO A-FIELD.                           EDIT0184
000182             IF B-BLANK MOVE ZEROES TO B-FIELD.                           EDIT0185
000183             MOVE A-FIELD TO FIELDA.                                      EDIT0186
000184             MOVE B-FIELD TO FIELDB.                                      EDIT0187
000185                                                                          EDIT0188
000186         TEST-COMMAND-TYPE.                                               EDIT0189
000187             IF CHANGE GO TO CHANGE-A-RECORD.                             EDIT0190
000188             IF REMOVE GO TO DELETE-A-RECORD.                             EDIT0191
000189             IF DISPLY MOVE "T" TO UPSI-BIT (2)                           EDIT0192
000190                GO TO FINISH-JOB.                                         EDIT0193
000191             IF ENDJOB GO TO FINISH-JOB.                                  EDIT0194
000192             IF ADDNEW GO TO INSERT-A-RECORD.                             EDIT0195
000193             MOVE "INVALID COMMAND IGNORED." TO MESSAGE-TEXT.             EDIT0196
000194             WRITE COMMENT-LINE FROM MESSAGE-LOG.                         EDIT0197
000195             GO TO READ-A-COMMAND.                                        EDIT0198
000196                                                                          EDIT0199
000197         CHANGE-A-RECORD.                                                 EDIT0200
000198             ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.        EDIT0201
warning: ALTER is obsolete in GnuCOBOL
000199             ALTER NEXT-JOB-STEP TO PROCEED TO DELETION-PROCESS.          EDIT0202
warning: ALTER is obsolete in GnuCOBOL
000200                                                                          EDIT0205
000201         FIND-FIELDA.                                                     EDIT0206
000202             IF OLD-NUMBER IS GREATER THAN FIELDA                         EDIT0207
000203                MOVE "RECORD ALREADY PASSED" TO MESSAGE-TEXT              EDIT0208
000204                WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0209
000205                GO TO READ-A-COMMAND.                                     EDIT0210
000206             READ OLD-VERSION AT END                                      EDIT0211
000207                MOVE "NOT FOUND IN OLD VERSION" TO DISPLAY-TEXT           EDIT0212
000208                MOVE FIELDA TO DISPLAY-TEMP                               EDIT0213
000209                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0214
000210                GO TO END-JOB.                                            EDIT0215
000211             IF OLD-NUMBER IS LESS THAN FIELDA                            EDIT0216
000212                MOVE OLD-STATEMENT TO NEW-STATEMENT                       EDIT0217
000213                PERFORM OUTPUT-A-RECORD                                   EDIT0218
000214                GO TO FIND-FIELDA.                                        EDIT0219
000215                                                                          EDIT0220
000216         RETURN-TO-USER.                                                  EDIT0221
000217             GO TO END-JOB.                                               EDIT0223
000218                                                                          EDIT0228
000219         INSERT-A-RECORD.                                                 EDIT0229
000220             ALTER RETURN-TO-USER TO PROCEED TO INSERTION-PROCESS.        EDIT0230
warning: ALTER is obsolete in GnuCOBOL
000221             ALTER NEXT-JOB-STEP TO PROCEED TO FORCED-WRITE.              EDIT0231
warning: ALTER is obsolete in GnuCOBOL
000222             GO TO FIND-FIELDA.                                           EDIT0234
000223                                                                          EDIT0235
000224         INSERTION-PROCESS.                                               EDIT0236
000225             READ MODIFICATION AT END                                     EDIT0237
000226                MOVE "NO ENDSET FOUND" TO MESSAGE-TEXT                    EDIT0238
000227                WRITE COMMENT-LINE FROM MESSAGE-LOG                       EDIT0239
000228                GO TO END-JOB.                                            EDIT0240
000229             IF ENDSET                                                    EDIT0241
000230                MOVE COMMAND-ADDITIONS TO DISPLAY-TEMP                    EDIT0242
000231                MOVE "RECORDS INSERTED." TO DISPLAY-TEXT                  EDIT0243
000232                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0244
000233                ADD COMMAND-ADDITIONS TO TOTAL-INSERTED                   EDIT0245
000234                MOVE ZEROES TO COMMAND-ADDITIONS                          EDIT0246
000235                GO TO NEXT-JOB-STEP.                                      EDIT0247
000236             MOVE INSERTION TO NEW-STATEMENT, ACTIVE-IMAGE.               EDIT0248
000237             MOVE "I " TO DISPOSITION.                                    EDIT0249
000238             PERFORM OUTPUT-A-RECORD.                                     EDIT0250
000239             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0251
000240             ADD 1 TO COMMAND-ADDITIONS.                                  EDIT0252
000241             ADD 1 TO LINE-COUNT.                                         EDIT0253
000242             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0254
000243             GO TO INSERTION-PROCESS.                                     EDIT0255
000244                                                                          EDIT0256
000245         NEXT-JOB-STEP.                                                   EDIT0257
000246             GO TO END-JOB.                                               EDIT0259
000247                                                                          EDIT0264
000248         FORCED-WRITE.                                                    EDIT0265
000249             MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0266
000250             PERFORM OUTPUT-A-RECORD.                                     EDIT0267
000251             GO TO READ-A-COMMAND.                                        EDIT0268
000252                                                                          EDIT0269
000253         DELETE-A-RECORD.                                                 EDIT0270
000254             ALTER RETURN-TO-USER TO PROCEED TO DELETION-PROCESS.         EDIT0271
warning: ALTER is obsolete in GnuCOBOL
000255             GO TO FIND-FIELDA.                                           EDIT0273
000256                                                                          EDIT0274
000257         DELETION-PROCESS.                                                EDIT0275
000258             MOVE OLD-RECORD TO ACTIVE-IMAGE.                             EDIT0276
000259             MOVE "D " TO DISPOSITION.                                    EDIT0277
000260             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0278
000261             ADD 1 TO LINE-COUNT.                                         EDIT0279
000262             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0280
000263             ADD 1 TO COMMAND-SUBTRACTIONS.                               EDIT0281
000264             IF OLD-NUMBER IS NOT LESS THAN FIELDB                        EDIT0282
000265                MOVE COMMAND-SUBTRACTIONS TO DISPLAY-TEMP                 EDIT0283
000266                MOVE "RECORDS DELETED." TO DISPLAY-TEXT                   EDIT0284
000267                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0285
000268                ADD COMMAND-SUBTRACTIONS TO TOTAL-DELETED                 EDIT0286
000269                MOVE OLD-STATEMENT TO NEW-STATEMENT                       EDIT0287
000270                MOVE ZEROES TO COMMAND-SUBTRACTIONS                       EDIT0288
000271                GO TO READ-A-COMMAND.                                     EDIT0289
000272             READ OLD-VERSION AT END                                      EDIT0290
000273                MOVE "NOT FOUND IN OLD VERSION DOING DELETE"              EDIT0291
000274                      TO DISPLAY-TEXT                                     EDIT0292
000275                WRITE COMMENT-LINE FROM DISPLAY-MESSAGE                   EDIT0293
000276                GO TO END-JOB.                                            EDIT0294
000277             GO TO DELETION-PROCESS.                                      EDIT0295
000278                                                                          EDIT0296
000279         OUTPUT-A-RECORD.                                                 EDIT0297
000280             ADD 1 TO OUTPUT-COUNT.                                       EDIT0298
000281             MOVE OUTPUT-COUNT TO NEW-NUMBER.                             EDIT0299
000282             WRITE NEW-RECORD.                                            EDIT0300
000283                                                                          EDIT0301
000284         FINISH-JOB.                                                      EDIT0302
000285             READ OLD-VERSION AT END GO TO TEST-FOR-LISTING.              EDIT0303
000286             MOVE OLD-STATEMENT TO NEW-STATEMENT.                         EDIT0304
000287             GO TO OUTPUT-A-RECORD.                                       EDIT0305
000288                                                                          EDIT0306
000289         TEST-FOR-LISTING.                                                EDIT0307
000290             PERFORM TOP-OF-PAGE-ROUTINE.                                 EDIT0308
000291             MOVE OLD-NUMBER TO DISPLAY-TEMP.                             EDIT0309
000292             MOVE "RECORDS READ." TO DISPLAY-TEXT.                        EDIT0310
000293             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0311
000294             MOVE TOTAL-INSERTED TO DISPLAY-TEMP.                         EDIT0312
000295             MOVE "RECORDS ADDED." TO DISPLAY-TEXT.                       EDIT0313
000296             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0314
000297             MOVE TOTAL-DELETED TO DISPLAY-TEMP.                          EDIT0315
000298             MOVE "RECORDS DROPPED." TO DISPLAY-TEXT.                     EDIT0316
000299             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0317
000300             MOVE OUTPUT-COUNT TO DISPLAY-TEMP.                           EDIT0318
000301             MOVE "RECORDS IN NEW FILE." TO DISPLAY-TEXT.                 EDIT0319
000302             WRITE COMMENT-LINE FROM DISPLAY-MESSAGE.                     EDIT0320
000303             IF UPSI-BIT (2) EQUAL "F" GO TO END-JOB.                     EDIT0321
000304             CLOSE NEW-VERSION.                                           EDIT0322
000305             OPEN INPUT NEW-VERSION.                                      EDIT0323
000306             MOVE "UPDATED LISTING" TO PHASE.                             EDIT0324
000307             MOVE ZEROES TO PAGE-NUMBER.                                  EDIT0325
000308             PERFORM TOP-OF-PAGE-ROUTINE.                                 EDIT0326
000309             MOVE SPACES TO DISPOSITION.                                  EDIT0327
000310                                                                          EDIT0328
000311         LISTING-LOOP.                                                    EDIT0329
000312             READ NEW-VERSION AT END GO TO END-JOB.                       EDIT0330
000313             MOVE NEW-RECORD TO ACTIVE-IMAGE.                             EDIT0331
000314             WRITE COMMENT-LINE FROM ACTIVITIES-LISTING.                  EDIT0332
000315             ADD 1 TO LINE-COUNT.                                         EDIT0333
000316             IF LINE-COUNT EQUAL 56 PERFORM TOP-OF-PAGE-ROUTINE.          EDIT0334
000317             GO TO LISTING-LOOP.                                          EDIT0335
000318                                                                          EDIT0336
000319         END-JOB.                                                         EDIT0337
000320             MOVE "PROGRAM TERMINATION" TO MESSAGE-TEXT.                  EDIT0338
000321             WRITE COMMENT-LINE FROM MESSAGE-LOG.                         EDIT0339
000322             CLOSE OLD-VERSION, NEW-VERSION, MODIFICATION, COMMENTARY.    EDIT0340
000323             STOP RUN.                                                    EDIT0341
000324                                                                          EDIT0342
000325         END PROGRAM EDITOR.                                              EDIT0343

SIZE  TYPE           LVL  NAME                           PICTURE

00080 FILE                OLD-VERSION
00080 GROUP          01   OLD-RECORD
00075 ALPHANUMERIC   02   OLD-STATEMENT                  X(75)
00005 ALPHANUMERIC   02   OLD-NUMBER                     X(5)

00080 FILE                NEW-VERSION
00080 GROUP          01   NEW-RECORD
00075 ALPHANUMERIC   02   NEW-STATEMENT                  X(75)
00005 ALPHANUMERIC   02   NEW-NUMBER                     X(5)

00032 FILE                PRT-VERSION

00080 FILE                MODIFICATION
00080 GROUP          01   UPDATE-ORDER
00075 GROUP          02   INSERTION
00006 ALPHANUMERIC   03   COMMAND                        X(6)
      CONDITIONAL    88   ENDJOB
      CONDITIONAL    88   ENDSET
      CONDITIONAL    88   REMOVE
      CONDITIONAL    88   ADDNEW
      CONDITIONAL    88   CHANGE
      CONDITIONAL    88   DISPLY
00001 ALPHANUMERIC   03   FILLER                         X
00005 NUMERIC        03   A-FIELD                        9(5)
00005 ALPHANUMERIC   03   A-ALPHA                        X(5), REDEFINES A-FIELD
      CONDITIONAL    88   A-BLANK
00004 ALPHANUMERIC   03   FILLER                         X(4)
00005 NUMERIC        03   B-FIELD                        9(5)
00005 ALPHANUMERIC   03   B-ALPHA                        X(5), REDEFINES B-FIELD
      CONDITIONAL    88   B-BLANK
00054 ALPHANUMERIC   03   FILLER                         X(54)
00005 ALPHANUMERIC   02   FILLER                         X(5)

00082 FILE                COMMENTARY
00082 GROUP          01   COMMENT-LINE
00082 ALPHANUMERIC   02   FILLER                         X(82)

      WORKING-STORAGE SECTION

00002 NUMERIC        77   COMMAND-ADDITIONS              9(3) COMP
00002 NUMERIC        77   COMMAND-SUBTRACTIONS           9(3) COMP
00002 NUMERIC        77   TOTAL-INSERTED                 9(3) COMP
00002 NUMERIC        77   TOTAL-DELETED                  9(3) COMP
00004 NUMERIC        77   OUTPUT-COUNT                   9(5) COMP
00001 NUMERIC        77   LINE-COUNT                     9(2) COMP
00005 NUMERIC        77   FIELDA                         9(5)
00005 NUMERIC        77   FIELDB                         9(5)
00082 ALPHANUMERIC   77   BLANK-LINE                     X(82)

00006 GROUP          01   DATE-FROM-SYS
00002 NUMERIC        02   DFSYS                          99, OCCURS 3

00080 GROUP          01   HEADINGS-LINE
00015 ALPHANUMERIC   02   FILLER                         X(15)
00020 ALPHANUMERIC   02   FILLER                         X(20)
00017 ALPHANUMERIC   02   PHASE                          X(17)
00002 ALPHANUMERIC   02   MONTH-RUN                      XX
00001 ALPHANUMERIC   02   FILLER                         X
00002 ALPHANUMERIC   02   DAY-RUN                        XX
00001 ALPHANUMERIC   02   FILLER                         X
00002 ALPHANUMERIC   02   YEAR-RUN                       XX
00008 ALPHANUMERIC   02   FILLER                         X(8)
00008 ALPHANUMERIC   02   FILLER                         X(8)
00004 NUMERIC        02   PAGE-NUMBER                    9(4)

00082 GROUP          01   COMMAND-LISTING
00002 ALPHANUMERIC   02   FILLER                         X(2)
00080 ALPHANUMERIC   02   COMMAND-IMAGE                  X(80)

00082 GROUP          01   ACTIVITIES-LISTING
00002 ALPHANUMERIC   02   DISPOSITION                    X(2)
00080 ALPHANUMERIC   02   ACTIVE-IMAGE                   X(80)

00008 GROUP          01   UPSI-BYTE
00001 ALPHANUMERIC   02   UPSI-BIT                       X, OCCURS 8

00082 GROUP          01   MESSAGE-LOG
00002 ALPHANUMERIC   02   FILLER                         X(2)
00080 ALPHANUMERIC   02   MESSAGE-TEXT                   X(80)

00070 GROUP          01   DISPLAY-MESSAGE
00002 ALPHANUMERIC   02   FILLER                         X(2)
00006 ALPHANUMERIC   02   DISPLAY-TEMP                   X(6)
00002 ALPHANUMERIC   02   FILLER                         X(2)
00060 ALPHANUMERIC   02   DISPLAY-TEXT                   X(60)

00001 NUMERIC        77   END-JOB-PROCESS                9
00001 NUMERIC        77   DELETE-PROCESS                 9
00001 NUMERIC        77   INSERT-PROCESS                 9
00001 NUMERIC        77   WRITE-PROCESS                  9

00002 GROUP          01   SELECTORS
00001 NUMERIC        02   RETURN-SELECT                  9
00001 NUMERIC        02   NEXT-JOB-SELECT                9


NAME                           DEFINED                                    REFERENCES

OLD-VERSION                    26       41      153     160     206     272     285     322                    x7
OLD-RECORD                     46       44      258                                                            x2
OLD-STATEMENT                  47       164     212     249     269     286                                    x5
OLD-NUMBER                     48       202     211     264     291                                            x4

NEW-VERSION                    28       50     *154    *282     304     305     312     322                    x7
NEW-RECORD                     55       53      282     313                                                    x3
NEW-STATEMENT                  56      *164    *212    *236    *249    *269    *286                            x6
NEW-NUMBER                     57      *281                                                                    x1

PRT-VERSION                    30     not referenced

MODIFICATION                   32       59      153     174     225     322                                    x5
UPDATE-ORDER                   64       62      178                                                            x2
INSERTION                      65       236                                                                    x1
COMMAND                        66     referenced by parent/child
ENDJOB                         67       191                                                                    x1
ENDSET                         68       229                                                                    x1
REMOVE                         69       188                                                                    x1
ADDNEW                         70       192                                                                    x1
CHANGE                         71       187                                                                    x1
DISPLY                         72       189                                                                    x1
A-FIELD                        74      *181     183                                                            x2
A-ALPHA                        75     referenced by parent/child
A-BLANK                        76       181                                                                    x1
B-FIELD                        78      *182     184                                                            x2
B-ALPHA                        79     referenced by parent/child
B-BLANK                        80       182                                                                    x1

COMMENTARY                     34       84     *154    *162    *170    *171    *176    *179    *194    *204    *209
                                       *227    *232    *239    *260    *267    *275    *293    *296    *299    *302
                                       *314    *321     322                                                    x23
COMMENT-LINE                   89       87     *162    *170    *171    *176    *179    *194    *204    *209    *227
                                       *232    *239    *260    *267    *275    *293    *296    *299    *302    *314
                                       *321                                                                    x21

COMMAND-ADDITIONS              94       230     233    *234     240                                            x4
COMMAND-SUBTRACTIONS           95       263     265     268    *270                                            x4
TOTAL-INSERTED                 96       233     294                                                            x2
TOTAL-DELETED                  97       268     297                                                            x2
OUTPUT-COUNT                   98       280     281     300                                                    x3
LINE-COUNT                     99      *169     180     241     242     261     262     315     316            x8
FIELDA                         100     *183     202     208     211                                            x4
FIELDB                         101     *184     264                                                            x2
BLANK-LINE                     102      171                                                                    x1
DATE-FROM-SYS                  104     *156                                                                    x1
DFSYS                          105      157     158     159                                                    x3
HEADINGS-LINE                  107      170                                                                    x1
PHASE                          110     *306                                                                    x1
MONTH-RUN                      111     *158                                                                    x1
DAY-RUN                        113     *159                                                                    x1
YEAR-RUN                       115     *157                                                                    x1
PAGE-NUMBER                    118      168    *307                                                            x2
COMMAND-LISTING                120      179                                                                    x1
COMMAND-IMAGE                  122     *178                                                                    x1
ACTIVITIES-LISTING             124      239     260     314                                                    x3
DISPOSITION                    125     *237    *259    *309                                                    x3
ACTIVE-IMAGE                   126     *236    *258    *313                                                    x3
UPSI-BYTE                      128    referenced by child
UPSI-BIT                       129     *155    *189     303                                                    x3
MESSAGE-LOG                    131      162     176     194     204     227     321                            x6
MESSAGE-TEXT                   133     *161    *175    *193    *203    *226    *320                            x6
DISPLAY-MESSAGE                135      209     232     267     275     293     296     299     302            x8
DISPLAY-TEMP                   137     *208    *230    *265    *291    *294    *297    *300                    x7
DISPLAY-TEXT                   139     *207    *231    *266    *274    *292    *295    *298    *301            x8
END-JOB-PROCESS                141    not referenced
DELETE-PROCESS                 142    not referenced
INSERT-PROCESS                 143    not referenced
WRITE-PROCESS                  144    not referenced
SELECTORS                      146    not referenced
RETURN-SELECT                  147    not referenced
NEXT-JOB-SELECT                148    not referenced


LABEL                          DEFINED                                    REFERENCES

E EDITOR                       150
P START-SECTION                152    not referenced
P TOP-OF-PAGE-ROUTINE          167      242     262     290     308     316                                    x5
P READ-A-COMMAND               173      195     205     251     271                                            x4
P TEST-COMMAND-TYPE            186    not referenced
P CHANGE-A-RECORD              197      187                                                                    x1
P FIND-FIELDA                  201      214     222     255                                                    x3
P RETURN-TO-USER               216      198     220     254                                                    x3
P INSERT-A-RECORD              219      192                                                                    x1
P INSERTION-PROCESS            224      198     220     243                                                    x3
P NEXT-JOB-STEP                245      199     221     235                                                    x3
P FORCED-WRITE                 248      221                                                                    x1
P DELETE-A-RECORD              253      188                                                                    x1
P DELETION-PROCESS             257      199     254     277                                                    x3
P OUTPUT-A-RECORD              279      165     213     238     250     287                                    x5
P FINISH-JOB                   284      177     190     191                                                    x3
P TEST-FOR-LISTING             289      285                                                                    x1
P LISTING-LOOP                 311      317                                                                    x1
P END-JOB                      319      163     210     217     228     246     276     303     312            x8


Error/Warning summary:

EDITOR.cob:30: error: missing file description for FILE PRT-VERSION
EDITOR.cob:42: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:44: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:51: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:53: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:60: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:62: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:85: warning: LABEL RECORDS is obsolete in GnuCOBOL
EDITOR.cob:87: warning: DATA RECORDS is obsolete in GnuCOBOL
EDITOR.cob:198: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:199: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:220: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:221: warning: ALTER is obsolete in GnuCOBOL
EDITOR.cob:254: warning: ALTER is obsolete in GnuCOBOL

13 warnings in compilation group
1 error in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:5564: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:5564"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:5564"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:5565: diff prog19.lst prog.lis"
at_fn_check_prepare_trace "listings.at:5565"
( $at_check_trace; diff prog19.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:5565"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_436
#AT_START_437
at_fn_group_banner 437 'listings.at:5570' \
  "Report Writer" "                                  " 3
at_xfail=no
(
  $as_echo "437. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

      * ************************************************************* *
      * REPORT WRITER EXAMPLE #1.                                     *
      * ************************************************************* *

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT TRANSACTION-DATA
               ASSIGN TO EXTERNAL DATAIN
                         ORGANIZATION IS LINE SEQUENTIAL.

           SELECT REPORT-FILE
               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.

       DATA DIVISION.
       FILE SECTION.

       FD  TRANSACTION-DATA.

       01  TRANSACTION-RECORD.
           03  TR-CUSTOMER-NUMBER      PIC 9(04).
           03  FILLER                  PIC X(01).
           03  TR-CUSTOMER-NAME        PIC X(16).
           03  FILLER                  PIC X(01).
           03  TR-ITEM-NUMBER          PIC 9(05).
           03  FILLER                  REDEFINES TR-ITEM-NUMBER.
               05  TR-ITEM-DEPARTMENT  PIC 9(01).
               05  FILLER              PIC 9(04).
           03  FILLER                  PIC X(01).
           03  TR-ITEM-COST            PIC 9(03)V99.
           03  FILLER                  PIC X(47).

       FD  REPORT-FILE
           REPORT IS CUSTOMER-REPORT.

       WORKING-STORAGE SECTION.
       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
           88  END-OF-FILE                         VALUE 'Y'.

       REPORT SECTION.
       RD  CUSTOMER-REPORT
           PAGE LIMIT IS 66 LINES
           HEADING 1
           FIRST DETAIL 5
           LAST DETAIL 58.

       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
           02  LINE 1.
               03  COLUMN 27   PIC X(41) VALUE
                   'C U S T O M E R  C H A R G E  R E P O R T'.
           02  LINE PLUS 2.
               03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
               03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
               03  COLUMN 30   PIC X(05) VALUE 'DEPT.'.
               03  COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
               03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.

       01  CHARGE-DETAIL TYPE DETAIL.
           02  LINE PLUS 1.
               03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
               03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
               03  COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
               03  COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
               03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.

       PROCEDURE DIVISION.

       000-INITIATE.

           OPEN INPUT TRANSACTION-DATA,
                OUTPUT REPORT-FILE.

           INITIATE CUSTOMER-REPORT.

           READ TRANSACTION-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH.
      *    END-READ.

           PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
               UNTIL END-OF-FILE.

       000-TERMINATE.
           TERMINATE CUSTOMER-REPORT.

           CLOSE TRANSACTION-DATA,
                 REPORT-FILE.

           STOP RUN.

       100-PROCESS-TRANSACTION-DATA.
           GENERATE CHARGE-DETAIL.
           READ TRANSACTION-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH.
      *    END-READ.

       199-EXIT.
           EXIT.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:5683: \$COMPILE_ONLY -t prog.lst -tsymbols -Xref -tlines=0 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tsymbols -Xref -tlines=0 prog.cob" "listings.at:5683"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tsymbols -Xref -tlines=0 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/listings.at:5683"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog1.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION DIVISION.
000003         PROGRAM-ID. prog.
000004
000005        * ************************************************************* *
000006        * REPORT WRITER EXAMPLE #1.                                     *
000007        * ************************************************************* *
000008
000009         ENVIRONMENT DIVISION.
000010         CONFIGURATION SECTION.
000011
000012         INPUT-OUTPUT SECTION.
000013         FILE-CONTROL.
000014
000015             SELECT TRANSACTION-DATA
000016                 ASSIGN TO EXTERNAL DATAIN
000017                           ORGANIZATION IS LINE SEQUENTIAL.
000018
000019             SELECT REPORT-FILE
000020                 ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.
000021
000022         DATA DIVISION.
000023         FILE SECTION.
000024
000025         FD  TRANSACTION-DATA.
000026
000027         01  TRANSACTION-RECORD.
000028             03  TR-CUSTOMER-NUMBER      PIC 9(04).
000029             03  FILLER                  PIC X(01).
000030             03  TR-CUSTOMER-NAME        PIC X(16).
000031             03  FILLER                  PIC X(01).
000032             03  TR-ITEM-NUMBER          PIC 9(05).
000033             03  FILLER                  REDEFINES TR-ITEM-NUMBER.
000034                 05  TR-ITEM-DEPARTMENT  PIC 9(01).
000035                 05  FILLER              PIC 9(04).
000036             03  FILLER                  PIC X(01).
000037             03  TR-ITEM-COST            PIC 9(03)V99.
000038             03  FILLER                  PIC X(47).
000039
000040         FD  REPORT-FILE
000041             REPORT IS CUSTOMER-REPORT.
000042
000043         WORKING-STORAGE SECTION.
000044         77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
000045             88  END-OF-FILE                         VALUE 'Y'.
000046
000047         REPORT SECTION.
000048         RD  CUSTOMER-REPORT
000049             PAGE LIMIT IS 66 LINES
000050             HEADING 1
000051             FIRST DETAIL 5
000052             LAST DETAIL 58.
000053
000054         01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
000055             02  LINE 1.
000056                 03  COLUMN 27   PIC X(41) VALUE
000057                     'C U S T O M E R  C H A R G E  R E P O R T'.
000058             02  LINE PLUS 2.
000059                 03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
000060                 03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
000061                 03  COLUMN 30   PIC X(05) VALUE 'DEPT.'.
000062                 03  COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
000063                 03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
000064
000065         01  CHARGE-DETAIL TYPE DETAIL.
000066             02  LINE PLUS 1.
000067                 03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
000068                 03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
000069                 03  COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
000070                 03  COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
000071                 03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
000072
000073         PROCEDURE DIVISION.
000074
000075         000-INITIATE.
000076
000077             OPEN INPUT TRANSACTION-DATA,
000078                  OUTPUT REPORT-FILE.
000079
000080             INITIATE CUSTOMER-REPORT.
000081
000082             READ TRANSACTION-DATA
000083                 AT END
000084                     MOVE 'Y' TO END-OF-FILE-SWITCH.
000085        *    END-READ.
000086
000087             PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
000088                 UNTIL END-OF-FILE.
000089
000090         000-TERMINATE.
000091             TERMINATE CUSTOMER-REPORT.
000092
000093             CLOSE TRANSACTION-DATA,
000094                   REPORT-FILE.
000095
000096             STOP RUN.
000097
000098         100-PROCESS-TRANSACTION-DATA.
000099             GENERATE CHARGE-DETAIL.
000100             READ TRANSACTION-DATA
000101                 AT END
000102                     MOVE 'Y' TO END-OF-FILE-SWITCH.
000103        *    END-READ.
000104
000105         199-EXIT.
000106             EXIT.

SIZE  TYPE           LVL  NAME                           PICTURE

00080 FILE                TRANSACTION-DATA
00080 GROUP          01   TRANSACTION-RECORD
00004 NUMERIC        03   TR-CUSTOMER-NUMBER             9(04)
00001 ALPHANUMERIC   03   FILLER                         X(01)
00016 ALPHANUMERIC   03   TR-CUSTOMER-NAME               X(16)
00001 ALPHANUMERIC   03   FILLER                         X(01)
00005 NUMERIC        03   TR-ITEM-NUMBER                 9(05)
00005 GROUP          03   FILLER, REDEFINES TR-ITEM-NUMBER
00001 NUMERIC        05   TR-ITEM-DEPARTMENT             9(01)
00004 NUMERIC        05   FILLER                         9(04)
00001 ALPHANUMERIC   03   FILLER                         X(01)
00005 NUMERIC        03   TR-ITEM-COST                   9(03)V99
00047 ALPHANUMERIC   03   FILLER                         X(47)

00126 FILE                REPORT-FILE

      WORKING-STORAGE SECTION

00001 ALPHANUMERIC   77   END-OF-FILE-SWITCH             X(1)
      CONDITIONAL    88   END-OF-FILE

      REPORT SECTION

00126 GROUP          01   PAGE-HEAD-GROUP
00067 GROUP          02   FILLER
00041 ALPHANUMERIC   03   FILLER                         X(41)
00059 GROUP          02   FILLER
00009 ALPHANUMERIC   03   FILLER                         X(09)
00010 ALPHANUMERIC   03   FILLER                         X(10)
00005 ALPHANUMERIC   03   FILLER                         X(05)
00008 ALPHANUMERIC   03   FILLER                         X(08)
00009 ALPHANUMERIC   03   FILLER                         X(09)

00126 GROUP          01   CHARGE-DETAIL
00057 GROUP          02   FILLER
00004 NUMERIC        03   FILLER                         Z(04)
00016 ALPHANUMERIC   03   FILLER                         X(16)
00001 NUMERIC        03   FILLER                         9(01)
00005 NUMERIC        03   FILLER                         9(05)
00007 NUMERIC        03   FILLER                         $$$$.99


NAME                           DEFINED                REFERENCES

TRANSACTION-DATA               15       25      77      82      93      100
                                                                       x5
TRANSACTION-RECORD             27     referenced by child
TR-CUSTOMER-NUMBER             28       67                             x1
TR-CUSTOMER-NAME               30       68                             x1
TR-ITEM-NUMBER                 32       70                             x1
TR-ITEM-DEPARTMENT             34       69                             x1
TR-ITEM-COST                   37       71                             x1

REPORT-FILE                    19       40     *78      94             x3

END-OF-FILE-SWITCH             44      *84     *102                    x2
END-OF-FILE                    45       88                             x1

PAGE-HEAD-GROUP                54     not referenced
CHARGE-DETAIL                  65       99                             x1


LABEL                          DEFINED                REFERENCES

E prog                         73
P 000-INITIATE                 75     not referenced
P 000-TERMINATE                90     not referenced
P 100-PROCESS-TRANSACTION-DATA 98       87                             x1
P 199-EXIT                     105      87                             x1

0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:5873: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:5873"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:5873"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:5874: diff prog1.lst prog.lis"
at_fn_check_prepare_trace "listings.at:5874"
( $at_check_trace; diff prog1.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:5874"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_437
#AT_START_438
at_fn_group_banner 438 'listings.at:5879' \
  "huge REPLACE" "                                   " 3
at_xfail=no
(
  $as_echo "438. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.

           REPLACE ==111111111111111111111111111111111111111==
              BY =='
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    ' '==.


           DISPLAY 111111111111111111111111111111111111111
           DISPLAY 111111111111111111111111111111111111111
           DISPLAY 111111111111111111111111111111111111111

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:6006: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:6006"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 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/listings.at:6006"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog1.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         ENVIRONMENT DIVISION.
000005         CONFIGURATION SECTION.
000006         DATA             DIVISION.
000007         WORKING-STORAGE  SECTION.
000008         PROCEDURE        DIVISION.
000009
000010             REPLACE ==111111111111111111111111111111111111111==
000011                BY =='
000012        -    '
000013        -    '
000014        -    '
000015        -    '
000016        -    '
000017        -    '
000018        -    '
000019        -    '
000020        -    '
000021        -    '
000022        -    '
000023        -    '
000024        -    '
000025        -    '
000026        -    '
000027        -    '
000028        -    '
000029        -    '
000030        -    '
000031        -    '
000032        -    '
000033        -    '
000034        -    '
000035        -    '
000036        -    '
000037        -    '
000038        -    '
000039        -    '
000040        -    '
000041        -    '
000042        -    '
000043        -    '
000044        -    '
000045        -    '
000046        -    '
000047        -    '
000048        -    '
000049        -    '
000050        -    '
000051        -    '
000052        -    '
000053        -    '
000054        -    '
000055        -    '
000056        -    '
000057        -    '
000058        -    '
000059        -    '
000060        -    '
000061        -    '
000062        -    '
000063        -    '
000064        -    '
000065        -    '
000066        -    '
000067        -    '
000068        -    '
000069        -    '
000070        -    '
000071        -    '
000072        -    '
000073        -    '
000074        -    '
000075        -    '
000076        -    '
000077        -    '
000078        -    '
000079        -    '
000080        -    '
000081        -    '
000082        -    '
000083        -    '
000084        -    '
000085        -    '
000086        -    '
000087        -    '
000088        -    '
000089        -    '
000090        -    '
000091        -    '
000092        -    '
000093        -    '
000094        -    '
000095        -    '
000096        -    '
000097        -    '
000098        -    '
000099        -    '
000100        -    '
000101        -    '
000102        -    '
000103        -    '
000104        -    '
000105        -    '
000106        -    '
000107        -    '
000108        -    '
000109        -    '
000110        -    '
000111        -    '
000112        -    '
000113        -    ' '==.
000114
000115
000116             DISPLAY '
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -
000116+       -                          '
000117             DISPLAY '
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -
000117+       -                          '
000118             DISPLAY '
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -
000118+       -                          '
000119
000120             STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:6439: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:6439"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6439"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:6440: diff prog1.lst prog.lis"
at_fn_check_prepare_trace "listings.at:6440"
( $at_check_trace; diff prog1.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6440"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >display.inc <<'_ATEOF'

           DISPLAY 111111111111111111111111111111111111111
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.

       COPY "display.inc"
           REPLACING ==111111111111111111111111111111111111111==
              BY =='
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    '
      -    ' '==.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:6564: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:6564"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 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/listings.at:6564"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }


cat >prog2.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         IDENTIFICATION   DIVISION.
000003         PROGRAM-ID.      prog.
000004         ENVIRONMENT DIVISION.
000005         CONFIGURATION SECTION.
000006         DATA             DIVISION.
000007         WORKING-STORAGE  SECTION.
000008         PROCEDURE        DIVISION.
000009
000010         COPY "display.inc"
000011             REPLACING ==111111111111111111111111111111111111111==
000012                BY =='
000013        -    '
000014        -    '
000015        -    '
000016        -    '
000017        -    '
000018        -    '
000019        -    '
000020        -    '
000021        -    '
000022        -    '
000023        -    '
000024        -    '
000025        -    '
000026        -    '
000027        -    '
000028        -    '
000029        -    '
000030        -    '
000031        -    '
000032        -    '
000033        -    '
000034        -    '
000035        -    '
000036        -    '
000037        -    '
000038        -    '
000039        -    '
000040        -    '
000041        -    '
000042        -    '
000043        -    '
000044        -    '
000045        -    '
000046        -    '
000047        -    '
000048        -    '
000049        -    '
000050        -    '
000051        -    '
000052        -    '
000053        -    '
000054        -    '
000055        -    '
000056        -    '
000057        -    '
000058        -    '
000059        -    '
000060        -    '
000061        -    '
000062        -    '
000063        -    '
000064        -    '
000065        -    '
000066        -    '
000067        -    '
000068        -    '
000069        -    '
000070        -    '
000071        -    '
000072        -    '
000073        -    '
000074        -    '
000075        -    '
000076        -    '
000077        -    '
000078        -    '
000079        -    '
000080        -    '
000081        -    '
000082        -    '
000083        -    '
000084        -    '
000085        -    '
000086        -    '
000087        -    '
000088        -    '
000089        -    '
000090        -    '
000091        -    '
000092        -    '
000093        -    '
000094        -    '
000095        -    '
000096        -    '
000097        -    '
000098        -    '
000099        -    '
000100        -    '
000101        -    '
000102        -    '
000103        -    '
000104        -    '
000105        -    '
000106        -    '
000107        -    '
000108        -    '
000109        -    '
000110        -    '
000111        -    '
000112        -    '
000113        -    '
000114        -    ' '==.
000001C
000002C            DISPLAY '
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -
000002+       -                          '
000115
000116             STOP RUN.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:6795: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:6795"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6795"
$at_failed && at_fn_log_failure  \
"prog.lst"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:6796: diff prog2.lst prog.lis"
at_fn_check_prepare_trace "listings.at:6796"
( $at_check_trace; diff prog2.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6796"
$at_failed && at_fn_log_failure  \
"prog.lst"
$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_438
#AT_START_439
at_fn_group_banner 439 'listings.at:6801' \
  "Long concatenated literal" "                      " 3
at_xfail=no
(
  $as_echo "439. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       >>SOURCE FORMAT IS FREE
ID DIVISION.
PROGRAM-ID. ED000MAIN IS INITIAL.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WCOVER PIC X(1280) VALUE
      "          _________             ____________________________________            " &
      "          __  ____/__________  ___  ____/_  __ \__  __ )_  __ \__  /            " &
      "          _  / __ __  __ \  / / /  /    _  / / /_  __  |  / / /_  /             " &
      "          / /_/ / _  / / / /_/ // /___  / /_/ /_  /_/ // /_/ /_  /___           " &
      "          \____/  /_/ /_/\__,_/ \____/  \____/ /_____/ \____/ /_____/           " &
      "                           _________________________                            " &
      "                           ___  ____/__  __ \__  __ \                           " &
      "                           __  __/  __  /_/ /_  /_/ /                           " &
      "                           _  /___  _  _, _/_  ____/                            " &
      "                           /_____/  /_/ |_| /_/                                 " &
      "     /_/  |_|  .___/_  .___//_/  /_/  \___/ \__,_/ \__/ /_/  \____//_/ /_/      " &
      "    /_/     /_/                                                                 " &
      "1234567890123456789012".
PROCEDURE DIVISION.
    EXIT.
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:6828: \$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -t prog.lst -tlines=0 prog.cob" "listings.at:6828"
( $at_check_trace; $COMPILE_ONLY -t prog.lst -tlines=0 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/listings.at:6828"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.lst <<'_ATEOF'
GnuCOBOL V.R.P               prog.cob                   DDD MMM dd HH:MM:SS YYYY

LINE    PG/LN  A...B............................................................

000001
000002         >>SOURCE FORMAT IS FREE
000003  ID DIVISION.
000004  PROGRAM-ID. ED000MAIN IS INITIAL.
000005  DATA DIVISION.
000006  WORKING-STORAGE SECTION.
000007  01 WCOVER PIC X(1280) VALUE
000008        "          _________             _________________________________
000008+ ___            " &
000009        "          __  ____/__________  ___  ____/_  __ \__  __ )_  __ \__
000009+   /            " &
000010        "          _  / __ __  __ \  / / /  /    _  / / /_  __  |  / / /_
000010+  /             " &
000011        "          / /_/ / _  / / / /_/ // /___  / /_/ /_  /_/ // /_/ /_
000011+ /___           " &
000012        "          \____/  /_/ /_/\__,_/ \____/  \____/ /_____/ \____/ /__
000012+ ___/           " &
000013        "                           _________________________
000013+                " &
000014        "                           ___  ____/__  __ \__  __ \
000014+                " &
000015        "                           __  __/  __  /_/ /_  /_/ /
000015+                " &
000016        "                           _  /___  _  _, _/_  ____/
000016+                " &
000017        "                           /_____/  /_/ |_| /_/
000017+                " &
000018        "     /_/  |_|  .___/_  .___//_/  /_/  \___/ \__,_/ \__/ /_/  \___
000018+ _//_/ /_/      " &
000019        "    /_/     /_/
000019+                " &
000020        "1234567890123456789012".
000021  PROCEDURE DIVISION.
000022      EXIT.


0 warnings in compilation group
0 errors in compilation group
_ATEOF


{ set +x
$as_echo "$at_srcdir/listings.at:6875: \$UNIFY_LISTING prog.lst prog.lis once"
at_fn_check_prepare_dynamic "$UNIFY_LISTING prog.lst prog.lis once" "listings.at:6875"
( $at_check_trace; $UNIFY_LISTING prog.lst prog.lis once
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6875"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/listings.at:6876: diff prog2.lst prog.lis"
at_fn_check_prepare_trace "listings.at:6876"
( $at_check_trace; diff prog2.lst prog.lis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listings.at:6876"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_439
#AT_START_440
at_fn_group_banner 440 'run_fundamental.at:24' \
  "DISPLAY literals" "                               " 4
at_xfail=no
(
  $as_echo "440. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY "abc"
           END-DISPLAY.
           DISPLAY  123
           END-DISPLAY.
           DISPLAY +123
           END-DISPLAY.
           DISPLAY -123
           END-DISPLAY.
           DISPLAY  12.3
           END-DISPLAY.
           DISPLAY +12.3
           END-DISPLAY.
           DISPLAY -12.3
           END-DISPLAY.
           DISPLAY 1.23E0
           END-DISPLAY.
           DISPLAY +1.23E0
           END-DISPLAY.
           DISPLAY -1.23E0
           END-DISPLAY.
           DISPLAY 12.3E-2
           END-DISPLAY.
           DISPLAY +12.3E-2
           END-DISPLAY.
           DISPLAY -12.3E-2
           END-DISPLAY.
           DISPLAY B'0101'
           END-DISPLAY.
           DISPLAY BX'EC'
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:64: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:64"
( $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/run_fundamental.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:65: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:65"
( $at_check_trace; $COBCRUN_DIRECT ./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
12.3
+12.3
-12.3
1.23
+1.23
-1.23
.123
+.123
-.123
5
236
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_440
#AT_START_441
at_fn_group_banner 441 'run_fundamental.at:86' \
  "DISPLAY literals, DECIMAL-POINT is COMMA" "       " 4
at_xfail=no
(
  $as_echo "441. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT    IS COMMA.
       PROCEDURE        DIVISION.
           DISPLAY  12,3
           END-DISPLAY.
           DISPLAY +12,3
           END-DISPLAY.
           DISPLAY -12,3
           END-DISPLAY.
           DISPLAY 1,23E0
           END-DISPLAY.
           DISPLAY +1,23E0
           END-DISPLAY.
           DISPLAY -1,23E0
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:112: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:112"
( $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/run_fundamental.at:112"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:113: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:113"
( $at_check_trace; $COBCRUN_DIRECT ./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
1,23
+1,23
-1,23
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_441
#AT_START_442
at_fn_group_banner 442 'run_fundamental.at:125' \
  "Hexadecimal literal" "                            " 4
at_xfail=no
(
  $as_echo "442. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (unsigned char *data)
{
  int i;
  for (i = 0; i < 4; i++)
    printf ("%02x", data[i]);
  return 0;
}
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
       >>IF CHARSET = 'EBCDIC'
           DISPLAY X"F1F2F3"
       >>ELSE
           DISPLAY X"313233"
       >>END-IF
           END-DISPLAY.
           CALL "dump" USING X"000102"
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:157: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "run_fundamental.at:157"
( $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/run_fundamental.at:157"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:158: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:158"
( $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/run_fundamental.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:159: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:159"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_442
#AT_START_443
at_fn_group_banner 443 'run_fundamental.at:166' \
  "DISPLAY data items with VALUE clause" "           " 4
at_xfail=no
(
  $as_echo "443. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-ABC         PIC XXX   VALUE "abc".
       01 X-123         PIC 999   VALUE  123.
       01 X-P123        PIC S999  VALUE +123.
       01 X-N123        PIC S999  VALUE -123.
       01 X-12-3        PIC 99V9  VALUE  12.3.
       01 X-P12-3       PIC S99V9 VALUE +12.3.
       01 X-N12-3       PIC S99V9 VALUE -12.3.
       PROCEDURE        DIVISION.
           DISPLAY X-ABC
           END-DISPLAY.
           DISPLAY X-123
           END-DISPLAY.
           DISPLAY X-P123
           END-DISPLAY.
           DISPLAY X-N123
           END-DISPLAY.
           DISPLAY X-12-3
           END-DISPLAY.
           DISPLAY X-P12-3
           END-DISPLAY.
           DISPLAY X-N12-3
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:199: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:199"
( $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/run_fundamental.at:199"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:200: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:200"
( $at_check_trace; $COBCRUN_DIRECT ./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
12.3
+12.3
-12.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_443
#AT_START_444
at_fn_group_banner 444 'run_fundamental.at:213' \
  "DISPLAY data items with MOVE statement" "         " 4
at_xfail=no
(
  $as_echo "444. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-ABC         PIC XXX   VALUE "abc".
       01 X-123         PIC 999   VALUE  123.
       01 X-P123        PIC S999  VALUE +123.
       01 X-N123        PIC S999  VALUE -123.
       01 X-12-3        PIC 99V9  VALUE  12.3.
       01 X-P12-3       PIC S99V9 VALUE +12.3.
       01 X-N12-3       PIC S99V9 VALUE -12.3.
       PROCEDURE        DIVISION.
           MOVE "abc" TO X-ABC.
           DISPLAY X-ABC
           END-DISPLAY.
           MOVE  123  TO X-123.
           DISPLAY X-123
           END-DISPLAY.
           MOVE +123  TO X-P123.
           DISPLAY X-P123
           END-DISPLAY.
           MOVE -123  TO X-N123.
           DISPLAY X-N123
           END-DISPLAY.
           MOVE  12.3 TO X-12-3.
           DISPLAY X-12-3
           END-DISPLAY.
           MOVE +12.3 TO X-P12-3.
           DISPLAY X-P12-3
           END-DISPLAY.
           MOVE -12.3 TO X-N12-3.
           DISPLAY X-N12-3
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:253: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:253"
( $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/run_fundamental.at:253"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:254: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:254"
( $at_check_trace; $COBCRUN_DIRECT ./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
12.3
+12.3
-12.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:254"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_444
#AT_START_445
at_fn_group_banner 445 'run_fundamental.at:267' \
  "MOVE to edited item (1)" "                        " 4
at_xfail=no
(
  $as_echo "445. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  SRC-1        PIC S99V99  VALUE   1.10.
       01  SRC-2        PIC S99V99  VALUE   0.02.
       01  SRC-3        PIC S99V99  VALUE  -0.03.
       01  SRC-4        PIC S99V99  VALUE  -0.04.
       01  SRC-5        PIC S99V99  VALUE  -0.05.
       01  EDT-1        PIC -(04)9.
       01  EDT-2        PIC -(04)9.
       01  EDT-3        PIC -(04)9.
       01  EDT-4        PIC +(04)9.
       01  EDT-5        PIC -(05).
       PROCEDURE        DIVISION.
           MOVE SRC-1   TO EDT-1.
           MOVE SRC-2   TO EDT-2.
           MOVE SRC-3   TO EDT-3.
           MOVE SRC-4   TO EDT-4.
           MOVE SRC-5   TO EDT-5.
           DISPLAY '>' EDT-1 '<'
           END-DISPLAY.
           DISPLAY '>' EDT-2 '<'
           END-DISPLAY.
           DISPLAY '>' EDT-3 '<'
           END-DISPLAY.
           DISPLAY '>' EDT-4 '<'
           END-DISPLAY.
           DISPLAY '>' EDT-5 '<'
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:304: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:304"
( $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/run_fundamental.at:304"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:305: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:305"
( $at_check_trace; $COBCRUN_DIRECT ./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<
>    0<
>    0<
>   +0<
>     <
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:305"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_445
#AT_START_446
at_fn_group_banner 446 'run_fundamental.at:316' \
  "MOVE to edited item (2)" "                        " 4
at_xfail=no
(
  $as_echo "446. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  SRC-1        PIC S99V99  VALUE  -0.06.
       01  SRC-2        PIC S99V99  VALUE  -0.07.
       01  SRC-3        PIC S99V99  VALUE  -0.08.
       01  SRC-4        PIC S99V99  VALUE  -0.09.
       01  SRC-5        PIC S99V99  VALUE  -1.10.
       01  EDT-1        PIC 9(04)-.
       01  EDT-2        PIC 9(04)+.
       01  EDT-3        PIC Z(04)+.
       01  EDT-4        PIC 9(04)DB.
       01  EDT-5        PIC 9(04)DB.
       PROCEDURE        DIVISION.
           MOVE SRC-1   TO EDT-1.
           MOVE SRC-2   TO EDT-2.
           MOVE SRC-3   TO EDT-3.
           MOVE SRC-4   TO EDT-4.
           MOVE SRC-5   TO EDT-5.
           DISPLAY '>' EDT-1 '<'
           END-DISPLAY.
           DISPLAY '>' EDT-2 '<'
           END-DISPLAY.
           DISPLAY '>' EDT-3 '<'
           END-DISPLAY.
           DISPLAY '>' EDT-4 '<'
           END-DISPLAY.
           DISPLAY '>' EDT-5 '<'
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:353: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:353"
( $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/run_fundamental.at:353"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:354: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:354"
( $at_check_trace; $COBCRUN_DIRECT ./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 ">0000 <
>0000+<
>     <
>0000  <
>0001DB<
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:354"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_446
#AT_START_447
at_fn_group_banner 447 'run_fundamental.at:365' \
  "MOVE to item with simple and floating insertion" "" 4
at_xfail=no
(
  $as_echo "447. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  num-1 PIC -*B*99.
       01  num-2 PIC $BB**,***.**.
       01  num-3 PIC $BB--,---.--.

       PROCEDURE DIVISION.
           MOVE -123 TO num-1
           DISPLAY ">" num-1 "<"

           MOVE 1234.56 TO num-2
           DISPLAY ">" num-2 "<"

           MOVE 1234.56 TO num-3
           DISPLAY ">" num-3 "<"
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:390: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:390"
( $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/run_fundamental.at:390"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:391: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:391"
( $at_check_trace; $COBCRUN_DIRECT ./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<
>\$  *1,234.56<
>\$   1,234.56<
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:391"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_447
#AT_START_448
at_fn_group_banner 448 'run_fundamental.at:400' \
  "MOVE to JUSTIFIED item" "                         " 4
at_xfail=no
(
  $as_echo "448. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  SRC-1        PIC S9(04)          VALUE  11.
       01  SRC-2        PIC S9(04) COMP     VALUE  22.
       01  SRC-3        PIC S9(04) COMP-5   VALUE  33.
       01  SRC-4        PIC S9(04)PP        VALUE  4400.
       01  SRC-5        PIC S9(04)PPPPP     VALUE  55500000.
       01  EDT-FLD      PIC X(07)           JUSTIFIED RIGHT.
       PROCEDURE        DIVISION.
           MOVE SRC-1   TO EDT-FLD.
           DISPLAY '>' EDT-FLD '<'
           END-DISPLAY.
           MOVE SRC-2   TO EDT-FLD.
           DISPLAY '>' EDT-FLD '<'
           END-DISPLAY.
           MOVE SRC-3   TO EDT-FLD.
           DISPLAY '>' EDT-FLD '<'
           END-DISPLAY.
           MOVE SRC-4   TO EDT-FLD.
           DISPLAY '>' EDT-FLD '<'
           END-DISPLAY.
           MOVE SRC-5   TO EDT-FLD.
           DISPLAY '>' EDT-FLD '<'
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:433: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:433"
( $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/run_fundamental.at:433"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:434: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:434"
( $at_check_trace; $COBCRUN_DIRECT ./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 ">   0011<
>   0022<
>   0033<
> 004400<
>5500000<
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_448
#AT_START_449
at_fn_group_banner 449 'run_fundamental.at:445' \
  "MOVE integer literal to alphanumeric" "           " 4
at_xfail=no
(
  $as_echo "449. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(04) VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE 0 TO X.
           DISPLAY X NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:461: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:461"
( $at_check_trace; $COMPILE 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: alphanumeric value is expected
prog.cob:6: note: 'X' defined here as PIC X(04)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:461"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:465: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:465"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:465"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_449
#AT_START_450
at_fn_group_banner 450 'run_fundamental.at:470' \
  "Compare FLOAT-LONG with floating-point literal" " " 4
at_xfail=no
(
  $as_echo "450. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  VAR          FLOAT-LONG VALUE 0.0.

       PROCEDURE        DIVISION.
           MOVE 9.899999999999E+304 TO VAR
           IF VAR < 0
               DISPLAY 'error: compare ' VAR ' < ' 0
                       ' failed!'
               END-DISPLAY
           END-IF.
           IF VAR < 9.799999999999E+304
               DISPLAY 'error: compare ' VAR ' < ' 9.799999999999E+304
                       ' failed!'
               END-DISPLAY
           END-IF.
           IF VAR > 9.999999999999E+304
               DISPLAY 'error: compare ' VAR ' > ' 9.999999999999E+304
                       ' failed!'
               END-DISPLAY
           END-IF.
           MOVE -9.899999999999E+304 TO VAR
           IF VAR > 0
               DISPLAY 'error: compare ' VAR ' > ' 0
                       ' failed!'
               END-DISPLAY
           END-IF.
           IF VAR < -9.999999999999E+304
               DISPLAY 'error: compare ' VAR ' < ' -9.999999999999E+304
                       ' failed!'
               END-DISPLAY
           END-IF.
           IF VAR > -9.799999999999E+304
               DISPLAY 'error: compare ' VAR ' > ' -9.799999999999E+304
                       ' failed!'
               END-DISPLAY
           END-IF.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:517: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:517"
( $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/run_fundamental.at:517"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:518: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:518"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:518"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_450
#AT_START_451
at_fn_group_banner 451 'run_fundamental.at:523' \
  "Check for equality of FLOAT-SHORT / FLOAT-LONG" " " 4
at_xfail=no
(
  $as_echo "451. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  SRC1          FLOAT-LONG VALUE 11.55.
       01  DST1          FLOAT-SHORT.
       01  SRC2          FLOAT-SHORT VALUE 11.55.
       01  DST2          FLOAT-LONG.

       PROCEDURE        DIVISION.
           MOVE SRC1 TO DST1.
           IF DST1 not = 11.55
               DISPLAY 'error: move/compare FLOAT-LONG to FLOAT-SHORT fa
      -                'iled ' DST1
               END-DISPLAY
           END-IF.

           MOVE SRC1 TO DST2.
           IF DST1 not = 11.55
               DISPLAY 'error: move/compare FLOAT-LONG to FLOAT-LONG fai
      -                'led ' DST2
               END-DISPLAY
           END-IF.

           MOVE ZERO TO DST1.
           MOVE ZERO TO DST2.

           MOVE SRC2 TO DST1.
           IF DST1 not = 11.55
               DISPLAY 'error: move/compare FLOAT-SHORT to FLOAT-SHORT f
      -                'ailed: ' DST1
               END-DISPLAY
           END-IF.

           MOVE SRC2 TO DST2.
           IF DST2 not = 11.55
               DISPLAY 'error: move/compare FLOAT-SHORT to FLOAT-LONG fa
      -                'iled: ' DST2
               END-DISPLAY
           END-IF.

           MOVE ZERO TO DST1.
           IF not (DST1 = 0 AND 0.0)
               DISPLAY "Zero compare failed: " DST1 END-DISPLAY
           END-IF.

           MOVE -0.0 TO DST1.
           IF not (DST1 = 0 AND 0.0)
               DISPLAY "Negative Zero compare failed: " DST1
               END-DISPLAY
           END-IF.

           MOVE 1.1234567 TO DST1.
           MOVE DST1 TO DST2.
           IF DST2 not = 1.1234567
               DISPLAY "move/compare number to FLOAT to DOUBLE failed: "
                       DST1 " - " DST2
               END-DISPLAY
           END-IF.

      * Check for Tolerance
           MOVE 1.1234567 TO DST1.
           MOVE 1.1234568 TO DST2.
           IF DST1 not = DST2 THEN
               DISPLAY 'move/compare of very near numbers failed (not id
      -                'entical): ' DST1 " - " DST2
               END-DISPLAY
           END-IF.

      * Within tolerance by definition, therefore not checked
      *     MULTIPLY 10000000000 BY DST1 DST2 END-MULTIPLY.
      *     IF DST1 = DST2 THEN
      *         DISPLAY "compare of very near numbers computed failed (id
      *-                "entical): " DST1 " - " DST2
      *         END-DISPLAY
      *     END-IF.

           MOVE 1.1234567 TO DST1.
           MOVE 1.1234569 TO DST2.
           IF DST1 = DST2 THEN
               DISPLAY 'move/compare of near equal numbers failed (ident
      -                'ical): ' DST1 " - " DST2
               END-DISPLAY
           END-IF.

           MOVE 0.0001 TO DST1.
           MOVE 0.0000 TO DST2.
           IF DST1 = DST2 THEN
               DISPLAY 'move/compare of nearly equal very small numbers
      -                'failed  (identical): ' DST1 " - " DST2
               END-DISPLAY
           END-IF.

           MOVE 1000001.0 TO DST1.
           MOVE 1000000.0 TO DST2.
           IF DST1 = DST2 THEN
               DISPLAY 'move/compare of nearly equal big numbers failed
      -                '(identical): ' DST1 " - " DST2
               END-DISPLAY
           END-IF.

      * Within tolerance by definition, therefore not checked
      *     MOVE 1000000000.0 TO DST1.
      *     MOVE 1000000001.0 TO DST2.
      *     IF DST1 = DST2 THEN
      *         DISPLAY 'move/compare of nearly equal very big numbers fa
      *-                'iled (identical): ' DST1 " - " DST2
      *         END-DISPLAY
      *     END-IF.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:640: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:640"
( $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/run_fundamental.at:640"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:641: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:641"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:641"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_451
#AT_START_452
at_fn_group_banner 452 'run_fundamental.at:646' \
  "Overlapping MOVE" "                               " 4
at_xfail=no
(
  $as_echo "452. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >subprog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. subprog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        LINKAGE SECTION.
        01 F1 PIC X(10).
        01 F2 PIC X(15).

        PROCEDURE DIVISION USING F1 F2.
        MOVE F2(1:6) TO F1 (1:8).
        IF F1 not = "Hallo1  90"
           DISPLAY "error:3: " F1
           END-DISPLAY
        END-IF

        GOBACK.
_ATEOF


cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.

        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 STRUCTURE.
            05 FIELD1 PIC X(5).
            05 FIELD2 PIC X(10).

        PROCEDURE DIVISION.
           MOVE "Hallo" TO FIELD1.
           MOVE "1234567890" TO FIELD2.

           MOVE FIELD2 TO STRUCTURE.
           IF FIELD1 not = "12345"
              DISPLAY "error:1: " FIELD1
              END-DISPLAY
           END-IF
           IF FIELD2 not = "67890     "
              DISPLAY "error:2: " FIELD2
              END-DISPLAY
           END-IF


           MOVE "Hallo" TO FIELD1.
           MOVE "1234567890" TO FIELD2.

           CALL "subprog" USING BY REFERENCE FIELD2 STRUCTURE
           END-CALL

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:702: \$COMPILE_MODULE subprog.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE subprog.cob" "run_fundamental.at:702"
( $at_check_trace; $COMPILE_MODULE subprog.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/run_fundamental.at:702"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:703: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:703"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:15: warning: overlapping MOVE may produce unpredictable results
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:703"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:706: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:706"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:706"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog2.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  FILLER.
         05  TSTMOV1 PIC X(479).
         05  TSTMOV2 PIC X(10).
       PROCEDURE DIVISION.
           MOVE "0123456789" TO TSTMOV2.
           MOVE TSTMOV2 (2:9) TO TSTMOV2 (1:9)
           IF TSTMOV2 NOT = "1234567899"
              DISPLAY "  PROBLEM MOVE: " TSTMOV2
           ELSE
              DISPLAY "  OK with MOVE: " TSTMOV2.
           MOVE "0123456789" TO TSTMOV2.
           MOVE TSTMOV2 (1:8) TO TSTMOV2 (2:8)
           IF TSTMOV2 = "0000000009"
              DISPLAY "IBM style MOVE: " TSTMOV2
           ELSE IF TSTMOV2 NOT = "0012345679"
              DISPLAY "  PROBLEM MOVE: " TSTMOV2
           ELSE
              DISPLAY "  OK with MOVE: " TSTMOV2.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:734: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_fundamental.at:734"
( $at_check_trace; $COMPILE prog2.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2.cob:11: warning: overlapping MOVE may produce unpredictable results
prog2.cob:17: warning: overlapping MOVE may produce unpredictable results
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:734"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:739: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_fundamental.at:739"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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 with MOVE: 1234567899
  OK with MOVE: 0012345679
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:739"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_452
#AT_START_453
at_fn_group_banner 453 'run_fundamental.at:747' \
  "Overlapping MOVE" "                               " 4
at_xfail=no
(
  $as_echo "453. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  FILLER.
         05  TSTMOV1 PIC X(479).
         05  TSTMOV2 PIC X(10).
       PROCEDURE DIVISION.
           MOVE "0123456789" TO TSTMOV2.
           MOVE TSTMOV2 (2:9) TO TSTMOV2 (1:9)
           IF TSTMOV2 NOT = "1234567899"
              DISPLAY "  PROBLEM MOVE: " TSTMOV2
           ELSE
              DISPLAY "  OK with MOVE: " TSTMOV2.
           MOVE "0123456789" TO TSTMOV2.
           MOVE TSTMOV2 (1:8) TO TSTMOV2 (2:8)
           IF TSTMOV2 = "0000000009"
              DISPLAY "IBM style MOVE: " TSTMOV2
           ELSE IF TSTMOV2 NOT = "0012345679"
              DISPLAY "  PROBLEM MOVE: " TSTMOV2
           ELSE
              DISPLAY "  OK with MOVE: " TSTMOV2.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:776: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:776"
( $at_check_trace; $COMPILE 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: overlapping MOVE may produce unpredictable results
prog.cob:17: warning: overlapping MOVE may produce unpredictable results
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:776"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:781: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:781"
( $at_check_trace; $COBCRUN_DIRECT ./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 with MOVE: 1234567899
  OK with MOVE: 0012345679
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:781"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_453
#AT_START_454
at_fn_group_banner 454 'run_fundamental.at:789' \
  "IBM MOVE" "                                       " 4
at_xfail=no
(
  $as_echo "454. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  FILLER.
         05  TSTMOV1 PIC X(479).
         05  TSTMOV2 PIC X(10).
       PROCEDURE DIVISION.
           MOVE "0123456789" TO TSTMOV2.
           MOVE TSTMOV2 (2:9) TO TSTMOV2 (1:9)
           IF TSTMOV2 NOT = "1234567899"
              DISPLAY "  PROBLEM MOVE: " TSTMOV2
           ELSE
              DISPLAY "  OK with MOVE: " TSTMOV2.
           MOVE "0123456789" TO TSTMOV2.
           MOVE TSTMOV2 (1:8) TO TSTMOV2 (2:8)
           IF TSTMOV2 = "0000000009"
              DISPLAY "IBM style MOVE: " TSTMOV2
           ELSE IF TSTMOV2 NOT = "0012345679"
              DISPLAY "  PROBLEM MOVE: " TSTMOV2
           ELSE
              DISPLAY "  OK with MOVE: " TSTMOV2.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:818: \$COMPILE -fmove-ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fmove-ibm prog.cob" "run_fundamental.at:818"
( $at_check_trace; $COMPILE -fmove-ibm 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/run_fundamental.at:818"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:820: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:820"
( $at_check_trace; $COBCRUN_DIRECT ./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 with MOVE: 1234567899
IBM style MOVE: 0000000009
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:820"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_454
#AT_START_455
at_fn_group_banner 455 'run_fundamental.at:828' \
  "ALPHABETIC test" "                                " 4
at_xfail=no
(
  $as_echo "455. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(04) VALUE "AAAA".
       01  FILLER REDEFINES X.
           03  XBYTE    PIC X.
           03  FILLER   PIC XXX.
       PROCEDURE        DIVISION.
           MOVE X"0D"   TO XBYTE.
           IF X ALPHABETIC
              DISPLAY "Fail - Alphabetic"
              END-DISPLAY
           END-IF.
           MOVE "A"     TO XBYTE.
           IF X NOT ALPHABETIC
              DISPLAY "Fail - Not Alphabetic"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:854: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:854"
( $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/run_fundamental.at:854"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:855: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:855"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:855"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_455
#AT_START_456
at_fn_group_banner 456 'run_fundamental.at:860' \
  "ALPHABETIC-UPPER test" "                          " 4
at_xfail=no
(
  $as_echo "456. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(04) VALUE "AAAA".
       01  FILLER REDEFINES X.
           03  XBYTE    PIC X.
           03  FILLER   PIC XXX.
       PROCEDURE        DIVISION.
           MOVE X"0D"   TO XBYTE.
           IF X ALPHABETIC-UPPER
              DISPLAY "Fail - Not alphabetic upper"
              END-DISPLAY
           END-IF.
           MOVE "A"     TO XBYTE.
           IF X NOT ALPHABETIC-UPPER
              DISPLAY "Fail - Alphabetic upper"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:886: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:886"
( $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/run_fundamental.at:886"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:887: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:887"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:887"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_456
#AT_START_457
at_fn_group_banner 457 'run_fundamental.at:892' \
  "ALPHABETIC-LOWER test" "                          " 4
at_xfail=no
(
  $as_echo "457. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(04) VALUE "aaaa".
       01  FILLER REDEFINES X.
           03  XBYTE    PIC X.
           03  FILLER   PIC XXX.
       PROCEDURE        DIVISION.
           MOVE X"0D"   TO XBYTE.
           IF X ALPHABETIC-LOWER
              DISPLAY "Fail - Not alphabetic lower"
              END-DISPLAY
           END-IF.
           MOVE "a"     TO XBYTE.
           IF X NOT ALPHABETIC-LOWER
              DISPLAY "Fail - Alphabetic lower"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:918: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:918"
( $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/run_fundamental.at:918"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:919: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:919"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:919"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_457
#AT_START_458
at_fn_group_banner 458 'run_fundamental.at:924' \
  "GLOBAL at same level" "                           " 4
at_xfail=no
(
  $as_echo "458. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  X   PIC X(5) GLOBAL  VALUE "prog1".
       PROCEDURE        DIVISION.
           DISPLAY X
           END-DISPLAY.
           CALL "prog2"
           END-CALL
           CALL "prog3"
           END-CALL
           STOP RUN.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01  X   PIC X(5) GLOBAL  VALUE "prog2".
        PROCEDURE        DIVISION.
            DISPLAY X
            END-DISPLAY.
            EXIT PROGRAM.
        END PROGRAM prog2.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog3.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        PROCEDURE        DIVISION.
            DISPLAY X
            END-DISPLAY.
            EXIT PROGRAM.
        END PROGRAM prog3.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:963: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:963"
( $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/run_fundamental.at:963"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:964: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:964"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:964"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_458
#AT_START_459
at_fn_group_banner 459 'run_fundamental.at:973' \
  "GLOBAL at lower level" "                          " 4
at_xfail=no
(
  $as_echo "459. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  X   PIC X(5) GLOBAL  VALUE "prog1".
       PROCEDURE        DIVISION.
           DISPLAY X
           END-DISPLAY.
           CALL "prog2"
           END-CALL
           STOP RUN.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01  X   PIC X(5) GLOBAL  VALUE "prog2".
        PROCEDURE        DIVISION.
            DISPLAY X
            END-DISPLAY.
            CALL "prog3"
            END-CALL
            EXIT PROGRAM.
         IDENTIFICATION   DIVISION.
         PROGRAM-ID.      prog3.
         DATA DIVISION.
         WORKING-STORAGE SECTION.
         PROCEDURE        DIVISION.
             DISPLAY X
             END-DISPLAY.
             EXIT PROGRAM.
         END PROGRAM prog3.
        END PROGRAM prog2.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1012: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1012"
( $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/run_fundamental.at:1012"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1013: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1013"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1013"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_459
#AT_START_460
at_fn_group_banner 460 'run_fundamental.at:1022' \
  "GLOBAL CONSTANT" "                                " 4
at_xfail=no
(
  $as_echo "460. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE
              ASSIGN    GLOB-PATH
       .
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE    GLOBAL.
       01  TEST-REC     PIC X(4).
       WORKING-STORAGE  SECTION.
       78  GLOB-PATH           GLOBAL VALUE "GLOBP1".
       01  GLOB-PATH2 CONSTANT GLOBAL       "GLOBP2".
      * Test global vars because of implicitly defined ASSIGN var, too.
       78  GLOB-VAR            GLOBAL VALUE "GLOBV1".
       01  GLOB-VAR2  CONSTANT GLOBAL       "GLOBV2".
       PROCEDURE        DIVISION.
           DISPLAY GLOB-PATH GLOB-VAR
           END-DISPLAY.
           CALL "prog2"
           END-CALL.
           CALL "prog3"
           END-CALL.
           STOP RUN.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        ENVIRONMENT      DIVISION.
        INPUT-OUTPUT     SECTION.
        FILE-CONTROL.
        SELECT TEST2-FILE
               ASSIGN    GLOB-PATH2
        .
        DATA             DIVISION.
        FILE             SECTION.
        FD  TEST2-FILE   GLOBAL.
        01  TEST2-REC    PIC X(4).
        WORKING-STORAGE  SECTION.
        PROCEDURE        DIVISION.
            DISPLAY GLOB-PATH2 GLOB-VAR2
            END-DISPLAY.
            EXIT PROGRAM.
        END PROGRAM prog2.
       END PROGRAM prog.
       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST3-FILE
              ASSIGN    GLOB-PATH
       .
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST3-FILE   GLOBAL.
       01  TEST3-REC    PIC X(4).
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY 'in prog3'
           END-DISPLAY
           IF GLOB-PATH NOT = SPACES
              DISPLAY GLOB-PATH
              END-DISPLAY
           END-IF
           EXIT PROGRAM.
       END PROGRAM prog3.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1095: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1095"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:60: warning: variable 'GLOB-PATH' 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/run_fundamental.at:1095"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1098: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1098"
( $at_check_trace; $COBCRUN_DIRECT ./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 "GLOBP1GLOBV1
GLOBP2GLOBV2
in prog3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1098"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_460
#AT_START_461
at_fn_group_banner 461 'run_fundamental.at:1107' \
  "GLOBAL identifiers from ENVIRONMENT DIVISION" "   " 4
at_xfail=no
(
  $as_echo "461. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       FUNCTION-ID. f1.
       DATA DIVISION.
       LINKAGE SECTION.
       01 r BINARY-LONG.
       PROCEDURE DIVISION RETURNING r.
           move 1 to r
           GOBACK
           .
       END FUNCTION f1.
       FUNCTION-ID. f2.
       DATA DIVISION.
       LINKAGE SECTION.
       01 i BINARY-LONG.
       01 r BINARY-LONG.
       PROCEDURE DIVISION USING i RETURNING r.
           add i to i giving r
           GOBACK
           .
       END FUNCTION f2.

       PROGRAM-ID.   prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           FUNCTION f1
           FUNCTION f2.
       SPECIAL-NAMES.
           CURRENCY SIGN IS "Y"
           DECIMAL-POINT IS COMMA.

       PROCEDURE DIVISION.
           CALL "prog-nested"
           .

       PROGRAM-ID. prog-nested.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77  n1    BINARY-LONG VALUE 0.
       77  curr  PIC 9.9999,99Y.

       PROCEDURE DIVISION.
           MOVE f1()   TO n1
           IF n1 NOT = 1
             DISPLAY "ERROR 1" GOBACK
           END-IF
           MOVE f2(n1) TO n1
           IF n1 NOT = 2
             DISPLAY "ERROR 2" GOBACK
           END-IF
           MOVE f1()   TO n1
           IF n1 NOT = 1
             DISPLAY "ERROR 1 2nd" GOBACK
           END-IF
           MOVE f2(f2(n1)) TO n1
           IF n1 NOT = 4
             DISPLAY "ERROR 4" GOBACK
           END-IF
           MOVE n1 TO curr
           DISPLAY curr

           GOBACK
           .
       END PROGRAM prog-nested.
       END PROGRAM prog.

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1180: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1180"
( $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/run_fundamental.at:1180"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1181: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1181"
( $at_check_trace; $COBCRUN_DIRECT ./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.0004,00Y
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1181"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_461
#AT_START_462
at_fn_group_banner 462 'run_fundamental.at:1188' \
  "function with variable-length RETURNING item" "   " 4
at_xfail=no
(
  $as_echo "462. $at_setup_line: testing $at_desc ..."
  $at_traceon



# see Bug #641


# Skipped in 3.1.1 as the codegen is not safe (returning local variable address)
# codegen adjusted in 4.x

$as_echo "run_fundamental.at:1197" >"$at_check_line_file"
at_fn_check_skip 77 "$at_srcdir/run_fundamental.at:1197"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       FUNCTION-ID. reply.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 arg-len   USAGE BINARY-LONG.
       LINKAGE SECTION.
       01 argument  PIC X ANY LENGTH.
       01 result.
          05 filler PIC X OCCURS 0 to 999 DEPENDING ON arg-len.
       PROCEDURE DIVISION USING BY REFERENCE argument RETURNING result.
           MOVE FUNCTION LENGTH (argument) TO arg-len
           MOVE argument TO result.
       END FUNCTION reply.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           FUNCTION reply.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77  arg   pic x(100).

       PROCEDURE DIVISION.
      *>
           IF not (FUNCTION         REPLY ("test")  = "test"
               and FUNCTION LENGTH (REPLY ("test")) = 4     )
              DISPLAY "'test' failed: "
                     FUNCTION LENGTH (REPLY ("test")) " #"
                     FUNCTION         REPLY ("test")  "#".
      *>
           IF not (FUNCTION         REPLY ("test   ")  = "test"
               and FUNCTION LENGTH (REPLY ("test   ")) = 7     )
              DISPLAY "'test   ' failed: "
                     FUNCTION LENGTH (REPLY ("test   ")) " #"
                     FUNCTION         REPLY ("test   ")  "#".
      *>
           IF not (FUNCTION         REPLY (arg)  = spaces
               and FUNCTION LENGTH (REPLY (arg)) = 100 )
              DISPLAY "empty arg failed: "
                     FUNCTION LENGTH (REPLY (arg)) " #"
                     FUNCTION         REPLY (arg)  "#".
      *>
           MOVE "echo this" to arg
           IF not (FUNCTION         REPLY (arg)  = arg
               and FUNCTION LENGTH (REPLY (arg)) = 100 )
              DISPLAY "echo arg failed: "
                     FUNCTION LENGTH (REPLY (arg)) " #"
                     FUNCTION         REPLY (arg)  "#".
      *>
           MOVE z"echo this" to arg
           IF not (FUNCTION         REPLY (arg)  = arg
               and FUNCTION LENGTH (REPLY (arg)) = 100 )
              DISPLAY "z'echo arg failed: "
                     FUNCTION LENGTH (REPLY (arg)) " #"
                     FUNCTION         REPLY (arg)  "#".
      *>
           GOBACK
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1265: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1265"
( $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/run_fundamental.at:1265"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1266: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1266"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:1266"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_462
#AT_START_463
at_fn_group_banner 463 'run_fundamental.at:1271' \
  "Entry point visibility (1)" "                     " 4
at_xfail=no
(
  $as_echo "463. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       PROCEDURE        DIVISION.
           CALL 'module'
           CALL 'modulepart'
           STOP RUN.
_ATEOF


cat >module.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      module.
       DATA DIVISION.
       PROCEDURE        DIVISION.
           DISPLAY 'A' WITH NO ADVANCING
           GOBACK.
       ENTRY 'modulepart'.
           DISPLAY 'B' WITH NO ADVANCING
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1296: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1296"
( $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/run_fundamental.at:1296"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1297: \$COMPILE_MODULE module.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE module.cob" "run_fundamental.at:1297"
( $at_check_trace; $COMPILE_MODULE module.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/run_fundamental.at:1297"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1298: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1298"
( $at_check_trace; $COBCRUN_DIRECT ./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 "AB" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1298"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_463
#AT_START_464
at_fn_group_banner 464 'run_fundamental.at:1303' \
  "Entry point visibility (2)" "                     " 4
at_xfail=no
(
  $as_echo "464. $at_setup_line: testing $at_desc ..."
  $at_traceon



# TODO: skip on __OS400__

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       PROCEDURE        DIVISION.
       CALL 'module'
       STOP RUN.
_ATEOF


cat >module.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
some (void)
{
  return 0;
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1328: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1328"
( $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/run_fundamental.at:1328"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1329: \$COMPILE_MODULE module.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE module.c" "run_fundamental.at:1329"
( $at_check_trace; $COMPILE_MODULE module.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/run_fundamental.at:1329"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1330: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1330"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:6: error: entry point 'module' not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1330"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_464
#AT_START_465
at_fn_group_banner 465 'run_fundamental.at:1337' \
  "Contained program visibility (1)" "               " 4
at_xfail=no
(
  $as_echo "465. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  X   PIC X(5) GLOBAL  VALUE "prog1".
       PROCEDURE        DIVISION.
           IF X NOT = "prog1"
              DISPLAY X
              END-DISPLAY
           END-IF.
           CALL "prog2"
           END-CALL.
           CALL "prog3"
           END-CALL.
           STOP RUN.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01  X   PIC X(5) GLOBAL  VALUE "prog2".
        PROCEDURE        DIVISION.
            IF X NOT = "prog2"
               DISPLAY X
               END-DISPLAY
            END-IF.
            CALL "prog3"
            END-CALL.
            EXIT PROGRAM.
         IDENTIFICATION   DIVISION.
         PROGRAM-ID.      prog3.
         DATA DIVISION.
         WORKING-STORAGE SECTION.
         PROCEDURE        DIVISION.
             IF X NOT = "prog2"
                DISPLAY X
                END-DISPLAY
             END-IF
             EXIT PROGRAM.
         END PROGRAM prog3.
        END PROGRAM prog2.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1384: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1384"
( $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/run_fundamental.at:1384"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1385: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1385"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:14: error: module 'prog3' not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1385"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_465
#AT_START_466
at_fn_group_banner 466 'run_fundamental.at:1392' \
  "Contained program visibility (2)" "               " 4
at_xfail=no
(
  $as_echo "466. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  X   PIC X(5) GLOBAL  VALUE "prog1".
       PROCEDURE        DIVISION.
           IF X NOT = "prog1"
              DISPLAY X
              END-DISPLAY
           END-IF.
           CALL "prog2"
           END-CALL.
           STOP RUN.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01  X   PIC X(5) GLOBAL  VALUE "prog2".
        PROCEDURE        DIVISION.
            IF X NOT = "prog2"
               DISPLAY X
               END-DISPLAY
            END-IF.
            CALL "prog3"
            END-CALL.
            EXIT PROGRAM.
        END PROGRAM prog2.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog3.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        PROCEDURE        DIVISION.
            IF X NOT = "prog2"
               DISPLAY X
               END-DISPLAY
            END-IF.
            EXIT PROGRAM.
        END PROGRAM prog3.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1437: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1437"
( $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/run_fundamental.at:1437"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1438: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1438"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:25: error: module 'prog3' not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1438"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_466
#AT_START_467
at_fn_group_banner 467 'run_fundamental.at:1445' \
  "Contained program visibility (3)" "               " 4
at_xfail=no
(
  $as_echo "467. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  X   PIC X(5) GLOBAL  VALUE "prog1".
       PROCEDURE        DIVISION.
           IF X NOT = "prog1"
              DISPLAY X
              END-DISPLAY
           END-IF.
           CALL "prog2"
           END-CALL.
           STOP RUN.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01  X   PIC X(5) GLOBAL  VALUE "prog2".
        PROCEDURE        DIVISION.
            IF X NOT = "prog2"
               DISPLAY X
               END-DISPLAY
            END-IF.
            CALL "prog3"
            END-CALL.
            EXIT PROGRAM.
        END PROGRAM prog2.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog3 COMMON.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        PROCEDURE        DIVISION.
            IF X NOT = "prog1"
               DISPLAY X
               END-DISPLAY
            END-IF.
            EXIT PROGRAM.
        END PROGRAM prog3.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1490: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1490"
( $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/run_fundamental.at:1490"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1491: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1491"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:1491"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_467
#AT_START_468
at_fn_group_banner 468 'run_fundamental.at:1496' \
  "Contained program visibility (4)" "               " 4
at_xfail=no
(
  $as_echo "468. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE        DIVISION.
           DISPLAY "P1" NO ADVANCING
           END-DISPLAY.
           CALL "prog2"
           END-CALL
           CALL "prog3"
           END-CALL
           STOP RUN.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        PROCEDURE        DIVISION.
            DISPLAY "P2" NO ADVANCING
            END-DISPLAY.
            EXIT PROGRAM.
        END PROGRAM prog2.
       END PROGRAM prog.
       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE        DIVISION.
           DISPLAY "P3" NO ADVANCING
           END-DISPLAY.
           CALL "prog2"
           END-CALL.
           EXIT PROGRAM.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        PROCEDURE        DIVISION.
            DISPLAY "P4" NO ADVANCING
            END-DISPLAY.
            EXIT PROGRAM.
        END PROGRAM prog2.
       END PROGRAM prog3.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1544: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1544"
( $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/run_fundamental.at:1544"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1545: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1545"
( $at_check_trace; $COBCRUN_DIRECT ./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 "P1P2P3P4" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1545"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_468
#AT_START_469
at_fn_group_banner 469 'run_fundamental.at:1551' \
  "CALL/CANCEL with program-prototype-name" "        " 4
at_xfail=no
(
  $as_echo "469. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       ENVIRONMENT     DIVISION.
       CONFIGURATION   SECTION.
       REPOSITORY.
           PROGRAM recursion-test
           PROGRAM cancel-test
           .
       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  num         PIC 9 VALUE 0.

       PROCEDURE       DIVISION.
           CALL recursion-test USING num
           DISPLAY "<"

           CALL cancel-test
           CALL cancel-test
           CANCEL cancel-test
           CALL cancel-test
           DISPLAY "<"
           .
       END PROGRAM     prog.


       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     recursion-test RECURSIVE.

       DATA            DIVISION.
       LINKAGE         SECTION.
       01  x           PIC 9.

       PROCEDURE       DIVISION USING x.
           ADD 1 TO x
           DISPLAY x NO ADVANCING
           IF x = 1
               CALL recursion-test USING x
           END-IF
           .
       END PROGRAM     recursion-test.


       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     cancel-test.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  x           PIC 9 VALUE 1.

       PROCEDURE       DIVISION.
           DISPLAY x NO ADVANCING
           ADD 1 TO x
           .
       END PROGRAM     cancel-test.
_ATEOF


# TO-DO: Fix these warnings when program prototypes are added.
{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1613: \$COMPILE -fno-program-name-redefinition prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fno-program-name-redefinition prog.cob" "run_fundamental.at:1613"
( $at_check_trace; $COMPILE -fno-program-name-redefinition 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: no definition/prototype seen for PROGRAM 'recursion-test'
prog.cob:9: warning: no definition/prototype seen for PROGRAM 'cancel-test'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1613"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1617: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1617"
( $at_check_trace; $COBCRUN_DIRECT ./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<
121<
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1617"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_469
#AT_START_470
at_fn_group_banner 470 'run_fundamental.at:1624' \
  "GLOBAL FD (1)" "                                  " 4
at_xfail=no
(
  $as_echo "470. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE
              ASSIGN      "TESTFILE"
              ACCESS       DYNAMIC
              ORGANIZATION RELATIVE
              STATUS       TESTSTAT
              RELATIVE KEY TESTKEY
       .
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE    GLOBAL.
       01  TEST-REC     PIC X(4).
       WORKING-STORAGE  SECTION.
       01  GLOBVALS.
           03  TESTKEY  PIC 9(4).
           03  TESTSTAT PIC XX.
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CALL  "prog2"
           END-CALL.
           CLOSE TEST-FILE.
           STOP RUN.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        PROCEDURE        DIVISION.
            READ TEST-FILE
                 INVALID KEY
                 DISPLAY "NOK"
                 END-DISPLAY
            END-READ.
            EXIT PROGRAM.
        END PROGRAM prog2.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1669: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1669"
( $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/run_fundamental.at:1669"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_470
#AT_START_471
at_fn_group_banner 471 'run_fundamental.at:1674' \
  "GLOBAL FD (2)" "                                  " 4
at_xfail=no
(
  $as_echo "471. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE
              ASSIGN      "TESTFILE"
              ACCESS       DYNAMIC
              ORGANIZATION INDEXED
              STATUS       TESTSTAT
              RECORD KEY   TESTKEY
       .
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE    GLOBAL.
       01  TEST-REC.
           03  TESTKEY  PIC X(4).
       WORKING-STORAGE  SECTION.
       01  GLOBVALS.
           03  TESTSTAT PIC XX.
       PROCEDURE        DIVISION.
           OPEN  INPUT TEST-FILE.
           CALL  "prog2"
           END-CALL.
           CLOSE TEST-FILE.
           STOP RUN.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        PROCEDURE        DIVISION.
            READ TEST-FILE
                 INVALID KEY
                 DISPLAY "NOK"
                 END-DISPLAY
            END-READ.
            EXIT PROGRAM.
        END PROGRAM prog2.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1719: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1719"
( $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/run_fundamental.at:1719"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_471
#AT_START_472
at_fn_group_banner 472 'run_fundamental.at:1724' \
  "GLOBAL FD (3)" "                                  " 4
at_xfail=no
(
  $as_echo "472. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE
              ASSIGN      "TESTFILE"
              ACCESS       DYNAMIC
              ORGANIZATION RELATIVE
              STATUS       TESTSTAT
              RELATIVE KEY TESTKEY
       .
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE    GLOBAL.
       01  TEST-REC     PIC X(4).
       WORKING-STORAGE  SECTION.
       01  GLOBVALS.
           03  TESTKEY  PIC 9(4).
           03  TESTSTAT PIC XX.
       PROCEDURE        DIVISION.
           MOVE "00"    TO TESTSTAT.
           CALL  "prog2"
           END-CALL.
           IF TESTSTAT = "00"
              DISPLAY "Not OK"
              END-DISPLAY
           END-IF.
           STOP RUN.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        PROCEDURE        DIVISION.
            OPEN  INPUT TEST-FILE.
            EXIT PROGRAM.
        END PROGRAM prog2.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1768: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1768"
( $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/run_fundamental.at:1768"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1769: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1769"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:1769"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_472
#AT_START_473
at_fn_group_banner 473 'run_fundamental.at:1774' \
  "GLOBAL FD (4)" "                                  " 4
at_xfail=no
(
  $as_echo "473. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE
              ASSIGN      "TESTFILE"
              ACCESS       DYNAMIC
              ORGANIZATION INDEXED
              STATUS       TESTSTAT
              RECORD KEY   TESTKEY
       .
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE    GLOBAL.
       01  TEST-REC.
           03  TESTKEY  PIC X(4).
       WORKING-STORAGE  SECTION.
       01  GLOBVALS.
           03  TESTSTAT PIC XX.
       PROCEDURE        DIVISION.
           MOVE "00"    TO TESTSTAT.
           CALL  "prog2"
           END-CALL.
           IF TESTSTAT = "00"
              DISPLAY "Not OK"
              END-DISPLAY
           END-IF.
           STOP RUN.
        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        PROCEDURE        DIVISION.
            OPEN  INPUT TEST-FILE.
            EXIT PROGRAM.
        END PROGRAM prog2.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1818: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1818"
( $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/run_fundamental.at:1818"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1819: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1819"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:1819"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_473
#AT_START_474
at_fn_group_banner 474 'run_fundamental.at:1824' \
  "CANCEL test (1)" "                                " 4
at_xfail=no
(
  $as_echo "474. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE        DIVISION.
           CANCEL "notthere".
           CANCEL "prog".
           DISPLAY "NG" NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1840: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1840"
( $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/run_fundamental.at:1840"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1841: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1841"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:8: error: attempt to CANCEL active program
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1841"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1844: COB_PHYSICAL_CANCEL=1 ./prog"
at_fn_check_prepare_trace "run_fundamental.at:1844"
( $at_check_trace; COB_PHYSICAL_CANCEL=1 ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:8: error: attempt to CANCEL active program
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1844"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_474
#AT_START_475
at_fn_group_banner 475 'run_fundamental.at:1851' \
  "CANCEL test (2)" "                                " 4
at_xfail=no
(
  $as_echo "475. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE        DIVISION.
           CALL "prog2"
           END-CALL.
           DISPLAY "NG" NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE        DIVISION.
           CANCEL "prog".
           DISPLAY "NG" NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1879: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1879"
( $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/run_fundamental.at:1879"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1880: \$COMPILE_MODULE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE prog2.cob" "run_fundamental.at:1880"
( $at_check_trace; $COMPILE_MODULE prog2.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/run_fundamental.at:1880"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1881: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1881"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:7: error: attempt to CANCEL active program
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1881"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1884: COB_PHYSICAL_CANCEL=1 ./prog"
at_fn_check_prepare_trace "run_fundamental.at:1884"
( $at_check_trace; COB_PHYSICAL_CANCEL=1 ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:7: error: attempt to CANCEL active program
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_fundamental.at:1884"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_475
#AT_START_476
at_fn_group_banner 476 'run_fundamental.at:1891' \
  "CANCEL test (3)" "                                " 4
at_xfail=no
(
  $as_echo "476. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE        DIVISION.
           CALL "prog2"
           END-CALL.
           CALL "prog2"
           END-CALL.
           CANCEL "prog2".
           CALL "prog2"
           END-CALL.
           CANCEL "prog2".
           DISPLAY "NG" NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77  VAR          PIC 9(01) value 1.
       PROCEDURE        DIVISION.
           DISPLAY VAR NO ADVANCING
           END-DISPLAY.
           ADD  1 TO VAR END-ADD.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1926: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1926"
( $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/run_fundamental.at:1926"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1927: \$COMPILE_MODULE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE prog2.cob" "run_fundamental.at:1927"
( $at_check_trace; $COMPILE_MODULE prog2.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/run_fundamental.at:1927"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1928: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1928"
( $at_check_trace; $COBCRUN_DIRECT ./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 "121NG" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1928"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1929: COB_PHYSICAL_CANCEL=1 ./prog"
at_fn_check_prepare_trace "run_fundamental.at:1929"
( $at_check_trace; COB_PHYSICAL_CANCEL=1 ./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 "121NG" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1929"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_476
#AT_START_477
at_fn_group_banner 477 'run_fundamental.at:1934' \
  "Separate sign positions (1)" "                    " 4
at_xfail=no
(
  $as_echo "477. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC S9 VALUE -1 SIGN LEADING SEPARATE.
       01  Y            PIC S9 VALUE -1 SIGN TRAILING SEPARATE.
       PROCEDURE        DIVISION.
           DISPLAY X(1:1) X(2:1) NO ADVANCING
           END-DISPLAY.
           DISPLAY Y(1:1) Y(2:1) NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1952: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1952"
( $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/run_fundamental.at:1952"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1953: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1953"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:1953"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_477
#AT_START_478
at_fn_group_banner 478 'run_fundamental.at:1958' \
  "Separate sign positions (2)" "                    " 4
at_xfail=no
(
  $as_echo "478. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC S9 SIGN LEADING SEPARATE.
       01  Y            PIC S9 SIGN TRAILING SEPARATE.
       PROCEDURE        DIVISION.
           MOVE 0 TO X.
           DISPLAY X NO ADVANCING
           END-DISPLAY.
           MOVE ZERO TO X.
           DISPLAY X NO ADVANCING
           END-DISPLAY.
           MOVE 0 TO Y.
           DISPLAY Y NO ADVANCING
           END-DISPLAY.
           MOVE ZERO TO Y.
           DISPLAY Y NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1983: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:1983"
( $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/run_fundamental.at:1983"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1984: \$COMPILE_MODULE -fpretty-display prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE -fpretty-display prog.cob" "run_fundamental.at:1984"
( $at_check_trace; $COMPILE_MODULE -fpretty-display 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/run_fundamental.at:1984"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1985: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:1985"
( $at_check_trace; $COBCRUN_DIRECT ./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+00+0+" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1985"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:1986: \$COBCRUN prog"
at_fn_check_prepare_dynamic "$COBCRUN prog" "run_fundamental.at:1986"
( $at_check_trace; $COBCRUN 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+00+0+" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:1986"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_478
#AT_START_479
at_fn_group_banner 479 'run_fundamental.at:1991' \
  "Context sensitive words (1)" "                    " 4
at_xfail=no
(
  $as_echo "479. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  BYTE-LENGTH  PIC 9.
       01  X            CONSTANT AS BYTE-LENGTH OF BYTE-LENGTH.
       PROCEDURE        DIVISION.
           MOVE X TO BYTE-LENGTH.
           DISPLAY BYTE-LENGTH NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2008: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2008"
( $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/run_fundamental.at:2008"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2009: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2009"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:2009"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_479
#AT_START_480
at_fn_group_banner 480 'run_fundamental.at:2014' \
  "Context sensitive words (2)" "                    " 4
at_xfail=no
(
  $as_echo "480. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  YYYYMMDD     PIC 9 VALUE 0.
       01  X            PIC X(16).
       PROCEDURE        DIVISION.
           ACCEPT X FROM DATE YYYYMMDD
           END-ACCEPT.
           DISPLAY YYYYMMDD NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2032: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2032"
( $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/run_fundamental.at:2032"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2033: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2033"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:2033"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_480
#AT_START_481
at_fn_group_banner 481 'run_fundamental.at:2038' \
  "Context sensitive words (3)" "                    " 4
at_xfail=no
(
  $as_echo "481. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  YYYYDDD      PIC 9 VALUE 0.
       01  X            PIC X(16).
       PROCEDURE        DIVISION.
           ACCEPT X FROM DAY YYYYDDD
           END-ACCEPT.
           DISPLAY YYYYDDD NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2056: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2056"
( $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/run_fundamental.at:2056"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2057: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2057"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:2057"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_481
#AT_START_482
at_fn_group_banner 482 'run_fundamental.at:2062' \
  "Context sensitive words (4)" "                    " 4
at_xfail=no
(
  $as_echo "482. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       REPOSITORY.
           FUNCTION ALL INTRINSIC.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  INTRINSIC    PIC 9 VALUE 0.
       PROCEDURE        DIVISION.
           DISPLAY INTRINSIC NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2081: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2081"
( $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/run_fundamental.at:2081"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2082: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2082"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:2082"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_482
#AT_START_483
at_fn_group_banner 483 'run_fundamental.at:2087' \
  "Context sensitive words (5)" "                    " 4
at_xfail=no
(
  $as_echo "483. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog RECURSIVE.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  RECURSIVE    PIC 9 VALUE 0.
       PROCEDURE        DIVISION.
           DISPLAY RECURSIVE NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2104: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2104"
( $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/run_fundamental.at:2104"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2105: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2105"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:2105"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_483
#AT_START_484
at_fn_group_banner 484 'run_fundamental.at:2110' \
  "Context sensitive words (6)" "                    " 4
at_xfail=no
(
  $as_echo "484. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  NORMAL       PIC 9 VALUE 0.
       PROCEDURE        DIVISION.
           DISPLAY NORMAL NO ADVANCING *> Intentionally no period or END-DISPLAY
           STOP RUN NORMAL.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2126: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2126"
( $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/run_fundamental.at:2126"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2127: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2127"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:2127"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_484
#AT_START_485
at_fn_group_banner 485 'run_fundamental.at:2132' \
  "Context sensitive words (7)" "                    " 4
at_xfail=no
(
  $as_echo "485. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X               PIC 9 VALUE 0.
       01  AWAY-FROM-ZERO  PIC 9 VALUE 0.
       PROCEDURE        DIVISION.
           COMPUTE X ROUNDED MODE AWAY-FROM-ZERO
                   AWAY-FROM-ZERO = 1.1
           END-COMPUTE
           DISPLAY X AWAY-FROM-ZERO NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2153: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2153"
( $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/run_fundamental.at:2153"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2154: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2154"
( $at_check_trace; $COBCRUN_DIRECT ./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 "21" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2154"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_485
#AT_START_486
at_fn_group_banner 486 'run_fundamental.at:2159' \
  "Context sensitive words (8)" "                    " 4
at_xfail=no
(
  $as_echo "486. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  UNBOUNDED.
           03 ATTRIBUTES  PIC 9 VALUE 0.
       01  LOC.
           03 NAMESPACE   PIC 9 VALUE 1.
       PROCEDURE        DIVISION.
           DISPLAY UNBOUNDED ATTRIBUTES
                   NAMESPACE IN LOC
                   NO ADVANCING.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2180: \$COMPILE -std=ibm-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=ibm-strict prog.cob" "run_fundamental.at:2180"
( $at_check_trace; $COMPILE -std=ibm-strict 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/run_fundamental.at:2180"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2181: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2181"
( $at_check_trace; $COBCRUN_DIRECT ./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" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2181"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_486
#AT_START_487
at_fn_group_banner 487 'run_fundamental.at:2186' \
  "ROUNDED AWAY-FROM-ZERO" "                         " 4
at_xfail=no
(
  $as_echo "487. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  M                PIC S9.
       01  N                PIC S9.
       01  O                PIC S9.
       01  P                PIC S9.
       01  Q                PIC S9.
       01  R                PIC S9.
       01  S                PIC S9.
       01  T                PIC S9.
       01  U                PIC S9.
       01  V                PIC S9.
       PROCEDURE DIVISION.
           COMPUTE M ROUNDED MODE AWAY-FROM-ZERO
                   = 2.49
           END-COMPUTE
           COMPUTE N ROUNDED MODE AWAY-FROM-ZERO
                   = -2.49
           END-COMPUTE
           COMPUTE O ROUNDED MODE AWAY-FROM-ZERO
                   = 2.50
           END-COMPUTE
           COMPUTE P ROUNDED MODE AWAY-FROM-ZERO
                   = -2.50
           END-COMPUTE
           COMPUTE Q ROUNDED MODE AWAY-FROM-ZERO
                   = 3.49
           END-COMPUTE
           COMPUTE R ROUNDED MODE AWAY-FROM-ZERO
                   = -3.49
           END-COMPUTE
           COMPUTE S ROUNDED MODE AWAY-FROM-ZERO
                   = 3.50
           END-COMPUTE
           COMPUTE T ROUNDED MODE AWAY-FROM-ZERO
                   = -3.50
           END-COMPUTE
           COMPUTE U ROUNDED MODE AWAY-FROM-ZERO
                   = 3.510
           END-COMPUTE
           COMPUTE V ROUNDED MODE AWAY-FROM-ZERO
                   = -3.510
           END-COMPUTE
           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
                   " " U " " V
               NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2243: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2243"
( $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/run_fundamental.at:2243"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2244: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2244"
( $at_check_trace; $COBCRUN_DIRECT ./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 -3 +3 -3 +4 -4 +4 -4 +4 -4" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2244"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_487
#AT_START_488
at_fn_group_banner 488 'run_fundamental.at:2249' \
  "ROUNDED NEAREST-AWAY-FROM-ZERO" "                 " 4
at_xfail=no
(
  $as_echo "488. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  M                PIC S9.
       01  N                PIC S9.
       01  O                PIC S9.
       01  P                PIC S9.
       01  Q                PIC S9.
       01  R                PIC S9.
       01  S                PIC S9.
       01  T                PIC S9.
       01  U                PIC S9.
       01  V                PIC S9.
       PROCEDURE DIVISION.
           COMPUTE M ROUNDED MODE NEAREST-AWAY-FROM-ZERO
                   = 2.49
           END-COMPUTE
           COMPUTE N ROUNDED MODE NEAREST-AWAY-FROM-ZERO
                   = -2.49
           END-COMPUTE
           COMPUTE O ROUNDED MODE NEAREST-AWAY-FROM-ZERO
                   = 2.50
           END-COMPUTE
           COMPUTE P ROUNDED MODE NEAREST-AWAY-FROM-ZERO
                   = -2.50
           END-COMPUTE
           COMPUTE Q ROUNDED MODE NEAREST-AWAY-FROM-ZERO
                   = 3.49
           END-COMPUTE
           COMPUTE R ROUNDED MODE NEAREST-AWAY-FROM-ZERO
                   = -3.49
           END-COMPUTE
           COMPUTE S ROUNDED MODE NEAREST-AWAY-FROM-ZERO
                   = 3.50
           END-COMPUTE
           COMPUTE T ROUNDED MODE NEAREST-AWAY-FROM-ZERO
                   = -3.50
           END-COMPUTE
           COMPUTE U ROUNDED MODE NEAREST-AWAY-FROM-ZERO
                   = 3.510
           END-COMPUTE
           COMPUTE V ROUNDED MODE NEAREST-AWAY-FROM-ZERO
                   = -3.510
           END-COMPUTE
           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
                   " " U " " V
               NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2306: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2306"
( $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/run_fundamental.at:2306"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2307: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2307"
( $at_check_trace; $COBCRUN_DIRECT ./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 -2 +3 -3 +3 -3 +4 -4 +4 -4" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2307"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_488
#AT_START_489
at_fn_group_banner 489 'run_fundamental.at:2312' \
  "ROUNDED NEAREST-EVEN" "                           " 4
at_xfail=no
(
  $as_echo "489. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  M                PIC S9.
       01  N                PIC S9.
       01  O                PIC S9.
       01  P                PIC S9.
       01  Q                PIC S9.
       01  R                PIC S9.
       01  S                PIC S9.
       01  T                PIC S9.
       01  U                PIC S9.
       01  V                PIC S9.
       PROCEDURE DIVISION.
           COMPUTE M ROUNDED MODE NEAREST-EVEN
                   = 2.49
           END-COMPUTE
           COMPUTE N ROUNDED MODE NEAREST-EVEN
                   = -2.49
           END-COMPUTE
           COMPUTE O ROUNDED MODE NEAREST-EVEN
                   = 2.50
           END-COMPUTE
           COMPUTE P ROUNDED MODE NEAREST-EVEN
                   = -2.50
           END-COMPUTE
           COMPUTE Q ROUNDED MODE NEAREST-EVEN
                   = 3.49
           END-COMPUTE
           COMPUTE R ROUNDED MODE NEAREST-EVEN
                   = -3.49
           END-COMPUTE
           COMPUTE S ROUNDED MODE NEAREST-EVEN
                   = 3.50
           END-COMPUTE
           COMPUTE T ROUNDED MODE NEAREST-EVEN
                   = -3.50
           END-COMPUTE
           COMPUTE U ROUNDED MODE NEAREST-EVEN
                   = 3.510
           END-COMPUTE
           COMPUTE V ROUNDED MODE NEAREST-EVEN
                   = -3.510
           END-COMPUTE
           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
                   " " U " " V
               NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2369: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2369"
( $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/run_fundamental.at:2369"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2370: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2370"
( $at_check_trace; $COBCRUN_DIRECT ./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 -2 +2 -2 +3 -3 +4 -4 +4 -4" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2370"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_489
#AT_START_490
at_fn_group_banner 490 'run_fundamental.at:2375' \
  "ROUNDED NEAREST-TOWARD-ZERO" "                    " 4
at_xfail=no
(
  $as_echo "490. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  M                PIC S9.
       01  N                PIC S9.
       01  O                PIC S9.
       01  P                PIC S9.
       01  Q                PIC S9.
       01  R                PIC S9.
       01  S                PIC S9.
       01  T                PIC S9.
       01  U                PIC S9.
       01  V                PIC S9.
       PROCEDURE DIVISION.
           COMPUTE M ROUNDED MODE NEAREST-TOWARD-ZERO
                   = 2.49
           END-COMPUTE
           COMPUTE N ROUNDED MODE NEAREST-TOWARD-ZERO
                   = -2.49
           END-COMPUTE
           COMPUTE O ROUNDED MODE NEAREST-TOWARD-ZERO
                   = 2.50
           END-COMPUTE
           COMPUTE P ROUNDED MODE NEAREST-TOWARD-ZERO
                   = -2.50
           END-COMPUTE
           COMPUTE Q ROUNDED MODE NEAREST-TOWARD-ZERO
                   = 3.49
           END-COMPUTE
           COMPUTE R ROUNDED MODE NEAREST-TOWARD-ZERO
                   = -3.49
           END-COMPUTE
           COMPUTE S ROUNDED MODE NEAREST-TOWARD-ZERO
                   = 3.50
           END-COMPUTE
           COMPUTE T ROUNDED MODE NEAREST-TOWARD-ZERO
                   = -3.50
           END-COMPUTE
           COMPUTE U ROUNDED MODE NEAREST-TOWARD-ZERO
                   = 3.510
           END-COMPUTE
           COMPUTE V ROUNDED MODE NEAREST-TOWARD-ZERO
                   = -3.510
           END-COMPUTE
           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
                   " " U " " V
               NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2432: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2432"
( $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/run_fundamental.at:2432"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2433: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2433"
( $at_check_trace; $COBCRUN_DIRECT ./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 -2 +2 -2 +3 -3 +3 -3 +4 -4" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2433"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_490
#AT_START_491
at_fn_group_banner 491 'run_fundamental.at:2438' \
  "ROUNDED TOWARD-GREATER" "                         " 4
at_xfail=no
(
  $as_echo "491. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  M                PIC S9.
       01  N                PIC S9.
       01  O                PIC S9.
       01  P                PIC S9.
       01  Q                PIC S9.
       01  R                PIC S9.
       01  S                PIC S9.
       01  T                PIC S9.
       01  U                PIC S9.
       01  V                PIC S9.
       PROCEDURE DIVISION.
           COMPUTE M ROUNDED MODE TOWARD-GREATER
                   = 2.49
           END-COMPUTE
           COMPUTE N ROUNDED MODE TOWARD-GREATER
                   = -2.49
           END-COMPUTE
           COMPUTE O ROUNDED MODE TOWARD-GREATER
                   = 2.50
           END-COMPUTE
           COMPUTE P ROUNDED MODE TOWARD-GREATER
                   = -2.50
           END-COMPUTE
           COMPUTE Q ROUNDED MODE TOWARD-GREATER
                   = 3.49
           END-COMPUTE
           COMPUTE R ROUNDED MODE TOWARD-GREATER
                   = -3.49
           END-COMPUTE
           COMPUTE S ROUNDED MODE TOWARD-GREATER
                   = 3.50
           END-COMPUTE
           COMPUTE T ROUNDED MODE TOWARD-GREATER
                   = -3.50
           END-COMPUTE
           COMPUTE U ROUNDED MODE TOWARD-GREATER
                   = 3.510
           END-COMPUTE
           COMPUTE V ROUNDED MODE TOWARD-GREATER
                   = -3.510
           END-COMPUTE
           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
                   " " U " " V
               NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2495: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2495"
( $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/run_fundamental.at:2495"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2496: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2496"
( $at_check_trace; $COBCRUN_DIRECT ./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 -2 +3 -2 +4 -3 +4 -3 +4 -3" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2496"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_491
#AT_START_492
at_fn_group_banner 492 'run_fundamental.at:2501' \
  "ROUNDED TOWARD-LESSER" "                          " 4
at_xfail=no
(
  $as_echo "492. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  M                PIC S9.
       01  N                PIC S9.
       01  O                PIC S9.
       01  P                PIC S9.
       01  Q                PIC S9.
       01  R                PIC S9.
       01  S                PIC S9.
       01  T                PIC S9.
       01  U                PIC S9.
       01  V                PIC S9.
       PROCEDURE DIVISION.
           COMPUTE M ROUNDED MODE TOWARD-LESSER
                   = 2.49
           END-COMPUTE
           COMPUTE N ROUNDED MODE TOWARD-LESSER
                   = -2.49
           END-COMPUTE
           COMPUTE O ROUNDED MODE TOWARD-LESSER
                   = 2.50
           END-COMPUTE
           COMPUTE P ROUNDED MODE TOWARD-LESSER
                   = -2.50
           END-COMPUTE
           COMPUTE Q ROUNDED MODE TOWARD-LESSER
                   = 3.49
           END-COMPUTE
           COMPUTE R ROUNDED MODE TOWARD-LESSER
                   = -3.49
           END-COMPUTE
           COMPUTE S ROUNDED MODE TOWARD-LESSER
                   = 3.50
           END-COMPUTE
           COMPUTE T ROUNDED MODE TOWARD-LESSER
                   = -3.50
           END-COMPUTE
           COMPUTE U ROUNDED MODE TOWARD-LESSER
                   = 3.510
           END-COMPUTE
           COMPUTE V ROUNDED MODE TOWARD-LESSER
                   = -3.510
           END-COMPUTE
           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
                   " " U " " V
               NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2558: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2558"
( $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/run_fundamental.at:2558"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2559: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2559"
( $at_check_trace; $COBCRUN_DIRECT ./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 -3 +2 -3 +3 -4 +3 -4 +3 -4" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2559"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_492
#AT_START_493
at_fn_group_banner 493 'run_fundamental.at:2564' \
  "ROUNDED TRUNCATION" "                             " 4
at_xfail=no
(
  $as_echo "493. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  M                PIC S9.
       01  N                PIC S9.
       01  O                PIC S9.
       01  P                PIC S9.
       01  Q                PIC S9.
       01  R                PIC S9.
       01  S                PIC S9.
       01  T                PIC S9.
       01  U                PIC S9.
       01  V                PIC S9.
       PROCEDURE DIVISION.
           COMPUTE M ROUNDED MODE TRUNCATION
                   = 2.49
           END-COMPUTE
           COMPUTE N ROUNDED MODE TRUNCATION
                   = -2.49
           END-COMPUTE
           COMPUTE O ROUNDED MODE TRUNCATION
                   = 2.50
           END-COMPUTE
           COMPUTE P ROUNDED MODE TRUNCATION
                   = -2.50
           END-COMPUTE
           COMPUTE Q ROUNDED MODE TRUNCATION
                   = 3.49
           END-COMPUTE
           COMPUTE R ROUNDED MODE TRUNCATION
                   = -3.49
           END-COMPUTE
           COMPUTE S ROUNDED MODE TRUNCATION
                   = 3.50
           END-COMPUTE
           COMPUTE T ROUNDED MODE TRUNCATION
                   = -3.50
           END-COMPUTE
           COMPUTE U ROUNDED MODE TRUNCATION
                   = 3.510
           END-COMPUTE
           COMPUTE V ROUNDED MODE TRUNCATION
                   = -3.510
           END-COMPUTE
           DISPLAY M " " N " " O " " P " " Q " " R " " S " " T
                   " " U " " V
               NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2621: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2621"
( $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/run_fundamental.at:2621"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2622: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2622"
( $at_check_trace; $COBCRUN_DIRECT ./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 -2 +2 -2 +3 -3 +3 -3 +3 -3" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2622"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_493
#AT_START_494
at_fn_group_banner 494 'run_fundamental.at:2627' \
  "Numeric operations (1)" "                         " 4
at_xfail=no
(
  $as_echo "494. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC S9V9.
       01  Y            PIC S9V9 COMP-3.
       PROCEDURE        DIVISION.
           MOVE -0.1  TO X.
           ADD 1      TO X.
           IF X NOT = 0.9
              DISPLAY X
              END-DISPLAY
           END-IF.
           MOVE  0.1  TO X.
           SUBTRACT 1 FROM X.
           IF X NOT = -0.9
              DISPLAY X
              END-DISPLAY
           END-IF.
           MOVE -0.1 TO Y.
           ADD 1     TO Y.
           IF Y NOT = 0.9
              DISPLAY Y
              END-DISPLAY
           END-IF.
           MOVE  0.1  TO Y.
           SUBTRACT 1 FROM Y.
           IF Y NOT = -0.9
              DISPLAY Y
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2665: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2665"
( $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/run_fundamental.at:2665"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2666: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2666"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:2666"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_494
#AT_START_495
at_fn_group_banner 495 'run_fundamental.at:2671' \
  "Numeric operations (2)" "                         " 4
at_xfail=no
(
  $as_echo "495. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  FIELD        PIC S9(1)V9(1).
       01  FELD2        PIC S9(5)V9(5).
       01  FELD3        PIC 9(1)V9(1).
       01  FELD4        PIC S9(1).
       PROCEDURE        DIVISION.
           MOVE 0.2 TO FIELD
           ADD 1 TO FIELD
           IF FIELD  NOT = 1.2
              DISPLAY "Test  1 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           ADD -1 TO FIELD
           IF FIELD  NOT = -0.8
              DISPLAY "Test  2 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           ADD 1 TO FIELD
           IF FIELD  NOT = 0.8
              DISPLAY "Test  3 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           ADD -1 TO FIELD
           IF FIELD  NOT = -1.2
              DISPLAY "Test  4 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           SUBTRACT 1 FROM FIELD
           IF FIELD  NOT = -0.8
              DISPLAY "Test  5 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           SUBTRACT -1 FROM FIELD
           IF FIELD  NOT = 1.2
              DISPLAY "Test  6 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           SUBTRACT 1 FROM FIELD
           IF FIELD  NOT = -1.2
              DISPLAY "Test  7 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           SUBTRACT -1 FROM FIELD
           IF FIELD  NOT = 0.8
              DISPLAY "Test  8 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           ADD 1 TO FELD2
           IF FELD2  NOT = 1.2
              DISPLAY "Test  9 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           ADD -1 TO FELD2
           IF FELD2  NOT = -0.8
              DISPLAY "Test 10 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           ADD 1 TO FELD2
           IF FELD2  NOT = 0.8
              DISPLAY "Test 11 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           ADD -1 TO FELD2
           IF FELD2  NOT = -1.2
              DISPLAY "Test 12 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           SUBTRACT 1 FROM FELD2
           IF FELD2  NOT = -0.8
              DISPLAY "Test 13 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           SUBTRACT -1 FROM FELD2
           IF FELD2  NOT = 1.2
              DISPLAY "Test 14 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           SUBTRACT 1 FROM FELD2
           IF FELD2  NOT = -1.2
              DISPLAY "Test 15 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           SUBTRACT -1 FROM FELD2
           IF FELD2  NOT = 0.8
              DISPLAY "Test 16 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           ADD 1 TO FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 17 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           ADD -1 TO FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 18 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           ADD 1 TO FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 19 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           ADD -1 TO FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 20 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           SUBTRACT 1 FROM FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 21 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           SUBTRACT -1 FROM FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 22 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           SUBTRACT 1 FROM FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 23 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           SUBTRACT -1 FROM FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 24 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           ADD 1 TO FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 25 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           ADD -1 TO FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 26 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           ADD 1 TO FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 27 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           ADD -1 TO FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 28 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           SUBTRACT 1 FROM FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 29 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           SUBTRACT -1 FROM FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 30 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           SUBTRACT 1 FROM FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 31 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           SUBTRACT -1 FROM FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 32 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           ADD 2 TO FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 33 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           ADD -2 TO FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 34 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           ADD 2 TO FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 35 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           ADD -2 TO FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 36 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           SUBTRACT 2 FROM FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 37 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           SUBTRACT -2 FROM FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 38 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           SUBTRACT 2 FROM FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 39 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           SUBTRACT -2 FROM FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 40 " FELD4
              END-DISPLAY
           END-IF.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2966: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:2966"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:137: warning: ignoring sign
prog.cob:144: warning: ignoring sign
prog.cob:165: warning: ignoring sign
prog.cob:172: warning: ignoring sign
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:2966"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:2972: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:2972"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:2972"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_495
#AT_START_496
at_fn_group_banner 496 'run_fundamental.at:2977' \
  "Numeric operations (3)" "                         " 4
at_xfail=no
(
  $as_echo "496. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  FIELD        PIC S9(1)V9(1) COMP-3.
       01  FELD2        PIC S9(5)V9(5) COMP-3.
       01  FELD3        PIC 9(1)V9(1)  COMP-3.
       01  FELD4        PIC S9(1)      COMP-3.
       PROCEDURE        DIVISION.
           MOVE 0.2 TO FIELD
           ADD 1 TO FIELD
           IF FIELD  NOT = 1.2
              DISPLAY "Test  1 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           ADD -1 TO FIELD
           IF FIELD  NOT = -0.8
              DISPLAY "Test  2 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           ADD 1 TO FIELD
           IF FIELD  NOT = 0.8
              DISPLAY "Test  3 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           ADD -1 TO FIELD
           IF FIELD  NOT = -1.2
              DISPLAY "Test  4 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           SUBTRACT 1 FROM FIELD
           IF FIELD  NOT = -0.8
              DISPLAY "Test  5 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           SUBTRACT -1 FROM FIELD
           IF FIELD  NOT = 1.2
              DISPLAY "Test  6 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           SUBTRACT 1 FROM FIELD
           IF FIELD  NOT = -1.2
              DISPLAY "Test  7 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           SUBTRACT -1 FROM FIELD
           IF FIELD  NOT = 0.8
              DISPLAY "Test  8 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           ADD 1 TO FELD2
           IF FELD2  NOT = 1.2
              DISPLAY "Test  9 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           ADD -1 TO FELD2
           IF FELD2  NOT = -0.8
              DISPLAY "Test 10 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           ADD 1 TO FELD2
           IF FELD2  NOT = 0.8
              DISPLAY "Test 11 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           ADD -1 TO FELD2
           IF FELD2  NOT = -1.2
              DISPLAY "Test 12 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           SUBTRACT 1 FROM FELD2
           IF FELD2  NOT = -0.8
              DISPLAY "Test 13 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           SUBTRACT -1 FROM FELD2
           IF FELD2  NOT = 1.2
              DISPLAY "Test 14 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           SUBTRACT 1 FROM FELD2
           IF FELD2  NOT = -1.2
              DISPLAY "Test 15 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           SUBTRACT -1 FROM FELD2
           IF FELD2  NOT = 0.8
              DISPLAY "Test 16 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           ADD 1 TO FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 17 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           ADD -1 TO FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 18 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           ADD 1 TO FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 19 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           ADD -1 TO FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 20 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           SUBTRACT 1 FROM FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 21 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           SUBTRACT -1 FROM FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 22 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           SUBTRACT 1 FROM FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 23 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           SUBTRACT -1 FROM FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 24 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           ADD 1 TO FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 25 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           ADD -1 TO FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 26 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           ADD 1 TO FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 27 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           ADD -1 TO FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 28 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           SUBTRACT 1 FROM FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 29 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           SUBTRACT -1 FROM FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 30 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           SUBTRACT 1 FROM FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 31 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           SUBTRACT -1 FROM FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 32 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           ADD 2 TO FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 33 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           ADD -2 TO FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 34 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           ADD 2 TO FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 35 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           ADD -2 TO FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 36 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           SUBTRACT 2 FROM FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 37 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           SUBTRACT -2 FROM FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 38 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           SUBTRACT 2 FROM FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 39 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           SUBTRACT -2 FROM FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 40 " FELD4
              END-DISPLAY
           END-IF.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:3272: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:3272"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:137: warning: ignoring sign
prog.cob:144: warning: ignoring sign
prog.cob:165: warning: ignoring sign
prog.cob:172: warning: ignoring sign
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3272"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:3278: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:3278"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:3278"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_496
#AT_START_497
at_fn_group_banner 497 'run_fundamental.at:3283' \
  "Numeric operations (4)" "                         " 4
at_xfail=no
(
  $as_echo "497. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  FIELD        PIC S9(1)V9(1) COMP.
       01  FELD2        PIC S9(5)V9(5) COMP.
       01  FELD3        PIC 9(1)V9(1)  COMP.
       01  FELD4        PIC S9(1)      COMP.
       PROCEDURE        DIVISION.
           MOVE 0.2 TO FIELD
           ADD 1 TO FIELD
           IF FIELD  NOT = 1.2
              DISPLAY "Test  1 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           ADD -1 TO FIELD
           IF FIELD  NOT = -0.8
              DISPLAY "Test  2 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           ADD 1 TO FIELD
           IF FIELD  NOT = 0.8
              DISPLAY "Test  3 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           ADD -1 TO FIELD
           IF FIELD  NOT = -1.2
              DISPLAY "Test  4 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           SUBTRACT 1 FROM FIELD
           IF FIELD  NOT = -0.8
              DISPLAY "Test  5 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           SUBTRACT -1 FROM FIELD
           IF FIELD  NOT = 1.2
              DISPLAY "Test  6 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           SUBTRACT 1 FROM FIELD
           IF FIELD  NOT = -1.2
              DISPLAY "Test  7 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           SUBTRACT -1 FROM FIELD
           IF FIELD  NOT = 0.8
              DISPLAY "Test  8 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           ADD 1 TO FELD2
           IF FELD2  NOT = 1.2
              DISPLAY "Test  9 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           ADD -1 TO FELD2
           IF FELD2  NOT = -0.8
              DISPLAY "Test 10 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           ADD 1 TO FELD2
           IF FELD2  NOT = 0.8
              DISPLAY "Test 11 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           ADD -1 TO FELD2
           IF FELD2  NOT = -1.2
              DISPLAY "Test 12 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           SUBTRACT 1 FROM FELD2
           IF FELD2  NOT = -0.8
              DISPLAY "Test 13 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           SUBTRACT -1 FROM FELD2
           IF FELD2  NOT = 1.2
              DISPLAY "Test 14 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           SUBTRACT 1 FROM FELD2
           IF FELD2  NOT = -1.2
              DISPLAY "Test 15 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           SUBTRACT -1 FROM FELD2
           IF FELD2  NOT = 0.8
              DISPLAY "Test 16 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           ADD 1 TO FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 17 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           ADD -1 TO FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 18 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           ADD 1 TO FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 19 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           ADD -1 TO FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 20 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           SUBTRACT 1 FROM FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 21 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           SUBTRACT -1 FROM FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 22 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           SUBTRACT 1 FROM FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 23 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           SUBTRACT -1 FROM FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 24 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           ADD 1 TO FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 25 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           ADD -1 TO FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 26 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           ADD 1 TO FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 27 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           ADD -1 TO FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 28 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           SUBTRACT 1 FROM FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 29 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           SUBTRACT -1 FROM FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 30 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           SUBTRACT 1 FROM FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 31 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           SUBTRACT -1 FROM FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 32 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           ADD 2 TO FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 33 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           ADD -2 TO FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 34 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           ADD 2 TO FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 35 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           ADD -2 TO FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 36 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           SUBTRACT 2 FROM FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 37 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           SUBTRACT -2 FROM FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 38 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           SUBTRACT 2 FROM FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 39 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           SUBTRACT -2 FROM FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 40 " FELD4
              END-DISPLAY
           END-IF.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:3578: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:3578"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:137: warning: ignoring sign
prog.cob:144: warning: ignoring sign
prog.cob:165: warning: ignoring sign
prog.cob:172: warning: ignoring sign
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3578"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:3584: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:3584"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:3584"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_497
#AT_START_498
at_fn_group_banner 498 'run_fundamental.at:3589' \
  "Numeric operations (5)" "                         " 4
at_xfail=no
(
  $as_echo "498. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  FIELD        PIC S9(1)V9(1) COMP-5.
       01  FELD2        PIC S9(5)V9(5) COMP-5.
       01  FELD3        PIC 9(1)V9(1)  COMP-5.
       01  FELD4        PIC S9(1)      COMP-5.
       PROCEDURE        DIVISION.
           MOVE 0.2 TO FIELD
           ADD 1 TO FIELD
           IF FIELD  NOT = 1.2
              DISPLAY "Test  1 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           ADD -1 TO FIELD
           IF FIELD  NOT = -0.8
              DISPLAY "Test  2 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           ADD 1 TO FIELD
           IF FIELD  NOT = 0.8
              DISPLAY "Test  3 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           ADD -1 TO FIELD
           IF FIELD  NOT = -1.2
              DISPLAY "Test  4 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           SUBTRACT 1 FROM FIELD
           IF FIELD  NOT = -0.8
              DISPLAY "Test  5 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FIELD
           SUBTRACT -1 FROM FIELD
           IF FIELD  NOT = 1.2
              DISPLAY "Test  6 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           SUBTRACT 1 FROM FIELD
           IF FIELD  NOT = -1.2
              DISPLAY "Test  7 " FIELD
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FIELD
           SUBTRACT -1 FROM FIELD
           IF FIELD  NOT = 0.8
              DISPLAY "Test  8 " FIELD
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           ADD 1 TO FELD2
           IF FELD2  NOT = 1.2
              DISPLAY "Test  9 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           ADD -1 TO FELD2
           IF FELD2  NOT = -0.8
              DISPLAY "Test 10 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           ADD 1 TO FELD2
           IF FELD2  NOT = 0.8
              DISPLAY "Test 11 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           ADD -1 TO FELD2
           IF FELD2  NOT = -1.2
              DISPLAY "Test 12 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           SUBTRACT 1 FROM FELD2
           IF FELD2  NOT = -0.8
              DISPLAY "Test 13 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD2
           SUBTRACT -1 FROM FELD2
           IF FELD2  NOT = 1.2
              DISPLAY "Test 14 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           SUBTRACT 1 FROM FELD2
           IF FELD2  NOT = -1.2
              DISPLAY "Test 15 " FELD2
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD2
           SUBTRACT -1 FROM FELD2
           IF FELD2  NOT = 0.8
              DISPLAY "Test 16 " FELD2
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           ADD 1 TO FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 17 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           ADD -1 TO FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 18 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           ADD 1 TO FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 19 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           ADD -1 TO FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 20 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           SUBTRACT 1 FROM FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 21 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 0.2 TO FELD3
           SUBTRACT -1 FROM FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 22 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           SUBTRACT 1 FROM FELD3
           IF FELD3  NOT = 0.8
              DISPLAY "Test 23 " FELD3
              END-DISPLAY
           END-IF.

           MOVE -0.2 TO FELD3
           SUBTRACT -1 FROM FELD3
           IF FELD3  NOT = 1.2
              DISPLAY "Test 24 " FELD3
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           ADD 1 TO FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 25 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           ADD -1 TO FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 26 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           ADD 1 TO FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 27 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           ADD -1 TO FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 28 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           SUBTRACT 1 FROM FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 29 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 2 TO FELD4
           SUBTRACT -1 FROM FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 30 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           SUBTRACT 1 FROM FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 31 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -2 TO FELD4
           SUBTRACT -1 FROM FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 32 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           ADD 2 TO FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 33 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           ADD -2 TO FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 34 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           ADD 2 TO FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 35 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           ADD -2 TO FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 36 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           SUBTRACT 2 FROM FELD4
           IF FELD4  NOT = -1
              DISPLAY "Test 37 " FELD4
              END-DISPLAY
           END-IF.

           MOVE 1 TO FELD4
           SUBTRACT -2 FROM FELD4
           IF FELD4  NOT = 3
              DISPLAY "Test 38 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           SUBTRACT 2 FROM FELD4
           IF FELD4  NOT = -3
              DISPLAY "Test 39 " FELD4
              END-DISPLAY
           END-IF.

           MOVE -1 TO FELD4
           SUBTRACT -2 FROM FELD4
           IF FELD4  NOT = 1
              DISPLAY "Test 40 " FELD4
              END-DISPLAY
           END-IF.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:3884: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:3884"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:137: warning: ignoring sign
prog.cob:144: warning: ignoring sign
prog.cob:165: warning: ignoring sign
prog.cob:172: warning: ignoring sign
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3884"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:3890: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:3890"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:3890"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_498
#AT_START_499
at_fn_group_banner 499 'run_fundamental.at:3895' \
  "Numeric operations (6)" "                         " 4
at_xfail=no
(
  $as_echo "499. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (char *p)
{
  printf ("%c%c", p[0], p[1]);
  return 0;
}
_ATEOF


cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.

        DATA DIVISION.
        WORKING-STORAGE SECTION.

        01 P-FIELD1 PIC 99PPP.
        01 P-FIELD2 PIC PPP99.

        PROCEDURE DIVISION.

        MOVE 5000 TO P-FIELD1.
        ADD 5 TO P-FIELD1 END-ADD
        IF P-FIELD1 NOT = 5000
            DISPLAY "Error: Add 5 to PIC 99PPP."
            END-DISPLAY
        END-IF
        CALL "dump" USING P-FIELD1 END-CALL

        ADD 5000 TO P-FIELD1 END-ADD
        IF P-FIELD1 NOT = 10000
            DISPLAY "Error: Add 5000 to PIC 99PPP."
            END-DISPLAY
        END-IF
        CALL "dump" USING P-FIELD1 END-CALL

        MOVE 0.00055 TO P-FIELD2.
        ADD 0.00033 TO P-FIELD2 END-ADD
        IF P-FIELD2 NOT = 0.00088
            DISPLAY "Error: Add 0.00033 to PIC PPP99."
            END-DISPLAY
        END-IF
        CALL "dump" USING P-FIELD2 END-CALL

        MOVE 0.00055 TO P-FIELD2.
        ADD 0.00300 TO P-FIELD2 END-ADD
        IF P-FIELD2 NOT = 0.00055
            DISPLAY "Error: Add 0.00300 to PIC PPP99."
            END-DISPLAY
        END-IF
        CALL "dump" USING P-FIELD2 END-CALL

        STOP RUN.

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:3957: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "run_fundamental.at:3957"
( $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/run_fundamental.at:3957"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:3958: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:3958"
( $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/run_fundamental.at:3958"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:3959: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:3959"
( $at_check_trace; $COBCRUN_DIRECT ./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 "05108855" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:3959"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_499
#AT_START_500
at_fn_group_banner 500 'run_fundamental.at:3964' \
  "Numeric operations (7)" "                         " 4
at_xfail=no
(
  $as_echo "500. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  FIELD         PIC S9(4)V9(2) COMP-5.
       01  FIELD-DISP    PIC S9(4)V9(2) DISPLAY.
       PROCEDURE        DIVISION.
           MOVE 0.2 TO FIELD.
           ADD 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
               TO FIELD
           END-ADD.
           IF FIELD NOT = 8385.2
              MOVE FIELD TO FIELD-DISP
              DISPLAY 'ADD with wrong result: ' FIELD-DISP
              END-DISPLAY
           END-IF.
           COMPUTE FIELD = (0.2
                         + 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)
                         * 12800000000
                         / 12900000000
           END-COMPUTE.
           IF FIELD NOT = -4670.31
              MOVE FIELD TO FIELD-DISP
              DISPLAY 'COMPUTE with wrong result: ' FIELD-DISP
              END-DISPLAY
           END-IF.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4250: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4250"
( $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/run_fundamental.at:4250"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4251: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4251"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:4251"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_500
#AT_START_501
at_fn_group_banner 501 'run_fundamental.at:4256' \
  "Numeric operations (8)" "                         " 4
at_xfail=no
(
  $as_echo "501. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
          1 COMPUTE-DATA.
           2 COMPUTE-8             PICTURE 999       VALUE ZERO.
       PROCEDURE        DIVISION.
           COMPUTE COMPUTE-8 = (((24.0 + 1) * (60 - 10)) / 125) ** 2
           IF COMPUTE-8 NOT = 100
              DISPLAY 'COMPUTE with wrong result: ' COMPUTE-8
              END-DISPLAY
           END-IF
           COMPUTE COMPUTE-8 = 55 / (1 - 2 + 1)
              NOT ON SIZE ERROR
                 DISPLAY 'SIZE ERROR not set from divide by zero!'
                 END-DISPLAY
           END-COMPUTE
           COMPUTE COMPUTE-8 = 0 ** 1
           IF COMPUTE-8 NOT = 0
              DISPLAY '0 ** 1 <> 0: ' COMPUTE-8
              END-DISPLAY
           END-IF
           COMPUTE COMPUTE-8 = 55 ** 0
           IF COMPUTE-8 NOT = 1
              DISPLAY '55 ** 0 <> 1: ' COMPUTE-8
              END-DISPLAY
           END-IF
           COMPUTE COMPUTE-8 = 1 ** 55
           IF COMPUTE-8 NOT = 1
              DISPLAY '11 ** 55 <> 1: ' COMPUTE-8
              END-DISPLAY
           END-IF

           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4296: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4296"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:14: warning: divide by constant ZERO
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4296"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4299: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4299"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:4299"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_501
#AT_START_502
at_fn_group_banner 502 'run_fundamental.at:4306' \
  "ADD CORRESPONDING" "                              " 4
at_xfail=no
(
  $as_echo "502. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 GROUP-1.
          05 FIELD-A           PIC 9 VALUE 1.
          05 FIELD-B           USAGE BINARY-CHAR VALUE 2.
          05 INNER-GROUP.
             10 FIELD-C        USAGE FLOAT-SHORT VALUE 3.
          05 FIELD-D           PIC X VALUE "A".
       01 GROUP-2.
          05 FIELD-A           PIC 9.
          05 FIELD-B           USAGE BINARY-LONG.
          05 INNER-GROUP.
             10 FIELD-C        PIC 9.
          05 FIELD-D           PIC 9.

       PROCEDURE DIVISION.
       ADD CORRESPONDING GROUP-1 TO GROUP-2.
       IF FIELD-A IN GROUP-2 NOT EQUAL 1 THEN
           DISPLAY "BAD FIELD-A " FIELD-A IN GROUP-2
           END-DISPLAY
       END-IF.
       IF FIELD-B IN GROUP-2 NOT EQUAL 2 THEN
           DISPLAY "BAD FIELD-B " FIELD-B IN GROUP-2
           END-DISPLAY
       END-IF.
       IF FIELD-C IN GROUP-2 NOT EQUAL 3 THEN
           DISPLAY "BAD FIELD-C " FIELD-C IN GROUP-2
           END-DISPLAY
       END-IF.
       IF FIELD-D IN GROUP-2 NOT EQUAL 0 THEN
           DISPLAY "BAD FIELD-D " FIELD-D IN GROUP-2
           END-DISPLAY
       END-IF.
       STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4348: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4348"
( $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/run_fundamental.at:4348"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4349: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4349"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:4349"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_502
#AT_START_503
at_fn_group_banner 503 'run_fundamental.at:4354' \
  "ADD CORRESPONDING no match" "                     " 4
at_xfail=no
(
  $as_echo "503. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 GROUP-1.
          05 FIELD-A           PIC X.
          05 FIELD-B           PIC Z9.
          05 INNER-GROUP.
             10 FIELD-C        PIC X.
          05 FIELD-D           PIC 9.
       01 GROUP-2.
          05 FIELD-A           PIC 9 VALUE 1.
          05 FIELD-B           USAGE BINARY-CHAR VALUE 2.
          05 INNER-GROUP.
             10 FIELD-C        USAGE FLOAT-SHORT VALUE 3.
          05 FIELD-D           PIC X VALUE "A".

       PROCEDURE DIVISION.
       SUBTRACT CORRESPONDING GROUP-2 FROM GROUP-1.
       IF FIELD-A IN GROUP-2 NOT EQUAL 1 THEN
           DISPLAY "BAD FIELD-A " FIELD-A IN GROUP-2
           END-DISPLAY
       END-IF.
       IF FIELD-B IN GROUP-2 NOT EQUAL 2 THEN
           DISPLAY "BAD FIELD-B " FIELD-B IN GROUP-2
           END-DISPLAY
       END-IF.
       IF FIELD-C IN GROUP-2 NOT EQUAL 3 THEN
           DISPLAY "BAD FIELD-C " FIELD-C IN GROUP-2
           END-DISPLAY
       END-IF.
       IF FIELD-D IN GROUP-2 NOT EQUAL "A" THEN
           DISPLAY "BAD FIELD-D " FIELD-D IN GROUP-2
           END-DISPLAY
       END-IF.
       STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4396: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4396"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:20: warning: no CORRESPONDING items found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4396"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4399: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4399"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:4399"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_503
#AT_START_504
at_fn_group_banner 504 'run_fundamental.at:4404' \
  "SYNC in OCCURS" "                                 " 4
at_xfail=no
(
  $as_echo "504. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01 x.
           03  ptrs                     OCCURS 5 TIMES.
               05  misalign-1           PIC X.
               05  ptr                  POINTER, SYNC.
               05  ptr-num              REDEFINES ptr,
       >>IF P64 SET
                                        USAGE BINARY-DOUBLE UNSIGNED.
       >>ELSE
                                        USAGE BINARY-LONG UNSIGNED.
       >>END-IF
               05  misalign-2           PIC X.

       01  num                          BINARY-LONG.

       PROCEDURE       DIVISION.
           SET ptr (2) TO ADDRESS OF ptr (2)
           SET ptr (3) TO ADDRESS OF ptr (3)

           SUBTRACT ptr-num (2) FROM ptr-num (3) GIVING num
           DISPLAY FUNCTION MOD (num, FUNCTION LENGTH (ptr (1)))
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4436: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4436"
( $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/run_fundamental.at:4436"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4437: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4437"
( $at_check_trace; $COBCRUN_DIRECT ./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
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4437"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_504
#AT_START_505
at_fn_group_banner 505 'run_fundamental.at:4444' \
  "88 level with THRU" "                             " 4
at_xfail=no
(
  $as_echo "505. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  VAR-X        PIC X VALUE SPACE.
           88 X         VALUE "X".
           88 T-Y       VALUE "T" THRU "Y".
       01  VAR-9        PIC 9 VALUE ZERO.
           88 V9        VALUE 9.
           88 V2-4      VALUE 2 THRU 4.
       PROCEDURE        DIVISION.
           IF X
               DISPLAY "NOT OK '" VAR-X "' IS X"
               END-DISPLAY
           END-IF
           SET X TO TRUE
           IF NOT X
               DISPLAY "NOT OK '" VAR-X "' IS NOT X"
               END-DISPLAY
           END-IF
           IF NOT T-Y
               DISPLAY "NOT OK '" VAR-X "' IS NOT T-Y"
               END-DISPLAY
           END-IF
           SET T-Y TO TRUE
           IF NOT T-Y
               DISPLAY "NOT OK '" VAR-X "' IS NOT T-Y"
               END-DISPLAY
           END-IF
           MOVE 'Y' TO VAR-X
           IF NOT T-Y
               DISPLAY "NOT OK '" VAR-X "' IS NOT T-Y"
               END-DISPLAY
           END-IF
           MOVE 'Z' TO VAR-X
           IF T-Y
               DISPLAY "NOT OK '" VAR-X "' IS T-Y"
               END-DISPLAY
           END-IF
           MOVE 'A' TO VAR-X
           IF T-Y
               DISPLAY "NOT OK '" VAR-X "' IS T-Y"
               END-DISPLAY
           END-IF
           IF V9
               DISPLAY "NOT OK '" VAR-9 "' IS V9"
               END-DISPLAY
           END-IF
           SET V9 TO TRUE
           IF NOT V9
               DISPLAY "NOT OK '" VAR-9 "' IS NOT V9"
               END-DISPLAY
           END-IF
           SET V2-4 TO TRUE
           IF V9
               DISPLAY "NOT OK '" VAR-9 "' IS V9"
               END-DISPLAY
           END-IF
           IF NOT V2-4
               DISPLAY "NOT OK '" VAR-9 "' IS NOT V2-4"
               END-DISPLAY
           END-IF
           MOVE 3 TO VAR-9
           IF NOT V2-4
               DISPLAY "NOT OK '" VAR-9 "' IS NOT V2-4"
               END-DISPLAY
           END-IF
           MOVE 4 TO VAR-9
           IF NOT V2-4
               DISPLAY "NOT OK '" VAR-9 "' IS NOT V2-4"
               END-DISPLAY
           END-IF
           MOVE 5 TO VAR-9
           IF V2-4
               DISPLAY "NOT OK '" VAR-9 "' IS V2-4"
               END-DISPLAY
           END-IF
           MOVE 1 TO VAR-9
           IF V2-4
               DISPLAY "NOT OK '" VAR-9 "' IS V2-4"
               END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4533: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4533"
( $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/run_fundamental.at:4533"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4534: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4534"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:4534"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_505
#AT_START_506
at_fn_group_banner 506 'run_fundamental.at:4539' \
  "88 level with FILLER" "                           " 4
at_xfail=no
(
  $as_echo "506. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  FILLER       PIC X VALUE SPACE.
           88 X         VALUE "X".
       PROCEDURE        DIVISION.
           IF X
               DISPLAY "NOT OK"
               END-DISPLAY
           END-IF
           SET X TO TRUE.
           IF NOT X
               DISPLAY "NOT OK"
               END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4562: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4562"
( $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/run_fundamental.at:4562"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4563: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4563"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:4563"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_506
#AT_START_507
at_fn_group_banner 507 'run_fundamental.at:4568' \
  "88 level with FALSE IS clause" "                  " 4
at_xfail=no
(
  $as_echo "507. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MYFLD        PIC X(6) VALUE "ABCDEF".
           88  MYFLD88  VALUE "ABCDEF"
               FALSE IS "OKOKOK".
       PROCEDURE        DIVISION.
       ASTART SECTION.
       A01.
           SET MYFLD88 TO FALSE
           IF MYFLD NOT = "OKOKOK"
              DISPLAY MYFLD
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4590: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4590"
( $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/run_fundamental.at:4590"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4591: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4591"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:4591"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_507
#AT_START_508
at_fn_group_banner 508 'run_fundamental.at:4596' \
  "BLANK WHEN ZERO" "                                " 4
at_xfail=no
(
  $as_echo "508. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  x            PIC 9, BLANK WHEN ZERO, VALUE 1.

       PROCEDURE        DIVISION.
           DISPLAY x
           MOVE 0 TO x
           DISPLAY FUNCTION TRIM(x)
           MOVE ZERO TO x
           DISPLAY FUNCTION TRIM(x)
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4616: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4616"
( $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/run_fundamental.at:4616"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4617: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4617"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:4617"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_508
#AT_START_509
at_fn_group_banner 509 'run_fundamental.at:4626' \
  "MULTIPLY BY literal in INITIAL program" "         " 4
at_xfail=no
(
  $as_echo "509. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog INITIAL.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  num          PIC 9(4)    VALUE 5.
       01  result       PIC 9(4).
       01  ws-temp      PIC 9(8)V99.
       01  ws-temp2     PIC 9(3)V99 VALUE 10.50.
       PROCEDURE        DIVISION.
           MULTIPLY num BY 4 GIVING result
           MOVE 1.10          TO WS-TEMP.
           MULTIPLY WS-TEMP2  BY WS-TEMP GIVING WS-TEMP.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4644: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4644"
( $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/run_fundamental.at:4644"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4645: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4645"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:4645"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_509
#AT_START_510
at_fn_group_banner 510 'run_fundamental.at:4650' \
  "debugging lines (not active)" "                   " 4
at_xfail=no
(
  $as_echo "510. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY.
      D    DISPLAY "KO" NO ADVANCING
      D    END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4666: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4666"
( $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/run_fundamental.at:4666"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4667: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4667"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:4667"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_510
#AT_START_511
at_fn_group_banner 511 'run_fundamental.at:4673' \
  "debugging lines (-fdebugging-line)" "             " 4
at_xfail=no
(
  $as_echo "511. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY.
      D    DISPLAY "KO" NO ADVANCING
      D    END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4689: \$COMPILE -fdebugging-line prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdebugging-line prog.cob" "run_fundamental.at:4689"
( $at_check_trace; $COMPILE -fdebugging-line 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/run_fundamental.at:4689"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4690: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4690"
( $at_check_trace; $COBCRUN_DIRECT ./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 "OKKO" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4690"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_511
#AT_START_512
at_fn_group_banner 512 'run_fundamental.at:4696' \
  "debugging lines (WITH DEBUGGING MODE)" "          " 4
at_xfail=no
(
  $as_echo "512. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
      D    DISPLAY "KO" NO ADVANCING UPON STDOUT
      D    END-DISPLAY.
           DISPLAY "OK" NO ADVANCING UPON STDOUT
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4715: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4715"
( $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/run_fundamental.at:4715"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4716: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4716"
( $at_check_trace; $COBCRUN_DIRECT ./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 "KOOK" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_512
#AT_START_513
at_fn_group_banner 513 'run_fundamental.at:4722' \
  "debugging lines, free format (not active)" "      " 4
at_xfail=no
(
  $as_echo "513. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
             DISPLAY "OK" NO ADVANCING
             END-DISPLAY.
      >>D    DISPLAY "KO" NO ADVANCING
      >>D    END-DISPLAY.
             STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4738: \$COMPILE -free prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -free prog.cob" "run_fundamental.at:4738"
( $at_check_trace; $COMPILE -free 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/run_fundamental.at:4738"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4739: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4739"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:4739"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_513
#AT_START_514
at_fn_group_banner 514 'run_fundamental.at:4745' \
  "debugging lines, free format (-fdebugging-line)" "" 4
at_xfail=no
(
  $as_echo "514. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
             DISPLAY "OK" NO ADVANCING
             END-DISPLAY.
      >>D    DISPLAY "KO" NO ADVANCING
      >>D    END-DISPLAY.
             STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4761: \$COMPILE -free -fdebugging-line prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -free -fdebugging-line prog.cob" "run_fundamental.at:4761"
( $at_check_trace; $COMPILE -free -fdebugging-line 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/run_fundamental.at:4761"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4762: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:4762"
( $at_check_trace; $COBCRUN_DIRECT ./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 "OKKO" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4762"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_514
#AT_START_515
at_fn_group_banner 515 'run_fundamental.at:4768' \
  "USE FOR DEBUGGING (no DEBUGGING MODE)" "          " 4
at_xfail=no
(
  $as_echo "515. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       DECLARATIVES.
       TEST-DEBUG SECTION. USE FOR DEBUGGING ON ALL PROCEDURES.
           DISPLAY DEBUG-ITEM END-DISPLAY.
       END DECLARATIVES.
       FIRST-PAR.
           DISPLAY "OK1" END-DISPLAY.
           GO TO SECOND-PAR.
       SECOND-PAR.
           DISPLAY "OK2" END-DISPLAY.
       THIRD-PAR.
           DISPLAY "OK3" END-DISPLAY.
           PERFORM FIRST-PAR THRU SECOND-PAR.
           DISPLAY "OK4" END-DISPLAY.
           PERFORM SECOND-PAR.
           DISPLAY "OK5" END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4798: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4798"
( $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/run_fundamental.at:4798"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4799: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:4799"
( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./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 "OK1
OK2
OK3
OK1
OK2
OK4
OK2
OK5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4799"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_515
#AT_START_516
at_fn_group_banner 516 'run_fundamental.at:4813' \
  "USE FOR DEBUGGING (COB_SET_DEBUG deactivated)" "  " 4
at_xfail=no
(
  $as_echo "516. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       DECLARATIVES.
       TEST-DEBUG SECTION. USE FOR DEBUGGING ON ALL PROCEDURES.
           DISPLAY DEBUG-ITEM END-DISPLAY.
       END DECLARATIVES.
       FIRST-PAR.
           DISPLAY "OK1" END-DISPLAY.
           GO TO SECOND-PAR.
       SECOND-PAR.
           DISPLAY "OK2" END-DISPLAY.
       THIRD-PAR.
           DISPLAY "OK3" END-DISPLAY.
           PERFORM FIRST-PAR THRU SECOND-PAR.
           DISPLAY "OK4" END-DISPLAY.
           PERFORM SECOND-PAR.
           DISPLAY "OK5" END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4843: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4843"
( $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/run_fundamental.at:4843"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4844: COB_SET_DEBUG=0 \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_SET_DEBUG=0 $COBCRUN_DIRECT ./prog" "run_fundamental.at:4844"
( $at_check_trace; COB_SET_DEBUG=0 $COBCRUN_DIRECT ./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 "OK1
OK2
OK3
OK1
OK2
OK4
OK2
OK5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4844"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_516
#AT_START_517
at_fn_group_banner 517 'run_fundamental.at:4858' \
  "USE FOR DEBUGGING ON ALL PROCEDURES" "            " 4
at_xfail=no
(
  $as_echo "517. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       DECLARATIVES.
       TEST-DEBUG SECTION. USE FOR DEBUGGING ON ALL PROCEDURES.
           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
       END DECLARATIVES.
       FIRST-PAR.
           DISPLAY "OK1" END-DISPLAY.
           GO TO SECOND-PAR.
       SECOND-PAR.
           DISPLAY "OK2" END-DISPLAY.
       THIRD-PAR.
           DISPLAY "OK3" END-DISPLAY.
           PERFORM FIRST-PAR THRU SECOND-PAR.
           DISPLAY "OK4" END-DISPLAY.
           PERFORM SECOND-PAR.
           DISPLAY "OK5" END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4888: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4888"
( $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/run_fundamental.at:4888"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4889: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:4889"
( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./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 "       FIRST-PAR                                        START PROGRAM                 |
OK1
    16 SECOND-PAR                                                                     |
OK2
    18 THIRD-PAR                                        FALL THROUGH                  |
OK3
    21 FIRST-PAR                                        PERFORM LOOP                  |
OK1
    16 SECOND-PAR                                                                     |
OK2
OK4
    23 SECOND-PAR                                       PERFORM LOOP                  |
OK2
OK5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4889"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_517
#AT_START_518
at_fn_group_banner 518 'run_fundamental.at:4909' \
  "USE FOR DEBUGGING ON procedure" "                 " 4
at_xfail=no
(
  $as_echo "518. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       DECLARATIVES.
       TEST-DEBUG SECTION. USE FOR DEBUGGING ON SECOND-PAR.
           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
       END DECLARATIVES.
       FIRST-PAR.
           DISPLAY "OK1" END-DISPLAY.
           GO TO SECOND-PAR.
       SECOND-PAR.
           DISPLAY "OK2" END-DISPLAY.
       THIRD-PAR.
           DISPLAY "OK3" END-DISPLAY.
           PERFORM FIRST-PAR THRU SECOND-PAR.
           DISPLAY "OK4" END-DISPLAY.
           PERFORM SECOND-PAR.
           DISPLAY "OK5" END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4939: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4939"
( $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/run_fundamental.at:4939"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4940: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:4940"
( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./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 "OK1
    16 SECOND-PAR                                                                     |
OK2
OK3
OK1
    16 SECOND-PAR                                                                     |
OK2
OK4
    23 SECOND-PAR                                       PERFORM LOOP                  |
OK2
OK5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4940"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_518
#AT_START_519
at_fn_group_banner 519 'run_fundamental.at:4957' \
  "USE FOR DEBUGGING (COB_SET_DEBUG switched)" "     " 4
at_xfail=no
(
  $as_echo "519. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       DECLARATIVES.
       TEST-DEBUG SECTION. USE FOR DEBUGGING ON ALL PROCEDURES.
           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
       END DECLARATIVES.
       FIRST-PAR.
           SET ENVIRONMENT "COB_SET_DEBUG" TO "false"
           DISPLAY "OK1" END-DISPLAY.
           GO TO SECOND-PAR.
       SECOND-PAR.
           DISPLAY "OK2" END-DISPLAY.
       THIRD-PAR.
           DISPLAY "OK3" END-DISPLAY.
           PERFORM FIRST-PAR THRU SECOND-PAR.
           DISPLAY "OK4" END-DISPLAY.
           SET ENVIRONMENT "COB_SET_DEBUG" TO "Y"
           PERFORM SECOND-PAR.
           DISPLAY "OK5" END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4989: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:4989"
( $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/run_fundamental.at:4989"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:4990: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:4990"
( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./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 "       FIRST-PAR                                        START PROGRAM                 |
OK1
OK2
OK3
OK1
OK2
OK4
    25 SECOND-PAR                                       PERFORM LOOP                  |
OK2
OK5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:4990"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_519
#AT_START_520
at_fn_group_banner 520 'run_fundamental.at:5006' \
  "USE FOR DEBUGGING ON [ALL] REFERENCES OF field" " " 4
at_xfail=no
(
  $as_echo "520. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MY-DATA-FIELDS.
           02  MY-DATA-FIELD-1  PIC 9 VALUE 1.
           02  MY-DATA-FIELD-2  PIC 9 VALUE 4.
       01  MY-DATA-FIELD-B  PIC X(40) VALUE "ABCD".
       PROCEDURE        DIVISION.
       DECLARATIVES.
       TEST-DEBUG SECTION.
           USE FOR DEBUGGING ON ALL REFERENCES OF MY-DATA-FIELD-1
                                ALL               MY-DATA-FIELD-2
                                MY-DATA-FIELD-B.
           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
       END DECLARATIVES.
       INIT-PAR.
           MOVE 6 TO MY-DATA-FIELD-2.
       FIRST-PAR.
           PERFORM VARYING MY-DATA-FIELD-1 FROM 1 BY 1
                   UNTIL   MY-DATA-FIELD-1 > MY-DATA-FIELD-2
              *> empty by design
           END-PERFORM.
       END-PAR.
           MOVE "99" TO MY-DATA-FIELD-B.
           MOVE MY-DATA-FIELD-B TO MY-DATA-FIELDS.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5042: \$COMPILE -fmissing-statement=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fmissing-statement=ok prog.cob" "run_fundamental.at:5042"
( $at_check_trace; $COMPILE -fmissing-statement=ok 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/run_fundamental.at:5042"
$at_failed && at_fn_log_failure
$at_traceon; }

# TODO: validate against other compilers, especially the line 30;
#       likely the second line should be 25 instead of 24:
{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5045: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5045"
( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./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 "    22 MY-DATA-FIELD-2                                  6                                       |
    24 MY-DATA-FIELD-1                                  1                                       |
    24 MY-DATA-FIELD-1                                  1                                       |
    24 MY-DATA-FIELD-2                                  6                                       |
    24 MY-DATA-FIELD-1                                  2                                       |
    24 MY-DATA-FIELD-1                                  2                                       |
    24 MY-DATA-FIELD-2                                  6                                       |
    24 MY-DATA-FIELD-1                                  3                                       |
    24 MY-DATA-FIELD-1                                  3                                       |
    24 MY-DATA-FIELD-2                                  6                                       |
    24 MY-DATA-FIELD-1                                  4                                       |
    24 MY-DATA-FIELD-1                                  4                                       |
    24 MY-DATA-FIELD-2                                  6                                       |
    24 MY-DATA-FIELD-1                                  5                                       |
    24 MY-DATA-FIELD-1                                  5                                       |
    24 MY-DATA-FIELD-2                                  6                                       |
    24 MY-DATA-FIELD-1                                  6                                       |
    24 MY-DATA-FIELD-1                                  6                                       |
    24 MY-DATA-FIELD-2                                  6                                       |
    24 MY-DATA-FIELD-1                                  7                                       |
    24 MY-DATA-FIELD-1                                  7                                       |
    24 MY-DATA-FIELD-2                                  6                                       |
    29 MY-DATA-FIELD-B                                  99                                      |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5045"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_520
#AT_START_521
at_fn_group_banner 521 'run_fundamental.at:5074' \
  "USE FOR DEBUGGING, reference within DEBUGGING" "  " 4
at_xfail=no
(
  $as_echo "521. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  DATA-FIELD   PIC X(40) VALUE "ABCD".
       PROCEDURE        DIVISION.
       DECLARATIVES.
       TEST-DEBUG SECTION.
           USE FOR DEBUGGING ON ALL REFERENCES OF DATA-FIELD.
           DISPLAY DEBUG-ITEM "|".
           MOVE "ABCD" TO DATA-FIELD.
           DISPLAY DEBUG-ITEM "|".
       END DECLARATIVES.
       SOME-PAR.
           MOVE QUOTE TO DATA-FIELD.
           IF DATA-FIELD = QUOTE DISPLAY "NO DEBUG" STOP RUN.
           DISPLAY "DEBUG".
           STOP RUN.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5100: \$COMPILE -Wno-terminator prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -Wno-terminator prog.cob" "run_fundamental.at:5100"
( $at_check_trace; $COMPILE -Wno-terminator 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/run_fundamental.at:5100"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5101: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5101"
( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./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 "    19 DATA-FIELD                                       \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"|
    19 DATA-FIELD                                       \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"|
    20 DATA-FIELD                                       ABCD                                    |
    20 DATA-FIELD                                       ABCD                                    |
DEBUG
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5101"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5108: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:5108"
( $at_check_trace; $COBCRUN_DIRECT ./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 "NO DEBUG
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5108"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_521
#AT_START_522
at_fn_group_banner 522 'run_fundamental.at:5115' \
  "USE FOR DEBUGGING, time of execution" "           " 4
at_xfail=yes
(
  $as_echo "522. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: the debugging procedure is executed after the statement,
#        which is generally fine, but not for "nested" statements
#        where DEBUG-ITEM contains wrong data and the
#        debugging procedure is called too late


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  DATA-FIELD   PIC X(40) VALUE "ABCD".
       PROCEDURE        DIVISION.
       DECLARATIVES.
       TEST-DEBUG SECTION.
           USE FOR DEBUGGING ON ALL REFERENCES OF DATA-FIELD.
           DISPLAY DEBUG-ITEM "|".
           MOVE "ABCD" TO DATA-FIELD.
       END DECLARATIVES.
       SOME-PAR.
           MOVE QUOTE TO DATA-FIELD.
           IF DATA-FIELD = QUOTE
              DISPLAY "NO DEBUG"
           ELSE
              DISPLAY "DEBUG"
              MOVE SPACES TO DATA-FIELD
              CALL "NOTHERE" USING DATA-FIELD
                 ON OVERFLOW
                    DISPLAY "THIS IS FINE".
           STOP RUN.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5152: \$COMPILE -w prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -w prog.cob" "run_fundamental.at:5152"
( $at_check_trace; $COMPILE -w 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/run_fundamental.at:5152"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5153: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5153"
( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./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 "    18 DATA-FIELD                                       \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"|
    19 DATA-FIELD                                       ABCD                                    |
DEBUG
    23 DATA-FIELD                                                                               |
    24 DATA-FIELD                                       ABCD                                    |
THIS IS FINE
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5153"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_522
#AT_START_523
at_fn_group_banner 523 'run_fundamental.at:5165' \
  "USE FOR DEBUGGING, reference with OCCURS" "       " 4
at_xfail=no
(
  $as_echo "523. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  FILLER.
           02 FILLER    OCCURS 10.
              03 FILLER    OCCURS 5.
                 04 DATA-FIELD   PIC X(40) VALUE "ABCD" OCCURS 2.
       PROCEDURE        DIVISION.
       DECLARATIVES.
       TEST-DEBUG SECTION.
           USE FOR DEBUGGING ON ALL REFERENCES OF DATA-FIELD.
           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
       END DECLARATIVES.
       SOME-PAR.
           MOVE QUOTE TO DATA-FIELD (4, 2, 1).
           STOP RUN.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5190: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:5190"
( $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/run_fundamental.at:5190"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5191: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5191"
( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./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 "    20 DATA-FIELD                     +0004 +0002 +0001 \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5191"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_523
#AT_START_524
at_fn_group_banner 524 'run_fundamental.at:5198' \
  "USE FOR DEBUGGING, referencing BASED item" "      " 4
at_xfail=yes
(
  $as_echo "524. $at_setup_line: testing $at_desc ..."
  $at_traceon



# uncommon issue but shouldn't SIGSEGV --> TODO: fix later
# TODO: also check "ADDRESS OF" (non)-ALLOCATED field


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  DATA-FIELD   PIC X(40) VALUE "ABCD" BASED.
       PROCEDURE        DIVISION.
       DECLARATIVES.
       TEST-DEBUG SECTION.
           USE FOR DEBUGGING ON ALL REFERENCES OF DATA-FIELD.
           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
       END DECLARATIVES.
       SOME-PAR.
           ALLOCATE DATA-FIELD INITIALIZED.
           FREE DATA-FIELD.
           STOP RUN.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5225: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:5225"
( $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/run_fundamental.at:5225"
$at_failed && at_fn_log_failure
$at_traceon; }

# not sure about the output, check MF, claiming to support BASED + DEBUGGING
{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5227: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5227"
( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./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 "    17 DATA-FIELD                                      ABCD                                     |
    18 DATA-FIELD                                       ABCD                                    |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5227"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_524
#AT_START_525
at_fn_group_banner 525 'run_fundamental.at:5235' \
  "USE FOR DEBUGGING file" "                         " 4
at_xfail=no
(
  $as_echo "525. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           SOURCE-COMPUTER. mine WITH DEBUGGING MODE.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN "./TEST-FILE".
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE.
       01  TEST-REC     PIC X(40).
       PROCEDURE        DIVISION.
       DECLARATIVES.
       TEST-DEBUG SECTION.
           USE FOR DEBUGGING ON TEST-FILE.
           DISPLAY DEBUG-ITEM "|" END-DISPLAY.
       END DECLARATIVES.
       SOME-PAR.
           OPEN  OUTPUT TEST-FILE.
           WRITE TEST-REC FROM "DEF".
           CLOSE TEST-FILE.
           OPEN  INPUT TEST-FILE.
           READ TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5266: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:5266"
( $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/run_fundamental.at:5266"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5267: COB_SET_DEBUG=1 \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_SET_DEBUG=1 $COBCRUN_DIRECT ./prog" "run_fundamental.at:5267"
( $at_check_trace; COB_SET_DEBUG=1 $COBCRUN_DIRECT ./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 "    21 TEST-FILE                                                                                |
    23 TEST-FILE                                                                                |
    24 TEST-FILE                                                                                |
    25 TEST-FILE                                        DEF                                     |
    26 TEST-FILE                                                                                |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5267"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_525
#AT_START_526
at_fn_group_banner 526 'run_fundamental.at:5278' \
  "Abbreviated Expressions" "                        " 4
at_xfail=no
(
  $as_echo "526. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           SWITCH-1
           IS WRK-SWITCH-1
           ON STATUS IS ON-WRK-SWITCH-1
           OFF STATUS IS OFF-WRK-SWITCH-1
           SWITCH-2
           IS WRK-SWITCH-2
           OFF STATUS IS OFF-WRK-SWITCH-2.
       DATA DIVISION.
      ******************************************************************
       WORKING-STORAGE SECTION.
      *
       01 FLD9-0   PIC 9 VALUE 0.
       01 FLD9-1   PIC 9 VALUE 1.
       01 FLD9-2   PIC 9 VALUE 2.
       01 FLD9-5   PIC 9 VALUE 5.
       01 FLD9-7   PIC 9 VALUE 7.
       01 FLD9-9   PIC 9 VALUE 9.
       01 FLDX     PIC X VALUE 'X'.
       01 FLDY     PIC X VALUE 'Y'.
       01 FLDYY    PIC X VALUE 'Y'.
       01 FLDZ     PIC X VALUE 'Z'.
       01 TESTNUM  PIC 99 VALUE 1.

       PROCEDURE DIVISION.
       MAIN-LINE.

           IF FLD9-7 > FLD9-5 AND NOT < FLD9-0 OR FLD9-1
                PERFORM PASS ELSE PERFORM FAIL.
           IF FLD9-7 NOT = FLD9-5 OR FLD9-1
                PERFORM PASS ELSE PERFORM FAIL.
           IF FLD9-7 NOT = FLD9-5 AND FLD9-1
                PERFORM PASS ELSE PERFORM FAIL.
           IF NOT FLD9-7 = FLD9-5 OR FLD9-1
                PERFORM PASS ELSE PERFORM FAIL.
           IF NOT (FLD9-5 > FLD9-7 OR < FLD9-1)
                PERFORM PASS ELSE PERFORM FAIL.
           IF NOT (FLD9-7 NOT > FLD9-5 AND FLD9-2 AND NOT FLD9-1)
                PERFORM PASS ELSE PERFORM FAIL.
           IF FLD9-9 > FLD9-2 AND FLD9-7 AND FLD9-5
                PERFORM PASS ELSE PERFORM FAIL.
           IF FLD9-9 > FLD9-2 AND FLD9-7 OR FLD9-5
                PERFORM PASS ELSE PERFORM FAIL.
           IF FLD9-1 < FLD9-2 AND FLD9-5 AND FLD9-7
                PERFORM PASS ELSE PERFORM FAIL.

      * // DISPLAY "***Constant expressions***".
           IF 9 > 2 AND 7 AND 5 AND 1
                PERFORM PASS ELSE PERFORM FAIL.
           IF 1 < 2 AND 5 AND 7 AND 9
                PERFORM PASS ELSE PERFORM FAIL.
           IF 5 < 2 OR 1 OR 9 OR 7
                PERFORM PASS ELSE PERFORM FAIL.
           IF 5 > 1 AND < 3 OR 6
                PERFORM PASS ELSE PERFORM FAIL.

      * // DISPLAY "***Switch expressions***".
           IF           ON-WRK-SWITCH-1
                 OR NOT OFF-WRK-SWITCH-2
                AND     OFF-WRK-SWITCH-1
                PERFORM FAIL ELSE PERFORM PASS.
           DISPLAY "***FINE***" WITH NO ADVANCING.
           STOP RUN.

       PASS.
      * // DISPLAY 'Test ' TESTNUM ' passed'
           ADD 1 TO TESTNUM.

       FAIL.
           DISPLAY 'Test ' TESTNUM ' failed!'
           ADD 1 TO TESTNUM.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5359: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:5359"
( $at_check_trace; $COMPILE 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 'MAIN-LINE':
prog.cob:47: warning: suggest parentheses around AND within OR
prog.cob:53: warning: expression '9' GREATER THAN '2' is always TRUE
prog.cob:53: warning: expression '9' GREATER THAN '7' is always TRUE
prog.cob:53: warning: expression '9' GREATER THAN '5' is always TRUE
prog.cob:53: warning: expression '9' GREATER THAN '1' is always TRUE
prog.cob:55: warning: expression '1' LESS THAN '2' is always TRUE
prog.cob:55: warning: expression '1' LESS THAN '5' is always TRUE
prog.cob:55: warning: expression '1' LESS THAN '7' is always TRUE
prog.cob:55: warning: expression '1' LESS THAN '9' is always TRUE
prog.cob:57: warning: expression '5' LESS THAN '2' is always FALSE
prog.cob:57: warning: expression '5' LESS THAN '1' is always FALSE
prog.cob:57: warning: expression '5' LESS THAN '9' is always TRUE
prog.cob:57: warning: expression '5' LESS THAN '7' is always TRUE
prog.cob:59: warning: expression '5' GREATER THAN '1' is always TRUE
prog.cob:59: warning: expression '5' LESS THAN '3' is always FALSE
prog.cob:59: warning: expression '5' LESS THAN '6' is always TRUE
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5359"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5379: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:5379"
( $at_check_trace; $COBCRUN_DIRECT ./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 "***FINE***" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5379"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_526
#AT_START_527
at_fn_group_banner 527 'run_fundamental.at:5384' \
  "integer arithmetic on floating-point var" "       " 4
at_xfail=no
(
  $as_echo "527. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  x           USAGE FLOAT-SHORT VALUE 123.456.

       PROCEDURE       DIVISION.
           ADD 360 TO x
           IF x <> 483.456
               DISPLAY "ADD wrong: " x
               MOVE 483.456 TO x
           END-IF

           SUBTRACT 360 FROM x
           IF x <> 123.456
               DISPLAY "SUBTRACT wrong: " x
               MOVE 123.456 TO x
           END-IF

           DIVIDE 2 INTO x
           IF x <> 61.728
               DISPLAY "DIVIDE wrong: " x
               MOVE 61.728 TO x
           END-IF

           MULTIPLY 2 BY x
           IF x <> 123.456
               DISPLAY "MULTIPLY wrong: " x
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5421: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_fundamental.at:5421"
( $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/run_fundamental.at:5421"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5422: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_fundamental.at:5422"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_fundamental.at:5422"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_527
#AT_START_528
at_fn_group_banner 528 'run_fundamental.at:5426' \
  "TYPEDEF application" "                            " 4
at_xfail=no
(
  $as_echo "528. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >caller.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     caller.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       77  INT         IS TYPEDEF BINARY-LONG.
       77  EXT-INT     IS TYPEDEF BINARY-LONG EXTERNAL.
      *> should this be possible?
      *>77  INT-VAL     IS TYPEDEF USAGE INT VALUE 12.
       77  INT-VAL     IS TYPEDEF BINARY-LONG VALUE 12.
       77  SOMEVAR     USAGE INT VALUE 10.
       77  SOMEVAL     USAGE INT-VAL.
       77  SOMEEXT     USAGE EXT-INT.

       PROCEDURE       DIVISION.
           IF SOMEVAR <> 10
              DISPLAY "SOMEVAR (INT) wrong: " SOMEVAR
           END-IF
           IF SOMEVAL <> 12
              DISPLAY "SOMEVAR (INT-VAL) wrong: " SOMEVAL
           END-IF
           MOVE 42 TO SOMEEXT
           CALL "callee"
           .
_ATEOF


cat >callee.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     callee.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       77  EXT-INT     IS TYPEDEF BINARY-LONG EXTERNAL.
       77  SOMEEXT     USAGE EXT-INT.

       PROCEDURE       DIVISION.
           IF SOMEEXT <> 42
              DISPLAY "SOMEEXT (EXT-INT) wrong: " SOMEEXT
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5472: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_fundamental.at:5472"
( $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/run_fundamental.at:5472"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5473: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_fundamental.at:5473"
( $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/run_fundamental.at:5473"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_fundamental.at:5474: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_fundamental.at:5474"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_fundamental.at:5474"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_528
#AT_START_529
at_fn_group_banner 529 'run_subscripts.at:26' \
  "Subscript out of bounds" "                        " 4
at_xfail=no
(
  $as_echo "529. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 10.
       01 I             PIC 9 VALUE 0.
       PROCEDURE        DIVISION.
           DISPLAY X(I)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:43: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:43"
( $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/run_subscripts.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:44: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:44"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: 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/run_subscripts.at:44"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 10.
       01 I             PIC 99 VALUE 11.
       PROCEDURE        DIVISION.
           DISPLAY X(I)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:62: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_subscripts.at:62"
( $at_check_trace; $COMPILE prog2.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/run_subscripts.at:62"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:63: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_subscripts.at:63"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:10: error: subscript of 'X' out of bounds: 11
note: maximum subscript for 'X': 10
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:63"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_529
#AT_START_530
at_fn_group_banner 530 'run_subscripts.at:71' \
  "Value of DEPENDING ON N out of bounds" "          " 4
at_xfail=no
(
  $as_echo "530. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
       01 N             PIC 9.
       PROCEDURE        DIVISION.
           MOVE 5 TO N.
           MOVE '12345' TO G
           DISPLAY X(3) WITH NO ADVANCING
           END-DISPLAY.
           MOVE 3 TO N.
           DISPLAY X(5)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:93: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:93"
( $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/run_subscripts.at:93"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:94: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:94"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:15: error: OCCURS DEPENDING ON 'N' out of bounds: 3
note: minimum subscript for 'X': 4
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "3" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:94"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
       01 N             PIC 9 VALUE 7.
       PROCEDURE        DIVISION.
           DISPLAY X(5)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:113: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_subscripts.at:113"
( $at_check_trace; $COMPILE prog2.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/run_subscripts.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:114: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_subscripts.at:114"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:10: error: OCCURS DEPENDING ON 'N' out of bounds: 7
note: maximum subscript for 'X': 6
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:114"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_530
#AT_START_531
at_fn_group_banner 531 'run_subscripts.at:122' \
  "Subscript bounds with OCCURS DEPENDING ON (1)" "  " 4
at_xfail=no
(
  $as_echo "531. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
       01 N             PIC 9 VALUE 4.
       PROCEDURE        DIVISION.
           DISPLAY X(5)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:139: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:139"
( $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/run_subscripts.at:139"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:140: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:140"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:10: error: subscript of 'X' out of bounds: 5
note: current maximum subscript for 'X': 4
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_531
#AT_START_532
at_fn_group_banner 532 'run_subscripts.at:148' \
  "Subscript bounds with OCCURS DEPENDING ON (2)" "  " 4
at_xfail=no
(
  $as_echo "532. $at_setup_line: testing $at_desc ..."
  $at_traceon



# verifies that the check is generated within conditions - simple IF

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
       01 N             PIC 9 VALUE 4.
       PROCEDURE        DIVISION.
           IF X(5) <> SPACE
              DISPLAY X(5).
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:167: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:167"
( $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/run_subscripts.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:168: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:168"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:10: error: subscript of 'X' out of bounds: 5
note: current maximum subscript for 'X': 4
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:168"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_532
#AT_START_533
at_fn_group_banner 533 'run_subscripts.at:176' \
  "Subscript bounds with OCCURS DEPENDING ON (3)" "  " 4
at_xfail=no
(
  $as_echo "533. $at_setup_line: testing $at_desc ..."
  $at_traceon



# verifies that the check is generated within conditions - WHEN
# complex test for correct place and not raised if guarded by check

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 4 TO 6 DEPENDING ON N.
       01 N             PIC 9 VALUE 4.
       PROCEDURE        DIVISION.
           EVALUATE TRUE
           WHEN N >= 5
            AND X(5) <> SPACE
              DISPLAY "1-" X(5)
           WHEN N >= 5
           WHEN X(5) <> SPACE
              DISPLAY "2-" X(5)
           END-EVALUATE
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:202: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:202"
( $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/run_subscripts.at:202"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:203: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:203"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:15: error: subscript of 'X' out of bounds: 5
note: current maximum subscript for 'X': 4
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:203"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_533
#AT_START_534
at_fn_group_banner 534 'run_subscripts.at:211' \
  "Subscript by arithmetic expression" "             " 4
at_xfail=no
(
  $as_echo "534. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G             VALUE "1234".
         02 X           PIC X OCCURS 4.
       01 Z             PIC X.
       PROCEDURE        DIVISION.
           MOVE X((3 + 1) / 2) TO Z.
           IF Z NOT = "2"
              DISPLAY Z
              END-DISPLAY
           END-IF.
           MOVE X(2 ** 2) TO Z.
           IF Z NOT = "4"
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:236: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:236"
( $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/run_subscripts.at:236"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:237: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:237"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_subscripts.at:237"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_534
#AT_START_535
at_fn_group_banner 535 'run_subscripts.at:242' \
  "length of ODO w/- reference modification" "       " 4
at_xfail=no
(
  $as_echo "535. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  PLINE.
           03  PLINE-LEN PIC S9(4) COMP-5.
           03  PLINE-TEXT.
               04  FILLER    PIC X(1) OCCURS  1 TO 80
                                      DEPENDING ON PLINE-LEN.
       procedure division.
       a-main section.
             MOVE 5                    TO PLINE-LEN
             MOVE 'the first part in'  TO PLINE-TEXT
             MOVE 30                   TO PLINE-LEN
             IF PLINE-TEXT NOT = 'the f'
                DISPLAY 'text1 wrong: ' PLINE-TEXT
                END-DISPLAY
             END-IF
             MOVE 'the first part in'  TO PLINE-TEXT
             MOVE 4                    TO PLINE-LEN
             MOVE 'second'             TO PLINE-TEXT
             MOVE 14                   TO PLINE-LEN
             IF PLINE-TEXT NOT = 'secofirst part'
                DISPLAY 'text2 wrong: ' PLINE-TEXT
                END-DISPLAY
             END-IF
             MOVE 80                   TO PLINE-LEN
             MOVE SPACES               TO PLINE-TEXT
             MOVE 5                    TO PLINE-LEN
             MOVE 'the first part in'  TO PLINE-TEXT (2:)
             MOVE 30                   TO PLINE-LEN
             IF PLINE-TEXT NOT = ' the '
                DISPLAY 'text3 wrong: ' PLINE-TEXT
                END-DISPLAY
             END-IF
             MOVE 'the first part in'  TO PLINE-TEXT (2:)
             MOVE 4                    TO PLINE-LEN
             MOVE 'second'             TO PLINE-TEXT (2:)
             MOVE 14                   TO PLINE-LEN
             IF PLINE-TEXT NOT = ' sec first par'
                DISPLAY 'text4 wrong: ' PLINE-TEXT
                END-DISPLAY
             END-IF
             STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:292: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:292"
( $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/run_subscripts.at:292"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:293: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:293"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_subscripts.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_535
#AT_START_536
at_fn_group_banner 536 'run_subscripts.at:298' \
  "SEARCH ALL with OCCURS DEPENDING ON" "            " 4
at_xfail=no
(
  $as_echo "536. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
      *
       77  SCREEN-AKT         PIC 9(02) VALUE 0.
       01  SCREEN-TAB.
           03 SCREEN-ENTRY    OCCURS 0  TO  20
                              DEPENDING ON  SCREEN-AKT
                              ASCENDING KEY SCREEN-NAME
                              INDEXED   BY  SCREEN-IDX.
             05 SCREEN-NAME     PIC X(02).

       PROCEDURE DIVISION.

           SEARCH ALL SCREEN-ENTRY
              AT END
                 DISPLAY 'END'
              WHEN SCREEN-NAME (SCREEN-IDX) = 'AB'
                 DISPLAY 'FOUND'
           END-SEARCH
           MOVE 1 TO SCREEN-AKT
           MOVE 'AB' TO  SCREEN-NAME (1)
           SEARCH ALL SCREEN-ENTRY
              AT END
                 DISPLAY 'END'
              WHEN SCREEN-NAME (SCREEN-IDX) = 'AB'
                 DISPLAY 'FOUND'
           END-SEARCH
           MOVE 2 TO SCREEN-AKT
           MOVE 'CD' TO  SCREEN-NAME (2)
           SEARCH ALL SCREEN-ENTRY
              AT END
                 DISPLAY 'END'
              WHEN SCREEN-NAME (SCREEN-IDX) = 'CD'
                 DISPLAY 'FOUND'
           END-SEARCH
           EXIT PROGRAM.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:342: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:342"
( $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/run_subscripts.at:342"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:343: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:343"
( $at_check_trace; $COBCRUN_DIRECT ./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 "END
FOUND
FOUND
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:343"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_536
#AT_START_537
at_fn_group_banner 537 'run_subscripts.at:351' \
  "enable / disable subscript check" "               " 4
at_xfail=no
(
  $as_echo "537. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x VALUE "12345!".
           03  y PIC X OCCURS 5 TIMES.
           03  z PIC X VALUE "!".
       01  idx PIC 99 VALUE 6.

       PROCEDURE DIVISION.
           DISPLAY y (idx)
                   WITH NO ADVANCING
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
                   WITH NO ADVANCING
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:374: \$COMPILE prog.cob -o badprog1"
at_fn_check_prepare_dynamic "$COMPILE prog.cob -o badprog1" "run_subscripts.at:374"
( $at_check_trace; $COMPILE prog.cob -o badprog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:374"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:375: \$COBCRUN_DIRECT ./badprog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./badprog1" "run_subscripts.at:375"
( $at_check_trace; $COBCRUN_DIRECT ./badprog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:13: error: subscript of 'y' out of bounds: 6
note: maximum subscript for 'y': 5
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:375"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:379: \$COBC -x prog.cob -o exprog1"
at_fn_check_prepare_dynamic "$COBC -x prog.cob -o exprog1" "run_subscripts.at:379"
( $at_check_trace; $COBC -x prog.cob -o exprog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:380: \$COBCRUN_DIRECT ./exprog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./exprog1" "run_subscripts.at:380"
( $at_check_trace; $COBCRUN_DIRECT ./exprog1
) >>"$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 "!" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:382: \$COMPILE -fno-ec=EC-BOUND-SUBSCRIPT -o exprog2 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fno-ec=EC-BOUND-SUBSCRIPT -o exprog2 prog.cob" "run_subscripts.at:382"
( $at_check_trace; $COMPILE -fno-ec=EC-BOUND-SUBSCRIPT -o exprog2 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/run_subscripts.at:382"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:383: \$COBCRUN_DIRECT ./exprog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./exprog2" "run_subscripts.at:383"
( $at_check_trace; $COBCRUN_DIRECT ./exprog2
) >>"$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 "!" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:383"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:384: \$COMPILE -fno-ec=BOUND -o exprog3 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fno-ec=BOUND -o exprog3 prog.cob" "run_subscripts.at:384"
( $at_check_trace; $COMPILE -fno-ec=BOUND -o exprog3 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/run_subscripts.at:384"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:385: \$COBCRUN_DIRECT ./exprog3"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./exprog3" "run_subscripts.at:385"
( $at_check_trace; $COBCRUN_DIRECT ./exprog3
) >>"$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 "!" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:387: \$COBC -x -fec=BoUnd-subscript prog.cob -o badprog2"
at_fn_check_prepare_dynamic "$COBC -x -fec=BoUnd-subscript prog.cob -o badprog2" "run_subscripts.at:387"
( $at_check_trace; $COBC -x -fec=BoUnd-subscript prog.cob -o badprog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:387"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:388: \$COBCRUN_DIRECT ./badprog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./badprog2" "run_subscripts.at:388"
( $at_check_trace; $COBCRUN_DIRECT ./badprog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:13: error: subscript of 'y' out of bounds: 6
note: maximum subscript for 'y': 5
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:388"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_537
#AT_START_538
at_fn_group_banner 538 'run_subscripts.at:396' \
  "BOUND and NOBOUND directives" "                   " 4
at_xfail=no
(
  $as_echo "538. $at_setup_line: testing $at_desc ..."
  $at_traceon



# note: the >> TURN directive is checked in run_misc.at

cat >prog.cob <<'_ATEOF'

      $SET BOUND
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x VALUE "12345!".
           03  y PIC X OCCURS 5 TIMES.
           03  z PIC X.
       01  idx PIC 99 VALUE 6.

       PROCEDURE DIVISION.
           DISPLAY y (idx) WITH NO ADVANCING
           .
_ATEOF


cat >progn.cob <<'_ATEOF'

      $SET NOBOUND
       IDENTIFICATION DIVISION.
       PROGRAM-ID. progn.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x VALUE "12345!".
           03  y PIC X OCCURS 5 TIMES.
           03  z PIC X.
       01  idx PIC 99 VALUE 6.

       PROCEDURE DIVISION.
           DISPLAY y (idx) WITH NO ADVANCING
           .
_ATEOF


cat >progn2.cob <<'_ATEOF'

      $SET NO-BOUND
       IDENTIFICATION DIVISION.
       PROGRAM-ID. progn2.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x VALUE "12345!".
           03  y PIC X OCCURS 5 TIMES.
           03  z PIC X.
       01  idx PIC 99 VALUE 6.

       PROCEDURE DIVISION.
           DISPLAY y (idx) WITH NO ADVANCING
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:452: \$COBC -x prog.cob"
at_fn_check_prepare_dynamic "$COBC -x prog.cob" "run_subscripts.at:452"
( $at_check_trace; $COBC -x 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/run_subscripts.at:452"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:453: \$COMPILE progn.cob"
at_fn_check_prepare_dynamic "$COMPILE progn.cob" "run_subscripts.at:453"
( $at_check_trace; $COMPILE progn.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/run_subscripts.at:453"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:454: \$COMPILE progn2.cob"
at_fn_check_prepare_dynamic "$COMPILE progn2.cob" "run_subscripts.at:454"
( $at_check_trace; $COMPILE progn2.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/run_subscripts.at:454"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:455: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:455"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:14: error: subscript of 'y' out of bounds: 6
note: maximum subscript for 'y': 5
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:455"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:459: \$COBCRUN_DIRECT ./progn"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progn" "run_subscripts.at:459"
( $at_check_trace; $COBCRUN_DIRECT ./progn
) >>"$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 "!" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:459"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:460: \$COBCRUN_DIRECT ./progn2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progn2" "run_subscripts.at:460"
( $at_check_trace; $COBCRUN_DIRECT ./progn2
) >>"$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 "!" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_538
#AT_START_539
at_fn_group_banner 539 'run_subscripts.at:465' \
  "SSRANGE and NOSSRANGE directives" "               " 4
at_xfail=no
(
  $as_echo "539. $at_setup_line: testing $at_desc ..."
  $at_traceon



# WARNING: this testcase is "broken" as those SSRANGE may only be
#          defined before IDENTIFICATION DIVISION (iniatial $SET)

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x.
           03  y       PIC X OCCURS 5 TIMES VALUE SPACE.
           03  z       PIC X VALUE "!".
       01  idx         PIC 99 VALUE 6.

       PROCEDURE DIVISION.
      $SET NOSSRANGE
           DISPLAY y (idx)
      *> Note: MF says "sets BOUND"
      $SET SSRANGE
           DISPLAY y (idx)
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:491: \$COMPILE -DTEST-SUBSCRIPT prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -DTEST-SUBSCRIPT prog.cob" "run_subscripts.at:491"
( $at_check_trace; $COMPILE -DTEST-SUBSCRIPT 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/run_subscripts.at:491"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:492: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:492"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:17: error: subscript of 'y' out of bounds: 6
note: maximum subscript for 'y': 5
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "!
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_subscripts.at:492"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_539
#AT_START_540
at_fn_group_banner 540 'run_subscripts.at:501' \
  "CALL with OCCURS DEPENDING ON" "                  " 4
at_xfail=no
(
  $as_echo "540. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog-main.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  parm.
           03  parm-size PIC S999 COMP.
           03  parm-str.
               05  parm-char PIC X OCCURS 0 TO 100 TIMES
                        DEPENDING ON parm-size.

       PROCEDURE DIVISION.
           MOVE 10 TO parm-size
           MOVE "Hi, there!" TO parm-str
           CALL "prog" USING parm
           .
       END PROGRAM prog-main.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       LINKAGE SECTION.
       01  parm.
           03  parm-size PIC S999 COMP.
           03  parm-str.
               05  parm-char PIC X OCCURS 0 TO 100 TIMES
                        DEPENDING ON parm-size.

       PROCEDURE DIVISION USING parm.
           DISPLAY FUNCTION TRIM(parm-str) WITH NO ADVANCING
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_subscripts.at:540: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_subscripts.at:540"
( $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/run_subscripts.at:540"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_subscripts.at:541: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_subscripts.at:541"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Hi, there!" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_subscripts.at:541"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_540
#AT_START_541
at_fn_group_banner 541 'run_refmod.at:25' \
  "Static reference modification" "                  " 4
at_xfail=no
(
  $as_echo "541. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "abcd".
       PROCEDURE        DIVISION.
           DISPLAY X(1:1) ":" X(1:2) ":" X(1:3) ":" X(1:4) ":" X(1:)
           END-DISPLAY.
           DISPLAY X(2:1) ":" X(2:2) ":" X(2:3) ":" X(2:)
           END-DISPLAY.
           DISPLAY X(3:1) ":" X(3:2) ":" X(3:)
           END-DISPLAY.
           DISPLAY X(4:1) ":" X(4:)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:46: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:46"
( $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/run_refmod.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:47: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:47"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:47"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_541
#AT_START_542
at_fn_group_banner 542 'run_refmod.at:57' \
  "Dynamic reference modification" "                 " 4
at_xfail=no
(
  $as_echo "542. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "abcd".
       01 I             PIC 9.
       PROCEDURE        DIVISION.
           MOVE 1 TO I.
           DISPLAY X(I:1)
           END-DISPLAY.
           MOVE 4 TO I.
           DISPLAY X(I:1)
           END-DISPLAY.
           MOVE 1 TO I.
           DISPLAY X(1:I)
           END-DISPLAY.
           MOVE 4 TO I.
           DISPLAY X(1:I)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:83: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.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/run_refmod.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:84: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:84"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_542
#AT_START_543
at_fn_group_banner 543 'run_refmod.at:94' \
  "Offset underflow" "                               " 4
at_xfail=no
(
  $as_echo "543. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "abcd".
       01 I             PIC 9 VALUE 0.
       PROCEDURE        DIVISION.
           DISPLAY X(I:1) NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:110: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:110"
( $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/run_refmod.at:110"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:111: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:111"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:9: error: 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/run_refmod.at:111"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_543
#AT_START_544
at_fn_group_banner 544 'run_refmod.at:118' \
  "Offset overflow" "                                " 4
at_xfail=no
(
  $as_echo "544. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01.
          03 X          PIC X(4) VALUE "abcd".
          03 I          PIC 9 VALUE 5.
       PROCEDURE        DIVISION.
           DISPLAY X(I:1) NO ADVANCING.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:134: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:134"
( $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/run_refmod.at:134"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:135: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:135"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:10: error: offset of 'X' out of bounds: 5, maximum: 4
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:135"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_refmod.at:139: \$COBC -x prog.cob -o progb"
at_fn_check_prepare_dynamic "$COBC -x prog.cob -o progb" "run_refmod.at:139"
( $at_check_trace; $COBC -x prog.cob -o progb
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:139"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:140: \$COBCRUN_DIRECT ./progb"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progb" "run_refmod.at:140"
( $at_check_trace; $COBCRUN_DIRECT ./progb
) >>"$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 "5" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_544
#AT_START_545
at_fn_group_banner 545 'run_refmod.at:145' \
  "Length underflow" "                               " 4
at_xfail=no
(
  $as_echo "545. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "abcd".
       01 I             PIC 9 VALUE 0.
       PROCEDURE        DIVISION.
           DISPLAY X(1:I) NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:161: \$COMPILE -std=cobol2002 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=cobol2002 prog.cob" "run_refmod.at:161"
( $at_check_trace; $COMPILE -std=cobol2002 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/run_refmod.at:161"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:162: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:162"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:9: error: 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/run_refmod.at:162"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "abcd".
       01 I             PIC 9 VALUE 0.
       PROCEDURE        DIVISION.
       >> REF-MOD-ZERO-LENGTH
           DISPLAY X(1:I) NO ADVANCING.
       >> REF-MOD-ZERO-LENGTH OFF
           DISPLAY X(1:I) NO ADVANCING.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:181: \$COMPILE -fno-ref-mod-zero-length prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE -fno-ref-mod-zero-length prog2.cob" "run_refmod.at:181"
( $at_check_trace; $COMPILE -fno-ref-mod-zero-length prog2.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/run_refmod.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:182: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_refmod.at:182"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:11: error: 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/run_refmod.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_545
#AT_START_546
at_fn_group_banner 546 'run_refmod.at:189' \
  "Length overflow" "                                " 4
at_xfail=no
(
  $as_echo "546. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "abcd".
       01 I             PIC 9 VALUE 5.
       PROCEDURE        DIVISION.
           DISPLAY X(1:I) NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:205: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:205"
( $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/run_refmod.at:205"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:206: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:206"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:9: error: length of 'X' out of bounds: 5, maximum: 4
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:206"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "abcd".
       01 I             PIC 9 VALUE 5.
       PROCEDURE        DIVISION.
           DISPLAY X(3:I) NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:223: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_refmod.at:223"
( $at_check_trace; $COMPILE prog2.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/run_refmod.at:223"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:224: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_refmod.at:224"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:9: error: length of 'X' out of bounds: 5, maximum: 4
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:224"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_546
#AT_START_547
at_fn_group_banner 547 'run_refmod.at:231' \
  "Length overflow with offset (1)" "                " 4
at_xfail=no
(
  $as_echo "547. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "abcd".
       01 I             PIC 9 VALUE 3.
       PROCEDURE        DIVISION.
           DISPLAY X(3:I) NO ADVANCING.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:246: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:246"
( $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/run_refmod.at:246"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:247: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:247"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:9: error: length of 'X' out of bounds: 3, starting at: 3, maximum: 4
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:247"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_547
#AT_START_548
at_fn_group_banner 548 'run_refmod.at:254' \
  "Length overflow with offset (2)" "                " 4
at_xfail=no
(
  $as_echo "548. $at_setup_line: testing $at_desc ..."
  $at_traceon



# verifies that the check is generated within conditions - simple IF

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "abcd".
       01 I             PIC 9 VALUE 3.
       PROCEDURE        DIVISION.
           IF X(3:I) <> SPACES
              DISPLAY X(3:I) NO ADVANCING.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:272: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:272"
( $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/run_refmod.at:272"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:273: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:273"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:9: error: length of 'X' out of bounds: 3, starting at: 3, maximum: 4
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:273"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_548
#AT_START_549
at_fn_group_banner 549 'run_refmod.at:280' \
  "Length overflow with offset (3)" "                " 4
at_xfail=no
(
  $as_echo "549. $at_setup_line: testing $at_desc ..."
  $at_traceon



# verifies that the check is generated within conditions - WHEN
# complex test for correct place and not raised if guarded by check

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "abcd".
       01 I             PIC 9 VALUE 3.
       PROCEDURE        DIVISION.
           EVALUATE TRUE
           WHEN I < 2
            AND X(3:I) <> SPACES
              DISPLAY "1-" X(3:I) NO ADVANCING
           WHEN I < 2
           WHEN X(3:I) <> SPACES
              DISPLAY "2-" X(3:I) NO ADVANCING
           END-EVALUATE
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:305: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_refmod.at:305"
( $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/run_refmod.at:305"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:306: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:306"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:14: error: length of 'X' out of bounds: 3, starting at: 3, maximum: 4
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_549
#AT_START_550
at_fn_group_banner 550 'run_refmod.at:313' \
  "enable / disable ref-mod check" "                 " 4
at_xfail=no
(
  $as_echo "550. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x.
           03  y PIC XXX VALUE "abc".
           03  z PIC X VALUE "d".
       01  len PIC 99 VALUE 2.

       PROCEDURE DIVISION.
           DISPLAY y (3:len)
                   WITH NO ADVANCING
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
                   WITH NO ADVANCING
           DISPLAY "."
                   WITH NO ADVANCING
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:337: \$COMPILE -fno-ec=BOUND-REF-MOD prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fno-ec=BOUND-REF-MOD prog.cob" "run_refmod.at:337"
( $at_check_trace; $COMPILE -fno-ec=BOUND-REF-MOD 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/run_refmod.at:337"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:338: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:338"
( $at_check_trace; $COBCRUN_DIRECT ./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 "cd." | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:338"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:339: \$COMPILE -fno-ec=BOUND prog.cob -o progb"
at_fn_check_prepare_dynamic "$COMPILE -fno-ec=BOUND prog.cob -o progb" "run_refmod.at:339"
( $at_check_trace; $COMPILE -fno-ec=BOUND prog.cob -o progb
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:339"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:340: \$COBCRUN_DIRECT ./progb"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progb" "run_refmod.at:340"
( $at_check_trace; $COBCRUN_DIRECT ./progb
) >>"$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 "cd." | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:340"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:341: \$COMPILE prog.cob -o progc"
at_fn_check_prepare_dynamic "$COMPILE prog.cob -o progc" "run_refmod.at:341"
( $at_check_trace; $COMPILE prog.cob -o progc
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:341"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:342: \$COBCRUN_DIRECT ./progc"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./progc" "run_refmod.at:342"
( $at_check_trace; $COBCRUN_DIRECT ./progc
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:13: error: length of 'y' out of bounds: 2, starting at: 3, maximum: 3
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:342"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog2.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x.
           03  y PIC X VALUE "a".
           03  z PIC X VALUE "b".
       01  len   PIC 99 VALUE 0.

       PROCEDURE DIVISION.
           DISPLAY y (1:len)
                   WITH NO ADVANCING
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
                   WITH NO ADVANCING
           DISPLAY "."
                   WITH NO ADVANCING
           MOVE    2 TO len
           DISPLAY y (1:len)
                   WITH NO ADVANCING
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
                   WITH NO ADVANCING
           DISPLAY "."
                   WITH NO ADVANCING
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:374: \$COMPILE -fno-ec=BOUND-REF-MOD prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE -fno-ec=BOUND-REF-MOD prog2.cob" "run_refmod.at:374"
( $at_check_trace; $COMPILE -fno-ec=BOUND-REF-MOD prog2.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/run_refmod.at:374"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:375: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_refmod.at:375"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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 ".ab." | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:375"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:376: \$COMPILE -o prog2b prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE -o prog2b prog2.cob" "run_refmod.at:376"
( $at_check_trace; $COMPILE -o prog2b prog2.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/run_refmod.at:376"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:377: \$COBCRUN_DIRECT ./prog2b"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2b" "run_refmod.at:377"
( $at_check_trace; $COBCRUN_DIRECT ./prog2b
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:20: error: length of 'y' out of bounds: 2, maximum: 1
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "." | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:377"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:380: \$COMPILE -fno-ref-mod-zero-length -o prog2c prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE -fno-ref-mod-zero-length -o prog2c prog2.cob" "run_refmod.at:380"
( $at_check_trace; $COMPILE -fno-ref-mod-zero-length -o prog2c prog2.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/run_refmod.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:381: \$COBCRUN_DIRECT ./prog2c"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2c" "run_refmod.at:381"
( $at_check_trace; $COBCRUN_DIRECT ./prog2c
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:13: error: length of 'y' 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/run_refmod.at:381"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_550
#AT_START_551
at_fn_group_banner 551 'run_refmod.at:388' \
  "MF SSRANGE and NOSSRANGE directives" "            " 4
at_xfail=no
(
  $as_echo "551. $at_setup_line: testing $at_desc ..."
  $at_traceon



# Note: SSRANGE directive is "initial" and must be specified
#       before IDENTIFICATION DIVISION

cat >prog.cob <<'_ATEOF'

      $SET NOSSRANGE
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x.
           03  y       PIC X VALUE SPACE.
           03  z       PIC X VALUE "!".
       01  n           PIC 9 VALUE 0.
       01  m           PIC 9 VALUE 2.

       PROCEDURE DIVISION.
           DISPLAY y (1:m) NO ADVANCING
           DISPLAY y (1:n) no ADVANCING
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:413: \$COBC -x -debug -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COBC -x -debug -std=mf prog.cob" "run_refmod.at:413"
( $at_check_trace; $COBC -x -debug -std=mf 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/run_refmod.at:413"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:414: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_refmod.at:414"
( $at_check_trace; $COBCRUN_DIRECT ./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 " !" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_refmod.at:414"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog1.cob <<'_ATEOF'

      $SET SSRANGE"1"
       IDENTIFICATION DIVISION.
       PROGRAM-ID. progb.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x.
           03  y       PIC X VALUE SPACE.
           03  z       PIC X VALUE "!".
       01  n           PIC 9 VALUE 0.
       01  m           PIC 9 VALUE 2.

       PROCEDURE DIVISION.
           DISPLAY y (1:m) NO ADVANCING
           DISPLAY y (1:n)
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:435: \$COBC -x -std=mf prog1.cob"
at_fn_check_prepare_dynamic "$COBC -x -std=mf prog1.cob" "run_refmod.at:435"
( $at_check_trace; $COBC -x -std=mf prog1.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/run_refmod.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:436: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_refmod.at:436"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog1.cob:16: error: length of 'y' out of bounds: 0
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " !" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

      $SET SSRANGE"2"
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog2.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x.
           03  y       PIC X VALUE SPACE.
           03  z       PIC X VALUE "!".
       01  n           PIC 9 VALUE 0.
       01  m           PIC 9 VALUE 2.

       PROCEDURE DIVISION.
      $IF TEST-ZERO-LEN-REF-MOD DEFINED
           DISPLAY y (1:n)
      $END
           DISPLAY y (1:m)
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:461: \$COBC -x -std=mf -DTEST-ZERO-LEN-REF-MOD prog2.cob"
at_fn_check_prepare_dynamic "$COBC -x -std=mf -DTEST-ZERO-LEN-REF-MOD prog2.cob" "run_refmod.at:461"
( $at_check_trace; $COBC -x -std=mf -DTEST-ZERO-LEN-REF-MOD prog2.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/run_refmod.at:461"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:462: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_refmod.at:462"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:16: error: length of 'y' 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/run_refmod.at:462"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_refmod.at:466: \$COBC -x -std=mf -o prog2b prog2.cob"
at_fn_check_prepare_dynamic "$COBC -x -std=mf -o prog2b prog2.cob" "run_refmod.at:466"
( $at_check_trace; $COBC -x -std=mf -o prog2b prog2.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/run_refmod.at:466"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:467: \$COBCRUN_DIRECT ./prog2b"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2b" "run_refmod.at:467"
( $at_check_trace; $COBCRUN_DIRECT ./prog2b
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:18: error: length of 'y' out of bounds: 2, maximum: 1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog3.cob <<'_ATEOF'

      $SET SSRANGE"3"
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x.
           03  y       PIC X VALUE SPACE.
           03  z       PIC X VALUE "!".
       01  n           PIC 9 VALUE 0.
       01  m           PIC 9 VALUE 2.

       PROCEDURE DIVISION.
           DISPLAY y (1:n) NO ADVANCING
           DISPLAY y (1:m)
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_refmod.at:490: \$COBC -x -std=mf prog3.cob"
at_fn_check_prepare_dynamic "$COBC -x -std=mf prog3.cob" "run_refmod.at:490"
( $at_check_trace; $COBC -x -std=mf prog3.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/run_refmod.at:490"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_refmod.at:491: \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_refmod.at:491"
( $at_check_trace; $COBCRUN_DIRECT ./prog3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog3.cob:16: error: length of 'y' out of bounds: 2, maximum: 1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_refmod.at:491"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_551
#AT_START_552
at_fn_group_banner 552 'run_accept.at:28' \
  "ACCEPT OMITTED (simple)" "                        " 4
at_xfail=no
(
  $as_echo "552. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       PROCEDURE      DIVISION.
           ACCEPT OMITTED.
_ATEOF


cat >input.txt <<'_ATEOF'

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_accept.at:41: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:41"
( $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/run_accept.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_accept.at:42: \$COBCRUN_DIRECT ./prog < input.txt"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog < input.txt" "run_accept.at:42"
( $at_check_trace; $COBCRUN_DIRECT ./prog < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:42"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_552
#AT_START_553
at_fn_group_banner 553 'run_accept.at:50' \
  "ACCEPT FROM TIME / DATE / DAY / DAY-OF-WEEK (1)" "" 4
at_xfail=no
(
  $as_echo "553. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       *> one byte longer to make sure there is no garbage in
       01 X             PIC X(9).
       PROCEDURE        DIVISION.
           ACCEPT X FROM TIME
           END-ACCEPT
           IF X (1:2) >= "00" AND <= "23" AND
              X (3:2) >= "00" AND <= "59" AND
              X (5:2) >= "00" AND <= "60" AND
              X (7:2) >= "00" AND <= "99" AND
              X (9: )  = SPACE
              CONTINUE
           ELSE
              DISPLAY "TIME " X "!"
              END-DISPLAY
           END-IF
           ACCEPT X FROM DATE
           END-ACCEPT
           INSPECT X CONVERTING "012345678" TO "999999999"
           IF X NOT = "999999"
              DISPLAY "DATE " X "!"
              END-DISPLAY
           END-IF
           ACCEPT X FROM DATE YYYYMMDD
           END-ACCEPT
           INSPECT X CONVERTING "012345678" TO "999999999"
           IF X NOT = "99999999"
              DISPLAY "YYYYMMDD " X "!"
              END-DISPLAY
           END-IF
           ACCEPT X FROM DAY
           END-ACCEPT
           INSPECT X CONVERTING "012345678" TO "999999999"
           IF X NOT = "99999"
              DISPLAY "DAY " X "!"
              END-DISPLAY
           END-IF
           ACCEPT X FROM DAY YYYYDDD
           END-ACCEPT
           INSPECT X CONVERTING "012345678" TO "999999999"
           IF X NOT = "9999999"
              DISPLAY "YYYYDDD " X "!"
              END-DISPLAY
           END-IF
           ACCEPT X FROM DAY-OF-WEEK
           END-ACCEPT
           INSPECT X CONVERTING "1234567" TO "9999999"
           IF X NOT = "9"
              DISPLAY "DAY-OF-WEEK " X "!"
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_accept.at:111: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:111"
( $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/run_accept.at:111"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_accept.at:112: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_accept.at:112"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_accept.at:112"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_553
#AT_START_554
at_fn_group_banner 554 'run_accept.at:117' \
  "ACCEPT FROM TIME / DATE / DAY / DAY-OF-WEEK (2)" "" 4
at_xfail=no
(
  $as_echo "554. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       *> one byte longer to make sure there is no garbage in
       01  WS-YYYYMMDD   PIC X(9).
       01  WS-YYYYDDD    PIC X(8).
       01  WS-DAYOFWEEK  PIC X(2).
       01  WS-DATE-TODAY.
           05  WS-TODAYS-YY            PIC 9(02) VALUE 0.
           05  WS-TODAYS-MM            PIC 9(02) VALUE 0.
           05  WS-TODAYS-DD            PIC 9(02) VALUE 0.

       01  WS-DATE.
           05  WS-DATE-MM              PIC 9(02) VALUE 0.
           05  FILLER                  PIC X(01) VALUE '/'.
           05  WS-DATE-DD              PIC 9(02) VALUE 0.
           05  FILLER                  PIC X(01) VALUE '/'.
           05  WS-DATE-YY              PIC 9(02) VALUE 0.

       01  WS-TIME-NOW.
           05  WS-NOW-HH               PIC 9(02) VALUE 0.
           05  WS-NOW-MM               PIC 9(02) VALUE 0.
           05  WS-NOW-SS               PIC 9(02) VALUE 0.
           05  WS-NOW-HS               PIC 9(02) VALUE 0.

       01  WS-TIME.
           05  WS-TIME-HH              PIC 9(02) VALUE 0.
           05  FILLER                  PIC X(01) VALUE ':'.
           05  WS-TIME-MM              PIC 9(02) VALUE 0.
           05  FILLER                  PIC X(01) VALUE ':'.
           05  WS-TIME-SS              PIC 9(02) VALUE 0.

       PROCEDURE DIVISION.
           ACCEPT WS-DATE-TODAY FROM DATE
           ACCEPT WS-TIME-NOW   FROM TIME
           MOVE WS-TODAYS-YY TO WS-DATE-YY
           MOVE WS-TODAYS-MM TO WS-DATE-MM
           MOVE WS-TODAYS-DD TO WS-DATE-DD
           MOVE WS-NOW-HH    TO WS-TIME-HH
           MOVE WS-NOW-MM    TO WS-TIME-MM
           MOVE WS-NOW-SS    TO WS-TIME-SS
           DISPLAY 'PROCESS DATE/TIME : ' WS-DATE ' ' WS-TIME
                   WITH NO ADVANCING
           END-DISPLAY
           ACCEPT WS-YYYYMMDD   FROM DATE YYYYMMDD
           IF WS-YYYYMMDD not = "20150405"
              DISPLAY 'Wrong date DATE YYYYMMDD: ' WS-YYYYMMDD
                      ' expected: 20150405'
                      UPON SYSERR
              END-DISPLAY
           END-IF
           ACCEPT WS-YYYYDDD    FROM DAY  YYYYDDD
           IF WS-YYYYDDD  not = "2015095"
              DISPLAY 'Wrong date YYYYDDD:  '      WS-YYYYDDD
                      ' expected: 2015095'
                      UPON SYSERR
              END-DISPLAY
           END-IF
           ACCEPT WS-DAYOFWEEK    FROM DAY-OF-WEEK
           IF WS-DAYOFWEEK  not = "7"
              DISPLAY 'Wrong date DAYOFWEEK: '     WS-DAYOFWEEK
                      ' expected: 7'
                      UPON SYSERR
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_accept.at:190: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:190"
( $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/run_accept.at:190"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_accept.at:192: COB_CURRENT_DATE='2015/04/05 18:45:22' \\
\$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'an embedded newline' "run_accept.at:192"
( $at_check_trace; COB_CURRENT_DATE='2015/04/05 18:45:22' \
$COBCRUN_DIRECT ./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 "PROCESS DATE/TIME : 04/05/15 18:45:22" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_accept.at:192"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_554
#AT_START_555
at_fn_group_banner 555 'run_accept.at:200' \
  "ACCEPT DATE / DAY and intrinsic functions (1)" "  " 4
at_xfail=no
(
  $as_echo "555. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       *> one byte longer to make sure there is no garbage in
       01  WS-YYYYMMDD   PIC 9(9).
       01  WS-YYYYDDD    PIC 9(8).
       PROCEDURE        DIVISION.
           ACCEPT WS-YYYYMMDD FROM DATE YYYYMMDD
           END-ACCEPT
           ACCEPT WS-YYYYDDD  FROM DAY  YYYYDDD
           END-ACCEPT
           IF    FUNCTION INTEGER-OF-DATE (WS-YYYYMMDD)
           NOT = FUNCTION INTEGER-OF-DAY  (WS-YYYYDDD)
              DISPLAY "DIFFERENCES FOUND!"
              END-DISPLAY
              DISPLAY "YYYYMMDD = " WS-YYYYMMDD ", "
                      "YYYYDDD = " WS-YYYYDDD
              END-DISPLAY
              DISPLAY "INTEGER-OF-DATE = "
                      FUNCTION INTEGER-OF-DATE (WS-YYYYMMDD) ", "
                      "INTEGER-OF-DAY = "
                      FUNCTION INTEGER-OF-DAY  (WS-YYYYDDD)
              END-DISPLAY
              MOVE 1 TO RETURN-CODE
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_accept.at:233: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:233"
( $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/run_accept.at:233"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_accept.at:234: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_accept.at:234"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_accept.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_555
#AT_START_556
at_fn_group_banner 556 'run_accept.at:237' \
  "ACCEPT DATE / DAY and intrinsic functions (2)" "  " 4
at_xfail=no
(
  $as_echo "556. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: verify via COB_CURRENT_DATE that the values are resolved correctly

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       *> one byte longer to make sure there is no garbage in
       01  WS-YYYYMMDD   PIC 9(9).
       01  WS-YYYYDDD    PIC 9(8).
       PROCEDURE        DIVISION.
           ACCEPT WS-YYYYMMDD FROM DATE YYYYMMDD
           END-ACCEPT
           ACCEPT WS-YYYYDDD  FROM DAY  YYYYDDD
           END-ACCEPT
           IF    FUNCTION INTEGER-OF-DATE (WS-YYYYMMDD)
           NOT = FUNCTION INTEGER-OF-DAY  (WS-YYYYDDD)
              DISPLAY "DIFFERENCES FOUND!"
              END-DISPLAY
              DISPLAY "YYYYMMDD = " WS-YYYYMMDD ", "
                      "YYYYDDD = " WS-YYYYDDD
              END-DISPLAY
              DISPLAY "INTEGER-OF-DATE = "
                      FUNCTION INTEGER-OF-DATE (WS-YYYYMMDD) ", "
                      "INTEGER-OF-DAY = "
                      FUNCTION INTEGER-OF-DAY  (WS-YYYYDDD)
              END-DISPLAY
              MOVE 1 TO RETURN-CODE
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_accept.at:272: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:272"
( $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/run_accept.at:272"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_accept.at:273: COB_CURRENT_DATE='2020/06/12 18:45:22' \\
\$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'an embedded newline' "run_accept.at:273"
( $at_check_trace; COB_CURRENT_DATE='2020/06/12 18:45:22' \
$COBCRUN_DIRECT ./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/run_accept.at:273"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_556
#AT_START_557
at_fn_group_banner 557 'run_accept.at:284' \
  "ACCEPT OMITTED (SCREEN)" "                        " 4
at_xfail=no
(
  $as_echo "557. $at_setup_line: testing $at_desc ..."
  $at_traceon



{ set +x
$as_echo "$at_srcdir/run_accept.at:287: test \"\$COB_HAS_CURSES\" = \"yes\" || exit 77"
at_fn_check_prepare_dynamic "test \"$COB_HAS_CURSES\" = \"yes\" || exit 77" "run_accept.at:287"
( $at_check_trace; test "$COB_HAS_CURSES" = "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/run_accept.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.

       DATA           DIVISION.
       SCREEN         SECTION.
       01  scr.
           03  VALUE "Hello!" LINE 3 COL 3.

       PROCEDURE      DIVISION.
           ACCEPT OMITTED
           END-ACCEPT.
_ATEOF


cat >input.txt <<'_ATEOF'

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_accept.at:306: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_accept.at:306"
( $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/run_accept.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_accept.at:307: \$COBCRUN_DIRECT ./prog < input.txt"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog < input.txt" "run_accept.at:307"
( $at_check_trace; $COBCRUN_DIRECT ./prog < input.txt
) >>"$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/run_accept.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_557
#AT_START_558
at_fn_group_banner 558 'run_initialize.at:27' \
  "INITIALIZE group entry with OCCURS" "             " 4
at_xfail=no
(
  $as_echo "558. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 G2          OCCURS 2.
           03 X1        PIC X.
           03 X2        PIC 9.
       PROCEDURE        DIVISION.
           MOVE SPACE TO G1.
           INITIALIZE G2 (2).
           IF G1 NOT = "   0"
              DISPLAY G1 NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_initialize.at:49: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.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/run_initialize.at:49"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_initialize.at:50: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:50"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_initialize.at:50"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_558
#AT_START_559
at_fn_group_banner 559 'run_initialize.at:55' \
  "INITIALIZE OCCURS with numeric edited" "          " 4
at_xfail=no
(
  $as_echo "559. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 G2          OCCURS 5.
           03 X         PIC Z9.
       PROCEDURE        DIVISION.
           INITIALIZE G1
           MOVE 5  TO X(1)
           MOVE 99 TO X(3)
           IF G1 NOT = " 5 099 0 0"
              DISPLAY 'MOVE "' G1 '"'
              END-DISPLAY
           END-IF
           INITIALIZE G1
           IF G1 NOT = " 0 0 0 0 0"
              DISPLAY 'INIT "' G1 '"'
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_initialize.at:82: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:82"
( $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/run_initialize.at:82"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_initialize.at:83: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:83"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_initialize.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_559
#AT_START_560
at_fn_group_banner 560 'run_initialize.at:88' \
  "INITIALIZE OCCURS with SIGN LEADING / TRAILING" " " 4
at_xfail=no
(
  $as_echo "560. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 FILLER      OCCURS 2.
           03 X         PIC S9 SIGN LEADING  SEPARATE.
         02 FILLER      OCCURS 2.
           03 Y         PIC S9 SIGN TRAILING SEPARATE.
      *> definition taken from NC1184.2
       01  MINUS-NAMES SIGN IS TRAILING SEPARATE CHARACTER.
         02 MINUS-NAMES-1.
           03  MINUS-NAME1 PIC  S9(18) VALUE -999999999999999999.
           03  EVEN-NAME1  PIC  S9(18) VALUE +1.
           03  PLUS-NAME1  PIC  S9(18) VALUE +999999999999999999.
         02 MINUS-NAMES-2.
           03  MINUS-NAME3 PIC SV9(18) VALUE -.999999999999999999.
           03  EVEN-NAME2  PIC SV9(18) VALUE +.1.
           03  PLUS-NAME3  PIC SV9(18) VALUE +.999999999999999999.
       PROCEDURE        DIVISION.
           INITIALIZE G1
           MOVE 5    TO X(1), PLUS-NAME1
           MOVE -9   TO Y(2), MINUS-NAME1
           IF G1 NOT = "+5+00+9-"
              DISPLAY 'MOVE G "' G1 '"'
              END-DISPLAY
           END-IF
           MOVE .123 TO PLUS-NAME3
           IF MINUS-NAMES-1 NOT =
           "000000000000000009-000000000000000001+000000000000000005+"
           OR MINUS-NAMES-2 NOT =
           "999999999999999999-100000000000000000+123000000000000000+"
              DISPLAY 'MOVE MN1 "' MINUS-NAMES-1 '"'
              END-DISPLAY
              DISPLAY 'MOVE MN2 "' MINUS-NAMES-2 '"'
              END-DISPLAY
           END-IF
           INITIALIZE G1, MINUS-NAMES
           IF G1 NOT = "+0+00+0+"
              DISPLAY 'INIT G1 "' G1 '"'
              END-DISPLAY
           END-IF
           IF MINUS-NAMES-1 NOT =
           "000000000000000000+000000000000000000+000000000000000000+"
           OR MINUS-NAMES-2 NOT =
           "000000000000000000+000000000000000000+000000000000000000+"
              DISPLAY 'MOVE MN1 "' MINUS-NAMES-1 '"'
              END-DISPLAY
              DISPLAY 'MOVE MN2 "' MINUS-NAMES-2 '"'
              END-DISPLAY
           END-IF
           MOVE .123 TO PLUS-NAME3
           MOVE -.456 TO MINUS-NAME3
           DISPLAY PLUS-NAME3  END-DISPLAY
           DISPLAY MINUS-NAME3 END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_initialize.at:150: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:150"
( $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/run_initialize.at:150"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_initialize.at:151: ./prog"
at_fn_check_prepare_trace "run_initialize.at:151"
( $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 ".123000000000000000+
.456000000000000000-
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_initialize.at:151"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_560
#AT_START_561
at_fn_group_banner 561 'run_initialize.at:159' \
  "INITIALIZE complex group (1)" "                   " 4
at_xfail=no
(
  $as_echo "561. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC X.
         02 G2          OCCURS 2.
           03 Y         PIC 9.
         02 Z           PIC 9.
       PROCEDURE        DIVISION.
           INITIALIZE G1.
           IF G1 NOT = " 000"
              DISPLAY G1 NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_initialize.at:181: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:181"
( $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/run_initialize.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_initialize.at:182: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:182"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_initialize.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_561
#AT_START_562
at_fn_group_banner 562 'run_initialize.at:187' \
  "INITIALIZE complex group (2)" "                   " 4
at_xfail=no
(
  $as_echo "562. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 G2          OCCURS 2.
           03 X         PIC 9.
           03 Y         PIC X OCCURS 2.
           03 Z         PIC X.
       PROCEDURE        DIVISION.
           INITIALIZE G1.
           IF G1 NOT = "0   0   "
              DISPLAY G1 NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_initialize.at:209: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:209"
( $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/run_initialize.at:209"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_initialize.at:210: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:210"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_initialize.at:210"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_562
#AT_START_563
at_fn_group_banner 563 'run_initialize.at:215' \
  "INITIALIZE with REDEFINES" "                      " 4
at_xfail=no
(
  $as_echo "563. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC X.
         02 Y           REDEFINES X PIC 9.
         02 Z           PIC 9.
       PROCEDURE        DIVISION.
           INITIALIZE G1.
           IF G1 NOT = " 0"
              DISPLAY G1 NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_initialize.at:236: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:236"
( $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/run_initialize.at:236"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_initialize.at:237: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:237"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_initialize.at:237"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_563
#AT_START_564
at_fn_group_banner 564 'run_initialize.at:242' \
  "INITIALIZE with FILLER" "                         " 4
at_xfail=no
(
  $as_echo "564. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G1.
         02 X           PIC 99.
         02 FILLER      PIC X.
         02 Z           PIC 99.
       01 MY-FILLER.
         02 FILLER      PIC 9(6) VALUE 12345.
       PROCEDURE        DIVISION.
           MOVE ALL   'A' TO G1.
           INITIALIZE G1.
           IF G1 NOT = "00A00"
              DISPLAY "G1 (INIT): " G1
              END-DISPLAY
           END-IF.
           MOVE ALL   'A' TO G1.
           INITIALIZE G1  WITH FILLER.
           IF G1 NOT = "00 00"
              DISPLAY "G1 (INIT FILLER):"   G1
              END-DISPLAY
           END-IF.

           INITIALIZE MY-FILLER
           IF MY-FILLER NOT = "012345"
              DISPLAY "MY-FILLER (INIT): " MY-FILLER
              END-DISPLAY
           END-IF

           INITIALIZE MY-FILLER WITH FILLER
           IF MY-FILLER NOT = "000000"
              DISPLAY "MY-FILLER (INIT FILLER): " MY-FILLER
              END-DISPLAY
           END-IF

           INITIALIZE MY-FILLER ALL TO VALUE
           IF MY-FILLER NOT = "000000"
              DISPLAY "MY-FILLER (INIT TO VAL): " MY-FILLER
              END-DISPLAY
           END-IF

           INITIALIZE MY-FILLER WITH FILLER ALL TO VALUE
           IF MY-FILLER NOT = "012345"
              DISPLAY "MY-FILLER (INIT FILLER TO VAL): " MY-FILLER
              END-DISPLAY
           END-IF

           INITIALIZE MY-FILLER (2:3)
           IF MY-FILLER NOT = "0   45"
              DISPLAY "MY-FILLER (REF-MOD): " MY-FILLER
              END-DISPLAY
           END-IF

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_initialize.at:303: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:303"
( $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/run_initialize.at:303"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_initialize.at:304: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:304"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_initialize.at:304"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_564
#AT_START_565
at_fn_group_banner 565 'run_initialize.at:309' \
  "INITIALIZE of EXTERNAL data items" "              " 4
at_xfail=no
(
  $as_echo "565. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR-01    PIC X(5) EXTERNAL.
       01 EXT-VAR-GRP   EXTERNAL.
         02  EXT-FIELD1 PIC 999.
         02  EXT-FIELD2 PIC x(4).
         02  EXT-FIELD3 PIC 9(6).
         02  EXT-FIELD4 PIC s9(5)v99.
       PROCEDURE        DIVISION.
           MOVE "MOVE"  TO EXT-VAR-01.
           MOVE 1       TO EXT-FIELD1.
           MOVE "X"     TO EXT-FIELD2.
           MOVE 123     TO EXT-FIELD3.
           MOVE -2.1    TO EXT-FIELD4.
           INITIALIZE EXT-VAR-01.
           INITIALIZE EXT-VAR-GRP.
           IF EXT-VAR-01 NOT = SPACES
              DISPLAY "EXT-VAR-01 " EXT-VAR-01
              END-DISPLAY
           END-IF.
           IF EXT-FIELD1 NOT = ZERO
              DISPLAY "EXT-FIELD1 " EXT-FIELD1
              END-DISPLAY
           END-IF.
           IF EXT-FIELD2 NOT = SPACES
              DISPLAY "EXT-FIELD2 " EXT-FIELD2
              END-DISPLAY
           END-IF.
           IF EXT-FIELD3 NOT = ZERO
              DISPLAY "EXT-FIELD3 " EXT-FIELD3
              END-DISPLAY
           END-IF.
           IF EXT-FIELD4 NOT = ZERO
              DISPLAY "EXT-FIELD4 " EXT-FIELD4
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_initialize.at:354: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:354"
( $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/run_initialize.at:354"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_initialize.at:355: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:355"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_initialize.at:355"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_565
#AT_START_566
at_fn_group_banner 566 'run_initialize.at:360' \
  "INITIALIZE with reference modification" "         " 4
at_xfail=no
(
  $as_echo "566. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MY-FLD       PIC X(6) VALUE "ABCDEF".
       01  MY-OTHER-FLD PIC 9(4) VALUE ZERO.
       PROCEDURE        DIVISION.
       ASTART SECTION.
       A01.
           INITIALIZE MY-FLD (1:2).
           IF MY-FLD NOT = "  CDEF"
              DISPLAY "MY-FLD: " MY-FLD
              END-DISPLAY
           END-IF

      *>  note: INITIALIZE with refmod => handle field as alphanumeric
           INITIALIZE MY-OTHER-FLD (2:2)
           MOVE "0  0" TO MY-FLD
           IF MY-OTHER-FLD NOT = MY-FLD (1:4)
               DISPLAY "MY-OTHER-FLD: " MY-OTHER-FLD
               END-DISPLAY
           END-IF

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_initialize.at:390: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_initialize.at:390"
( $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/run_initialize.at:390"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_initialize.at:391: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_initialize.at:391"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_initialize.at:391"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_566
#AT_START_567
at_fn_group_banner 567 'run_misc.at:23' \
  "Comma separator without space" "                  " 4
at_xfail=no
(
  $as_echo "567. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY 1,1,1 NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:35: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:35"
( $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/run_misc.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:36: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:36"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_567
#AT_START_568
at_fn_group_banner 568 'run_misc.at:44' \
  "DECIMAL-POINT is COMMA (1)" "                     " 4
at_xfail=no
(
  $as_echo "568. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT    IS COMMA.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC 99V99.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MIN (3,,,,,,5) TO X.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:64: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:64"
( $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/run_misc.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:65: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:65"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_568
#AT_START_569
at_fn_group_banner 569 'run_misc.at:72' \
  "DECIMAL-POINT is COMMA (2)" "                     " 4
at_xfail=no
(
  $as_echo "569. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT    IS COMMA.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC 99V99.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MIN (3,,,,,, 5) TO X.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:92: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:92"
( $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/run_misc.at:92"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:93: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:93"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:93"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_569
#AT_START_570
at_fn_group_banner 570 'run_misc.at:100' \
  "DECIMAL-POINT is COMMA (3)" "                     " 4
at_xfail=no
(
  $as_echo "570. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT    IS COMMA.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC 99V99.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MIN (3,,,,,, 1,5) TO X.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:120: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:120"
( $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/run_misc.at:120"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:121: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:121"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:121"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_570
#AT_START_571
at_fn_group_banner 571 'run_misc.at:128' \
  "DECIMAL-POINT is COMMA (4)" "                     " 4
at_xfail=no
(
  $as_echo "571. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT    IS COMMA.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC 99V99.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MIN (3,,,,,,1,5) TO X.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:148: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:148"
( $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/run_misc.at:148"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:149: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:149"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:149"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_571
#AT_START_572
at_fn_group_banner 572 'run_misc.at:156' \
  "DECIMAL-POINT is COMMA (5)" "                     " 4
at_xfail=no
(
  $as_echo "572. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT    IS COMMA.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC 99V99.
       PROCEDURE        DIVISION.
           COMPUTE X=1 + ,1
           END-COMPUTE
           DISPLAY X
           END-DISPLAY.
           COMPUTE X=1*,1
           END-COMPUTE
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:181: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:181"
( $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/run_misc.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:182: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:182"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_572
#AT_START_573
at_fn_group_banner 573 'run_misc.at:190' \
  "CURRENCY SIGN" "                                  " 4
at_xfail=no
(
  $as_echo "573. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       PROGRAM-ID.   prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CURRENCY SIGN IS "Y".

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77  amount    pic Y(6)9.99.

       PROCEDURE DIVISION.
           Move 1512.34 to Amount
           Display "Amount is #" Amount '#' with no advancing.

           GOBACK
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:214: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:214"
( $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/run_misc.at:214"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:215: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:215"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Amount is #  Y1512.34#" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:215"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_573
#AT_START_574
at_fn_group_banner 574 'run_misc.at:221' \
  "CURRENCY SIGN WITH PICTURE SYMBOL" "              " 4
at_xfail=yes
(
  $as_echo "574. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME - see FR #246


cat >prog.cob <<'_ATEOF'

       PROGRAM-ID.   prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           *> note the space after EUR / before ct.
           CURRENCY SIGN IS "EUR "      WITH PICTURE SYMBOL "U",
           CURRENCY SIGN IS " ct (EUR)" WITH PICTURE SYMBOL "c",
           Currency Sign is "$US" with Picture Symbol "$".

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77  EUROS    PIC U99v99.
       77  cents    PIC c9,999.
       77  DOLLARS  Pic $$,$$9.99.

       PROCEDURE DIVISION.
           MOVE 12.34 TO EUROS
           MULTIPLY euros BY 1000 GIVING cents.
           DISPLAY "#" EUROS "# equal #" cents '#'.
           Move 1500 to Invoice-Amount
           Display "Invoice amount #1 is " Invoice-Amount '.'.
           Move 12.34 to Invoice-Amount
           Display "Invoice amount #2 is " Invoice-Amount '.'.

           GOBACK
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:258: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:258"
( $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/run_misc.at:258"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:259: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:259"
( $at_check_trace; $COBCRUN_DIRECT ./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 "#EUR 12.34# equal #1,234 ct (EUR)#
Invoice amount #1 is  \$US1,500.00.
Invoice amount #2 is     \$US12.34.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:259"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_574
#AT_START_575
at_fn_group_banner 575 'run_misc.at:268' \
  "LOCAL-STORAGE (1)" "                              " 4
at_xfail=no
(
  $as_echo "575. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 WRK-X         PIC XXX VALUE "abc".
       LOCAL-STORAGE    SECTION.
       01 LCL-X         PIC XXX VALUE "abc".
       PROCEDURE        DIVISION.
           DISPLAY WRK-X LCL-X NO ADVANCING
           END-DISPLAY.
           MOVE ZERO TO WRK-X LCL-X.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL "callee"
           END-CALL.
           CALL "callee"
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:297: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:297"
( $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/run_misc.at:297"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:298: \$COMPILE -o prog caller.cob"
at_fn_check_prepare_dynamic "$COMPILE -o prog caller.cob" "run_misc.at:298"
( $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/run_misc.at:298"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:299: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:299"
( $at_check_trace; $COBCRUN_DIRECT ./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 "abcabc000abc" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:299"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_575
#AT_START_576
at_fn_group_banner 576 'run_misc.at:304' \
  "LOCAL-STORAGE (2)" "                              " 4
at_xfail=no
(
  $as_echo "576. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 LNK-X         PIC XXX.
       PROCEDURE        DIVISION USING LNK-X.
           DISPLAY LNK-X NO ADVANCING
           END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       LOCAL-STORAGE    SECTION.
       01 LCL-X.
          05 FILLER     PIC XXX VALUE "abc".
       PROCEDURE        DIVISION.
           CALL "callee2" USING LCL-X
           END-CALL.
           MOVE ZERO TO LCL-X.
           CALL "callee2" USING LCL-X
           END-CALL.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL "callee"
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:344: \$COMPILE_MODULE callee2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee2.cob" "run_misc.at:344"
( $at_check_trace; $COMPILE_MODULE callee2.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/run_misc.at:344"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:345: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:345"
( $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/run_misc.at:345"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:346: \$COMPILE -o prog caller.cob"
at_fn_check_prepare_dynamic "$COMPILE -o prog caller.cob" "run_misc.at:346"
( $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/run_misc.at:346"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:347: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:347"
( $at_check_trace; $COBCRUN_DIRECT ./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 "abc000" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:347"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_576
#AT_START_577
at_fn_group_banner 577 'run_misc.at:352' \
  "EXTERNAL data item" "                             " 4
at_xfail=no
(
  $as_echo "577. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           IF EXT-VAR NOT = "Hello"
              DISPLAY EXT-VAR
              END-DISPLAY
           END-IF.
           MOVE "World" TO EXT-VAR.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE "Hello" TO EXT-VAR.
           CALL "callee"
           END-CALL.
           IF EXT-VAR NOT = "World"
              DISPLAY EXT-VAR
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:387: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:387"
( $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/run_misc.at:387"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:388: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:388"
( $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/run_misc.at:388"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:389: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:389"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:389"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_577
#AT_START_578
at_fn_group_banner 578 'run_misc.at:394' \
  "EXTERNAL AS data item" "                          " 4
at_xfail=no
(
  $as_echo "578. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 PRG-VAR       PIC X(5) EXTERNAL AS "WRK-VAR".
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           IF PRG-VAR NOT = "Extrn"
              DISPLAY PRG-VAR
              END-DISPLAY
           END-IF.
           IF EXT-VAR NOT = "Hello"
              DISPLAY EXT-VAR
              END-DISPLAY
           END-IF.
           MOVE "World" TO EXT-VAR.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 MYVAR         PIC X(5) EXTERNAL AS "EXT-VAR".
       01 WRK-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE "Extrn" TO WRK-VAR.
           MOVE "Hello" TO MYVAR.
           CALL "callee"
           END-CALL.
           IF MYVAR NOT = "World"
              DISPLAY MYVAR
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:436: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:436"
( $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/run_misc.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:437: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:437"
( $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/run_misc.at:437"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:438: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:438"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:438"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_578
#AT_START_579
at_fn_group_banner 579 'run_misc.at:443' \
  "EXTERNAL data item size mismatch" "               " 4
at_xfail=yes
(
  $as_echo "579. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME - see Bug #445


cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 PRG-VAR       PIC X(8) EXTERNAL AS "WRK-VAR".
       01 COB-VAR       PIC X(8) EXTERNAL.
       01 EXT-VAR       PIC X(8) EXTERNAL.
       PROCEDURE        DIVISION.
           IF PRG-VAR NOT = "Extrn"
              DISPLAY PRG-VAR
              END-DISPLAY
           END-IF.
           IF EXT-VAR NOT = "Hello"
              DISPLAY EXT-VAR
              END-DISPLAY
           END-IF.
           MOVE "World" TO EXT-VAR.
           EXIT PROGRAM.
_ATEOF


cat >bigger.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      error.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 MYVAR         PIC X(10) EXTERNAL AS "COB-VAR".
       01 WRK-VAR       PIC X(10) EXTERNAL.
       01 EXT-VAR       PIC X(10) EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE "Extrn" TO WRK-VAR.
           MOVE "Hello" TO MYVAR.
           CALL "callee"
           END-CALL.
           IF MYVAR NOT = "World"
              DISPLAY MYVAR
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


cat >smaller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      error.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 MYVAR         PIC X(5) EXTERNAL AS "COB-VAR".
       01 WRK-VAR       PIC X(5) EXTERNAL.
       01 EXT-VAR       PIC X(5) EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE "Extrn" TO WRK-VAR.
           MOVE "Hello" TO MYVAR.
           CALL "callee"
           END-CALL.
           IF MYVAR NOT = "World"
              DISPLAY MYVAR
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:510: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:510"
( $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/run_misc.at:510"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:511: \$COMPILE bigger.cob"
at_fn_check_prepare_dynamic "$COMPILE bigger.cob" "run_misc.at:511"
( $at_check_trace; $COMPILE bigger.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/run_misc.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:512: \$COBCRUN_DIRECT ./bigger"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./bigger" "run_misc.at:512"
( $at_check_trace; $COBCRUN_DIRECT ./bigger
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: callee.cob:6: warning: EXTERNAL item 'WRK-VAR' previously allocated with size 10, requested size is 8
libcob: callee.cob:7: warning: EXTERNAL item 'EXT-VAR' previously allocated with size 10, requested size is 8
libcob: callee.cob:8: warning: EXTERNAL item 'EXT-VAR' previously allocated with size 10, requested size is 8
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:512"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:518: \$COMPILE smaller.cob"
at_fn_check_prepare_dynamic "$COMPILE smaller.cob" "run_misc.at:518"
( $at_check_trace; $COMPILE smaller.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/run_misc.at:518"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:519: \$COBCRUN_DIRECT ./smaller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./smaller" "run_misc.at:519"
( $at_check_trace; $COBCRUN_DIRECT ./smaller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: callee.cob:6: error: EXTERNAL item 'WRK-VAR' previously allocated with size 5, requested size is 8
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:519"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_579
#AT_START_580
at_fn_group_banner 580 'run_misc.at:528' \
  "MOVE to itself" "                                 " 4
at_xfail=no
(
  $as_echo "580. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 99 VALUE 12.
       PROCEDURE        DIVISION.
           MOVE X TO X.
           IF X NOT = 12
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:546: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:546"
( $at_check_trace; $COMPILE 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: overlapping MOVE may produce unpredictable results
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:546"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:549: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:549"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:549"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_580
#AT_START_581
at_fn_group_banner 581 'run_misc.at:554' \
  "MOVE with refmod" "                               " 4
at_xfail=no
(
  $as_echo "581. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9(4) VALUE 0.
       PROCEDURE        DIVISION.
           MOVE "1" TO X(1:1).
           IF X NOT = 1000
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:572: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:572"
( $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/run_misc.at:572"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:573: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:573"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:573"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_581
#AT_START_582
at_fn_group_banner 582 'run_misc.at:578' \
  "MOVE with refmod (variable)" "                    " 4
at_xfail=no
(
  $as_echo "582. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "1234".
       01 Y             PIC X(4) VALUE "abcd".
       01 I             PIC 9 VALUE 1.
       PROCEDURE        DIVISION.
           MOVE X(1:I) TO Y.
           IF Y NOT = "1   "
              DISPLAY Y NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:598: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:598"
( $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/run_misc.at:598"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:599: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:599"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:599"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_582
#AT_START_583
at_fn_group_banner 583 'run_misc.at:604' \
  "MOVE with group refmod" "                         " 4
at_xfail=no
(
  $as_echo "583. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC 9999 VALUE 1234.
       PROCEDURE        DIVISION.
           MOVE "99" TO G(3:2).
           IF G NOT = "1299"
              DISPLAY G NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:623: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:623"
( $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/run_misc.at:623"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:624: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:624"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:624"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_583
#AT_START_584
at_fn_group_banner 584 'run_misc.at:629' \
  "MOVE indexes" "                                   " 4
at_xfail=no
(
  $as_echo "584. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 10 INDEXED I.
       PROCEDURE        DIVISION.
           SET I TO ZERO.
           MOVE I TO X(1).
           IF X(1) NOT = "0"
              DISPLAY X(1) NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:649: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:649"
( $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/run_misc.at:649"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:650: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:650"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:650"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_584
#AT_START_585
at_fn_group_banner 585 'run_misc.at:655' \
  "MOVE X'00'" "                                     " 4
at_xfail=no
(
  $as_echo "585. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (unsigned char *data)
{
  printf ("%02x%02x%02x", data[0], data[1], data[2]);
  return 0;
}
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC XXX.
       PROCEDURE        DIVISION.
           MOVE X"000102" TO X.
           CALL "dump" USING X
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:683: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "run_misc.at:683"
( $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/run_misc.at:683"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:684: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:684"
( $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/run_misc.at:684"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:685: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:685"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:685"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_585
#AT_START_586
at_fn_group_banner 586 'run_misc.at:690' \
  "MOVE Z'literal'" "                                " 4
at_xfail=no
(
  $as_echo "586. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC XXXX.
       01  XRED REDEFINES X.
           03  XBYTE1   PIC X.
           03  XBYTE2   PIC X.
           03  XBYTE3   PIC X.
           03  XBYTE4   PIC X.
       PROCEDURE        DIVISION.
           MOVE Z"012" TO X.
           IF XBYTE1 = "0" AND
              XBYTE2 = "1" AND
              XBYTE3 = "2" AND
              XBYTE4 = LOW-VALUE
              DISPLAY "OK" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY "X = " X (1:3) NO ADVANCING
              END-DISPLAY
              IF XBYTE4 = LOW-VALUE
                 DISPLAY " WITH LOW-VALUE"
                 END-DISPLAY
              ELSE
                 DISPLAY " WITHOUT LOW-VALUE BUT '" XBYTE4 "'"
                 END-DISPLAY
              END-IF
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:726: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:726"
( $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/run_misc.at:726"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:727: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:727"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:727"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_586
#AT_START_587
at_fn_group_banner 587 'run_misc.at:732' \
  "Floating continuation indicator" "                " 4
at_xfail=no
(
  $as_echo "587. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY "OK"-
            "OK"
             NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:748: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:748"
( $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/run_misc.at:748"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:749: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:749"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:749"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_587
#AT_START_588
at_fn_group_banner 588 'run_misc.at:754' \
  "Fixed continuation indicator" "                   " 4
at_xfail=no
(
  $as_echo "588. $at_setup_line: testing $at_desc ..."
  $at_traceon


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(333) VALUE
           '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX
      -    'YZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV
      -    'WXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST
      -    'UVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQR
      -    'STUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP
      -             'QRSTUVWXYZ'.
       PROCEDURE        DIVISION.
           DISPLAY X NO ADVANCING
           END-DISPLAY.
           DISPLAY '_'
           END-DISPLAY.
           MOVE
           "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567
      -    "89abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345
      -    "6789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123
      -    "456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01
      -     "23456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY
      -                                                               "Z
      -             "0123456789" TO X.
           DISPLAY X NO ADVANCING
           END-DISPLAY.
           DISPLAY '_'
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:788: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:788"
( $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/run_misc.at:788"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:789: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:789"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:789"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_588
#AT_START_589
at_fn_group_banner 589 'run_misc.at:796' \
  "Concatenation operator" "                         " 4
at_xfail=no
(
  $as_echo "589. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 STR           PIC X(05).
       PROCEDURE        DIVISION.
           MOVE "OK" & " "
            & "OK"
             TO STR
           DISPLAY STR NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:814: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:814"
( $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/run_misc.at:814"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:815: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:815"
( $at_check_trace; $COBCRUN_DIRECT ./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" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:815"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_589
#AT_START_590
at_fn_group_banner 590 'run_misc.at:820' \
  "SOURCE FIXED/FREE directives" "                   " 4
at_xfail=no
(
  $as_echo "590. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       >>SOURCE FREE
   DATA             DIVISION.
   WORKING-STORAGE  SECTION.
   >>SOURCE FIXED
       PROCEDURE        DIVISION.                                       FIXED
             DISPLAY "OK" NO ADVANCING
             END-DISPLAY.
       >>SOURCE FREE
                                                                        DISPLAY
   "OK"
 NO ADVANCING
   END-DISPLAY.
   >>SET SOURCEFORMAT "FIXED"
             DISPLAY "OK" NO ADVANCING                                  FIXED
             END-DISPLAY.
       >>SET SOURCEFORMAT "FREE"
                                                                        DISPLAY
   "OK"
 NO ADVANCING
   END-DISPLAY.
             STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:849: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:849"
( $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/run_misc.at:849"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:850: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:850"
( $at_check_trace; $COBCRUN_DIRECT ./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 "OKOKOKOK" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:850"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_590
#AT_START_591
at_fn_group_banner 591 'run_misc.at:856' \
  "TURN directive" "                                 " 4
at_xfail=no
(
  $as_echo "591. $at_setup_line: testing $at_desc ..."
  $at_traceon



# note: we only check here that the TURN directive applies
#       for more general tests, including command line options
#       and extension directives, see run_subscript.at, run_refmod.at

cat >prog.cob <<'_ATEOF'

       >>TURN EC-BOUND-SUBSCRIPT CHECKING ON
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x VALUE "12345!".
           03  y PIC X OCCURS 5 TIMES.
           03  z PIC X.
       01  idx PIC 99 VALUE 6.

       PROCEDURE DIVISION.
       >>TURN EC-BOUND-SUBSCRIPT CHECKING OFF
           DISPLAY y (idx) WITH NO ADVANCING
       >>TURN EC-BOUND-SUBSCRIPT CHECKING ON WITH LOCATION
       >>TURN EC-BOUND, EC-PROGRAM CHECKING OFF
           DISPLAY y (idx) WITH NO ADVANCING
       >>TURN EC-BOUND-SUBSCRIPT CHECKING ON
           DISPLAY y (idx) WITH NO ADVANCING
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:886: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:886"
( $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/run_misc.at:886"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:887: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:887"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:20: error: subscript of 'y' out of bounds: 6
note: maximum subscript for 'y': 5
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "!!" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:887"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_591
#AT_START_592
at_fn_group_banner 592 'run_misc.at:897' \
  "Level 01 subscripts" "                            " 4
at_xfail=no
(
  $as_echo "592. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X OCCURS 10.
       PROCEDURE        DIVISION.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:910: \$COMPILE_ONLY -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol2014 prog.cob" "run_misc.at:910"
( $at_check_trace; $COMPILE_ONLY -std=cobol2014 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 a 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/run_misc.at:910"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_592
#AT_START_593
at_fn_group_banner 593 'run_misc.at:919' \
  "Class check with reference modification" "        " 4
at_xfail=no
(
  $as_echo "593. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(6) VALUE "123   ".
       PROCEDURE        DIVISION.
           IF X(1:3) NUMERIC
              STOP RUN
           END-IF.
           DISPLAY "NG" NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:937: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:937"
( $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/run_misc.at:937"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:938: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:938"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:938"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_593
#AT_START_594
at_fn_group_banner 594 'run_misc.at:943' \
  "Index and parenthesized expression" "             " 4
at_xfail=no
(
  $as_echo "594. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X OCCURS 1 INDEXED BY I.
       PROCEDURE        DIVISION.
         IF I < (I + 2)
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY
         END-IF.
         STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:961: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:961"
( $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/run_misc.at:961"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:962: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:962"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:962"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_594
#AT_START_595
at_fn_group_banner 595 'run_misc.at:967' \
  "Alphanumeric and binary numeric" "                " 4
at_xfail=no
(
  $as_echo "595. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-X           PIC XXXX VALUE "0001".
       01 X-9           PIC 9999 COMP VALUE 1.
       PROCEDURE        DIVISION.
         IF X-X = X-9
            STOP RUN
         END-IF.
         DISPLAY "NG" NO ADVANCING
         END-DISPLAY
         STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:986: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:986"
( $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/run_misc.at:986"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:987: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:987"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:987"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_595
#AT_START_596
at_fn_group_banner 596 'run_misc.at:992' \
  "Non-numeric data in numeric items" "              " 4
at_xfail=no
(
  $as_echo "596. $at_setup_line: testing $at_desc ..."
  $at_traceon




cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X.
          03 X-NUM      PIC 9(06) VALUE 123.
       77 NUM           PIC 9(06).
       PROCEDURE        DIVISION.
           MOVE x"0000" TO X (2:2)
           IF X-NUM NUMERIC
              DISPLAY "low-value is numeric" UPON SYSERR
              END-DISPLAY
           END-IF
           MOVE x"01" TO X (3:1)
           IF X-NUM NUMERIC
              DISPLAY "SOH is numeric" UPON SYSERR
              END-DISPLAY
           END-IF
           MOVE X-NUM TO NUM
           DISPLAY "test over"
           END-DISPLAY
      *
           GOBACK.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X.
          03 X-NUM      PIC 9(06) PACKED-DECIMAL VALUE 123.
       77 NUM           PIC 9(06).
       PROCEDURE        DIVISION.
           MOVE x"0A" TO X (2:1)
           IF X-NUM NUMERIC
              DISPLAY "bad prog"
              END-DISPLAY
           END-IF
           MOVE X-NUM TO NUM
           DISPLAY "test over"
           END-DISPLAY
      *
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1043: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1043"
( $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/run_misc.at:1043"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1044: \$COBC -x -o unchecked_prog prog.cob"
at_fn_check_prepare_dynamic "$COBC -x -o unchecked_prog prog.cob" "run_misc.at:1044"
( $at_check_trace; $COBC -x -o unchecked_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/run_misc.at:1044"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1045: \$COBCRUN_DIRECT ./unchecked_prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./unchecked_prog" "run_misc.at:1045"
( $at_check_trace; $COBCRUN_DIRECT ./unchecked_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 "test over
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1045"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1048: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1048"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:20: error: 'X-NUM' (Type: NUMERIC DISPLAY) not numeric: '0\\000\\001123'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:1048"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:1052: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_misc.at:1052"
( $at_check_trace; $COMPILE prog2.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/run_misc.at:1052"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1053: \$COBC -x -o unchecked_prog2 prog2.cob"
at_fn_check_prepare_dynamic "$COBC -x -o unchecked_prog2 prog2.cob" "run_misc.at:1053"
( $at_check_trace; $COBC -x -o unchecked_prog2 prog2.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/run_misc.at:1053"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1054: \$COBCRUN_DIRECT ./unchecked_prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./unchecked_prog2" "run_misc.at:1054"
( $at_check_trace; $COBCRUN_DIRECT ./unchecked_prog2
) >>"$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 "test over
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1054"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1057: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:1057"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:15: error: 'X-NUM' (Type: PACKED-DECIMAL) not numeric: '0x000a123f'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:1057"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_596
#AT_START_597
at_fn_group_banner 597 'run_misc.at:1066' \
  "Dynamic call with static linking" "               " 4
at_xfail=no
(
  $as_echo "597. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       PROCEDURE        DIVISION.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL "callee"
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1085: \$COMPILE_MODULE -c callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE -c callee.cob" "run_misc.at:1085"
( $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/run_misc.at:1085"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1086: \$COMPILE -c caller.cob"
at_fn_check_prepare_dynamic "$COMPILE -c caller.cob" "run_misc.at:1086"
( $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/run_misc.at:1086"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1087: \$COMPILE -o prog caller.\$COB_OBJECT_EXT callee.\$COB_OBJECT_EXT"
at_fn_check_prepare_dynamic "$COMPILE -o prog caller.$COB_OBJECT_EXT callee.$COB_OBJECT_EXT" "run_misc.at:1087"
( $at_check_trace; $COMPILE -o prog caller.$COB_OBJECT_EXT callee.$COB_OBJECT_EXT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1087"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1088: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1088"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1088"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1089: \$COMPILE -o prog2 caller.cob callee.cob"
at_fn_check_prepare_dynamic "$COMPILE -o prog2 caller.cob callee.cob" "run_misc.at:1089"
( $at_check_trace; $COMPILE -o prog2 caller.cob 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/run_misc.at:1089"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1090: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:1090"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1090"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_597
#AT_START_598
at_fn_group_banner 598 'run_misc.at:1095' \
  "Static call with static linking" "                " 4
at_xfail=no
(
  $as_echo "598. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       PROCEDURE        DIVISION.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL STATIC "callee"
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1114: \$COMPILE_MODULE -c callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE -c callee.cob" "run_misc.at:1114"
( $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/run_misc.at:1114"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1115: \$COMPILE -c caller.cob"
at_fn_check_prepare_dynamic "$COMPILE -c caller.cob" "run_misc.at:1115"
( $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/run_misc.at:1115"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1116: \$COMPILE -o prog caller.\$COB_OBJECT_EXT callee.\$COB_OBJECT_EXT"
at_fn_check_prepare_dynamic "$COMPILE -o prog caller.$COB_OBJECT_EXT callee.$COB_OBJECT_EXT" "run_misc.at:1116"
( $at_check_trace; $COMPILE -o prog caller.$COB_OBJECT_EXT callee.$COB_OBJECT_EXT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1116"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1117: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1117"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1117"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1118: \$COMPILE -o prog2 -static caller.cob callee.cob"
at_fn_check_prepare_dynamic "$COMPILE -o prog2 -static caller.cob callee.cob" "run_misc.at:1118"
( $at_check_trace; $COMPILE -o prog2 -static caller.cob 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/run_misc.at:1118"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1119: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:1119"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1119"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1120: \$COMPILE -o prog3 caller.cob callee.cob"
at_fn_check_prepare_dynamic "$COMPILE -o prog3 caller.cob callee.cob" "run_misc.at:1120"
( $at_check_trace; $COMPILE -o prog3 caller.cob 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/run_misc.at:1120"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1121: \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_misc.at:1121"
( $at_check_trace; $COBCRUN_DIRECT ./prog3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1121"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_598
#AT_START_599
at_fn_group_banner 599 'run_misc.at:1126' \
  "Dynamic CALL with ON EXCEPTION" "                 " 4
at_xfail=no
(
  $as_echo "599. $at_setup_line: testing $at_desc ..."
  $at_traceon




cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL "callee1" ON EXCEPTION
              CALL "callee2" ON EXCEPTION
                  DISPLAY "neither calee1 nor callee2 found"
              END-CALL
           END-CALL
           GOBACK.
_ATEOF


cat >callee2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2.
       PROCEDURE        DIVISION.
           DISPLAY "this is callee2" NO ADVANCING
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1150: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1150"
( $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/run_misc.at:1150"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1151: \$COMPILE_MODULE callee2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee2.cob" "run_misc.at:1151"
( $at_check_trace; $COMPILE_MODULE callee2.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/run_misc.at:1151"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1152: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1152"
( $at_check_trace; $COBCRUN_DIRECT ./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 "this is callee2" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1152"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_599
#AT_START_600
at_fn_group_banner 600 'run_misc.at:1158' \
  "Static CALL with ON EXCEPTION" "                  " 4
at_xfail=no
(
  $as_echo "600. $at_setup_line: testing $at_desc ..."
  $at_traceon




cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL "callee1" ON EXCEPTION
              CALL "callee2" ON EXCEPTION
                  DISPLAY "neither calee1 nor callee2 found"
              END-CALL
           END-CALL
           GOBACK.
_ATEOF


cat >callee2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2.
       PROCEDURE        DIVISION.
           DISPLAY "this is callee2" NO ADVANCING
           GOBACK.
_ATEOF



{ set +x
$as_echo "$at_srcdir/run_misc.at:1183: \$COMPILE_MODULE -c callee2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE -c callee2.cob" "run_misc.at:1183"
( $at_check_trace; $COMPILE_MODULE -c callee2.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/run_misc.at:1183"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1184: \$COMPILE -c caller.cob"
at_fn_check_prepare_dynamic "$COMPILE -c caller.cob" "run_misc.at:1184"
( $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/run_misc.at:1184"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1185: \$COMPILE -o prog caller.\$COB_OBJECT_EXT callee2.\$COB_OBJECT_EXT"
at_fn_check_prepare_dynamic "$COMPILE -o prog caller.$COB_OBJECT_EXT callee2.$COB_OBJECT_EXT" "run_misc.at:1185"
( $at_check_trace; $COMPILE -o prog caller.$COB_OBJECT_EXT callee2.$COB_OBJECT_EXT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1185"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1186: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1186"
( $at_check_trace; $COBCRUN_DIRECT ./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 "this is callee2" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1186"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1188: \$COMPILE -o prog2 -static caller.cob callee2.cob"
at_fn_check_prepare_dynamic "$COMPILE -o prog2 -static caller.cob callee2.cob" "run_misc.at:1188"
( $at_check_trace; $COMPILE -o prog2 -static caller.cob callee2.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/run_misc.at:1188"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1189: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:1189"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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 "this is callee2" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1189"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1191: \$COMPILE -o prog3 caller.cob callee2.cob"
at_fn_check_prepare_dynamic "$COMPILE -o prog3 caller.cob callee2.cob" "run_misc.at:1191"
( $at_check_trace; $COMPILE -o prog3 caller.cob callee2.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/run_misc.at:1191"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1192: \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_misc.at:1192"
( $at_check_trace; $COBCRUN_DIRECT ./prog3
) >>"$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 "this is callee2" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1192"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_600
#AT_START_601
at_fn_group_banner 601 'run_misc.at:1198' \
  "CALL m1. CALL m2. CALL m1." "                     " 4
at_xfail=no
(
  $as_echo "601. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >m1.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      m1.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9(4).
       PROCEDURE        DIVISION.
           COMPUTE X = 1 + 2
           END-COMPUTE.
           IF X NOT = 3
              DISPLAY X
              END-DISPLAY
           END-IF.
_ATEOF


cat >m2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      m2.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 9(4).
       PROCEDURE        DIVISION.
           COMPUTE X = 3 + 4
           END-COMPUTE.
           IF X NOT = 7
              DISPLAY X
              END-DISPLAY
           END-IF.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL "m1"
           END-CALL.
           CALL "m2"
           END-CALL.
           CALL "m1"
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1244: \$COMPILE_MODULE m1.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE m1.cob" "run_misc.at:1244"
( $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/run_misc.at:1244"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1245: \$COMPILE_MODULE m2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE m2.cob" "run_misc.at:1245"
( $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/run_misc.at:1245"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1246: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1246"
( $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/run_misc.at:1246"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:1248: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1248"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_601
#AT_START_602
at_fn_group_banner 602 'run_misc.at:1253' \
  "Recursive CALL of RECURSIVE program" "            " 4
at_xfail=no
(
  $as_echo "602. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller IS RECURSIVE.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  STOPPER      PIC S9 EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE 0 TO STOPPER
           CALL "callee"
           DISPLAY 'OK' NO ADVANCING END-DISPLAY
           CANCEL "callee" , "callee2"
           DISPLAY ' + FINE' NO ADVANCING END-DISPLAY
           STOP RUN.
_ATEOF


cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee IS RECURSIVE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  STOPPER      PIC S9 EXTERNAL.
       PROCEDURE        DIVISION.
           IF STOPPER = 9
              MOVE -1 TO STOPPER
           ELSE
              ADD   1 TO STOPPER
              CALL "callee2"
           END-IF
           GOBACK.
_ATEOF


cat >callee2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2 IS RECURSIVE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  STOPPER      PIC S9 EXTERNAL.
       PROCEDURE        DIVISION.
           IF STOPPER NOT EQUAL -1
             CALL "callee"
           END-IF
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1302: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1302"
( $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/run_misc.at:1302"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1303: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:1303"
( $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/run_misc.at:1303"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1304: \$COMPILE_MODULE callee2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee2.cob" "run_misc.at:1304"
( $at_check_trace; $COMPILE_MODULE callee2.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/run_misc.at:1304"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1305: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1305"
( $at_check_trace; $COBCRUN_DIRECT ./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 + FINE" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1305"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_602
#AT_START_603
at_fn_group_banner 603 'run_misc.at:1310' \
  "Recursive CALL of INITIAL program" "              " 4
at_xfail=no
(
  $as_echo "603. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  STOPPER      PIC 9 EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE 0 TO STOPPER
           CALL "callee" END-CALL.
           GOBACK.
_ATEOF


cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee IS INITIAL.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  STOPPER      PIC 9 EXTERNAL.
       PROCEDURE        DIVISION.
           IF STOPPER = 1
              DISPLAY 'INITIAL prog was called RECURSIVE'
              END-DISPLAY
              STOP RUN RETURNING 1
           ELSE
              MOVE 1 TO STOPPER
              CALL "callee2" END-CALL
           END-IF.
           GOBACK.
_ATEOF


cat >callee2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2.
       PROCEDURE        DIVISION.
           CALL "callee" END-CALL.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1351: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1351"
( $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/run_misc.at:1351"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1352: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:1352"
( $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/run_misc.at:1352"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1353: \$COMPILE_MODULE callee2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee2.cob" "run_misc.at:1353"
( $at_check_trace; $COMPILE_MODULE callee2.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/run_misc.at:1353"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1354: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1354"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: callee2.cob:5: error: recursive CALL from 'callee2' to 'callee' which is NOT RECURSIVE
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:1354"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_603
#AT_START_604
at_fn_group_banner 604 'run_misc.at:1361' \
  "Recursive CALL with RECURSIVE assumed" "          " 4
at_xfail=no
(
  $as_echo "604. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  STOPPER      PIC 9 EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE 0 TO STOPPER
           CALL "callee" END-CALL.
           GOBACK.
_ATEOF


cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee IS INITIAL.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  STOPPER      PIC 9 EXTERNAL.
       PROCEDURE        DIVISION.
           IF STOPPER = 8
              DISPLAY 'OK' NO ADVANCING END-DISPLAY.
           IF STOPPER NOT = 9
              ADD  1 TO STOPPER END-ADD
              CALL "callee2" END-CALL.
           GOBACK.
_ATEOF


cat >callee2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2.
       PROCEDURE        DIVISION.
           CALL "callee" END-CALL.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1399: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1399"
( $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/run_misc.at:1399"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1400: \$COMPILE_MODULE -fno-recursive-check callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE -fno-recursive-check callee.cob" "run_misc.at:1400"
( $at_check_trace; $COMPILE_MODULE -fno-recursive-check 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/run_misc.at:1400"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1401: \$COMPILE_MODULE -fno-recursive-check callee2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE -fno-recursive-check callee2.cob" "run_misc.at:1401"
( $at_check_trace; $COMPILE_MODULE -fno-recursive-check callee2.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/run_misc.at:1401"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1402: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1402"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1402"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_604
#AT_START_605
at_fn_group_banner 605 'run_misc.at:1407' \
  "Recursive CALL with ON EXCEPTION" "               " 4
at_xfail=no
(
  $as_echo "605. $at_setup_line: testing $at_desc ..."
  $at_traceon




cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  STOPPER      PIC 9 EXTERNAL.
       PROCEDURE        DIVISION.
           MOVE 0 TO STOPPER
           CALL "callee" END-CALL.
           GOBACK.
_ATEOF


cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee IS INITIAL.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  STOPPER      PIC 9 EXTERNAL.
       PROCEDURE        DIVISION.
           IF STOPPER = 1
              DISPLAY 'INITIAL prog was called RECURSIVE'
              END-DISPLAY
              STOP RUN RETURNING 1
           ELSE
              MOVE 1 TO STOPPER
              CALL "callee2" END-CALL
           END-IF.
           GOBACK.
_ATEOF


cat >callee2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2.
       PROCEDURE        DIVISION.
           CALL "callee"
           ON EXCEPTION
              DISPLAY "Exception " FUNCTION EXCEPTION-STATUS ";"
                 UPON SYSERR
              STOP RUN RETURNING 1
           END-CALL.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1454: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1454"
( $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/run_misc.at:1454"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1455: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:1455"
( $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/run_misc.at:1455"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1456: \$COMPILE_MODULE callee2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee2.cob" "run_misc.at:1456"
( $at_check_trace; $COMPILE_MODULE callee2.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/run_misc.at:1456"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1457: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1457"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "Exception EC-PROGRAM-RECURSIVE-CALL      ;
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:1457"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_605
#AT_START_606
at_fn_group_banner 606 'run_misc.at:1464' \
  "Multiple calls of INITIAL program" "              " 4
at_xfail=no
(
  $as_echo "606. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  PARAM1       PIC X(08).
       01  PARAM2       PIC 9999 COMP VALUE 08.
       PROCEDURE        DIVISION.
           MOVE ' PARAM 1' TO PARAM1
           PERFORM 10 TIMES
              CALL "callee" USING PARAM1 PARAM2 END-CALL
           END-PERFORM
           DISPLAY 'PARAM1 = ' PARAM1
           END-DISPLAY
           STOP RUN.
_ATEOF


cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee IS INITIAL.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  COUNTER      PIC 999 VALUE ZERO.
       01  LPARAM       PIC 9(8) COMP.
       LINKAGE SECTION.
       01  PARAM1       PIC X(08).
       01  PARAM2       PIC 9999 COMP.
       PROCEDURE        DIVISION USING PARAM1 PARAM2.
           ADD 1 TO COUNTER END-ADD
           CALL 'C$PARAMSIZE' USING 1 GIVING LPARAM END-CALL
           DISPLAY 'COUNTER = ' COUNTER ' LPARAM1 = ' LPARAM
                   ' PARAM1 = ' PARAM1
           END-DISPLAY
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1503: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:1503"
( $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/run_misc.at:1503"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1504: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:1504"
( $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/run_misc.at:1504"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1505: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:1505"
( $at_check_trace; $COBCRUN_DIRECT ./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 "COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
COUNTER = 001 LPARAM1 = 00000008 PARAM1 =  PARAM 1
PARAM1 =  PARAM 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1505"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_606
#AT_START_607
at_fn_group_banner 607 'run_misc.at:1521' \
  "CALL binary literal parameter/LENGTH OF" "        " 4
at_xfail=no
(
  $as_echo "607. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (int *p)
{
  printf ("%8.8d\n", *p);
  return 0;
}
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MYOCC        PIC 9(8) COMP.
       01  MYTAB.
           03  MYBYTE   PIC X OCCURS 1 TO 20
                        DEPENDING ON MYOCC.
       PROCEDURE        DIVISION.
           MOVE 9 TO MYOCC.
           CALL "dump" USING BY CONTENT 1
           END-CALL.
           CALL "dump" USING BY CONTENT LENGTH OF MYTAB
           END-CALL.
           CALL "dump" USING BY CONTENT LENGTH OF MYOCC
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1556: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "run_misc.at:1556"
( $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/run_misc.at:1556"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1557: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1557"
( $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/run_misc.at:1557"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1558: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1558"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1558"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1563: \$COMPILE -fbinary-byteorder=native prog.cob -o prog2"
at_fn_check_prepare_dynamic "$COMPILE -fbinary-byteorder=native prog.cob -o prog2" "run_misc.at:1563"
( $at_check_trace; $COMPILE -fbinary-byteorder=native prog.cob -o prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1563"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1564: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:1564"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1564"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_607
#AT_START_608
at_fn_group_banner 608 'run_misc.at:1575' \
  "INSPECT REPLACING LEADING ZEROS BY SPACES" "      " 4
at_xfail=no
(
  $as_echo "608. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "0001".
       PROCEDURE        DIVISION.
           INSPECT X REPLACING LEADING ZEROS BY SPACES.
           IF X NOT = "   1"
              DISPLAY "Should be '   1' but is '" X "'".
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1591: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1591"
( $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/run_misc.at:1591"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1592: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1592"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1592"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_608
#AT_START_609
at_fn_group_banner 609 'run_misc.at:1597' \
  "INSPECT No repeat conversion check" "             " 4
at_xfail=no
(
  $as_echo "609. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(3) VALUE "BCA".
       01 Y             PIC X(6) VALUE "   BCA".
       PROCEDURE        DIVISION.
           INSPECT X CONVERTING "ABC" TO "BCD".
           IF X NOT = "CDB"
              DISPLAY "X: " X.
           INSPECT Y CONVERTING "ABC" TO "BCD".
           IF Y NOT = "   CDB"
              DISPLAY "Y: " Y.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1617: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1617"
( $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/run_misc.at:1617"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1618: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1618"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1618"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_609
#AT_START_610
at_fn_group_banner 610 'run_misc.at:1623' \
  "INSPECT CONVERTING alphabet" "                    " 4
at_xfail=no
(
  $as_echo "610. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. charset.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           ALPHABET ALPHA IS ASCII.
           ALPHABET BETA  IS EBCDIC.

       DATA DIVISION.
       WORKING-STORAGE SECTION.

       01 TESTHEX PIC X(10) VALUE X'C17BD6F2F0F1F8404040'.

       procedure division.
       sample-main.

           INSPECT testhex CONVERTING BETA TO ALPHA
           DISPLAY 'Converted: "' TESTHEX '"' WITH NO ADVANCING

           GOBACK.
       END PROGRAM charset.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1651: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1651"
( $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/run_misc.at:1651"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1652: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1652"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Converted: \"A#O2018   \"" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1652"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_610
#AT_START_611
at_fn_group_banner 611 'run_misc.at:1658' \
  "INSPECT CONVERTING TO figurative constant" "      " 4
at_xfail=no
(
  $as_echo "611. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(3) VALUE "BCA".
       PROCEDURE        DIVISION.
           INSPECT X CONVERTING "ABC" TO SPACES.
           IF X NOT = SPACES
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1676: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1676"
( $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/run_misc.at:1676"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1677: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1677"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1677"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_611
#AT_START_612
at_fn_group_banner 612 'run_misc.at:1682' \
  "INSPECT CONVERTING NULL" "                        " 4
at_xfail=no
(
  $as_echo "612. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(3) VALUE LOW-VALUES.
       PROCEDURE        DIVISION.
           INSPECT X CONVERTING NULL TO "A".
           IF X NOT = "AAA"
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1700: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1700"
( $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/run_misc.at:1700"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1701: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1701"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1701"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_612
#AT_START_613
at_fn_group_banner 613 'run_misc.at:1706' \
  "INSPECT CONVERTING TO NULL" "                     " 4
at_xfail=no
(
  $as_echo "613. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(3) VALUE "AAA".
       PROCEDURE        DIVISION.
           INSPECT X CONVERTING "A" TO NULL.
           IF X NOT = LOW-VALUES
              DISPLAY "NG" NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1724: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1724"
( $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/run_misc.at:1724"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1725: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1725"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1725"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_613
#AT_START_614
at_fn_group_banner 614 'run_misc.at:1730' \
  "INSPECT REPLACING figurative constant" "          " 4
at_xfail=no
(
  $as_echo "614. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(3) VALUE "BCA".
       PROCEDURE        DIVISION.
           INSPECT X REPLACING ALL "BC" BY SPACE.
           IF X NOT = "  A"
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1748: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1748"
( $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/run_misc.at:1748"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1749: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1749"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1749"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_614
#AT_START_615
at_fn_group_banner 615 'run_misc.at:1754' \
  "INSPECT TALLYING BEFORE" "                        " 4
at_xfail=no
(
  $as_echo "615. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "ABC ".
       01 TAL           PIC 999 VALUE 0.
       PROCEDURE        DIVISION.
           MOVE 0 TO TAL.
           INSPECT X TALLYING TAL FOR CHARACTERS
                     BEFORE INITIAL " ".
           IF TAL NOT = 3
              DISPLAY TAL NO ADVANCING
              END-DISPLAY
           END-IF.
           MOVE 0 TO TAL.
           MOVE " ABC" TO X.
           INSPECT X TALLYING TAL FOR CHARACTERS
                     BEFORE INITIAL " ".
           IF TAL NOT = 0
              DISPLAY TAL NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1783: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1783"
( $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/run_misc.at:1783"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1784: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1784"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1784"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_615
#AT_START_616
at_fn_group_banner 616 'run_misc.at:1789' \
  "INSPECT TALLYING AFTER" "                         " 4
at_xfail=no
(
  $as_echo "616. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "ABC ".
       01 TAL           PIC 999 VALUE 0.
       PROCEDURE        DIVISION.
           MOVE 0 TO TAL.
           INSPECT X TALLYING TAL FOR CHARACTERS
                     AFTER INITIAL " ".
           IF TAL NOT = 0
              DISPLAY TAL NO ADVANCING
              END-DISPLAY
           END-IF.
           MOVE 0 TO TAL.
           MOVE " ABC" TO X.
           INSPECT X TALLYING TAL FOR CHARACTERS
                     AFTER INITIAL " ".
           IF TAL NOT = 3
              DISPLAY TAL NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1818: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1818"
( $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/run_misc.at:1818"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1819: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1819"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1819"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_616
#AT_START_617
at_fn_group_banner 617 'run_misc.at:1824' \
  "INSPECT REPLACING TRAILING ZEROS BY SPACES" "     " 4
at_xfail=no
(
  $as_echo "617. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE "1000".
       PROCEDURE        DIVISION.
           INSPECT X REPLACING TRAILING ZEROS BY SPACES.
           IF X NOT = "1   "
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1842: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1842"
( $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/run_misc.at:1842"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1843: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1843"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1843"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_617
#AT_START_618
at_fn_group_banner 618 'run_misc.at:1848' \
  "INSPECT REPLACING complex" "                      " 4
at_xfail=no
(
  $as_echo "618. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(12) VALUE "AAABBCDCCCCC".
       PROCEDURE        DIVISION.
           INSPECT X REPLACING
             ALL      "A" BY "Z"
                      "B" BY "Y"
             TRAILING "C" BY "X".
           IF X NOT = "ZZZYYCDXXXXX"
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1869: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1869"
( $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/run_misc.at:1869"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1870: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1870"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:1870"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_618
#AT_START_619
at_fn_group_banner 619 'run_misc.at:1874' \
  "SWITCHES (environment COB_SWITCH_n and SET)" "    " 4
at_xfail=no
(
  $as_echo "619. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           SWITCH-1 IS SWIT1
             ON  IS SWIT1-ON
             OFF IS SWIT1-OFF
           SWITCH-2 IS SWIT2
             ON  IS SWIT2-ON
             OFF IS SWIT2-OFF
           SWITCH-3
             ON  IS SWIT3-ON
             OFF IS SWIT3-OFF
           SWITCH-4 IS SWIT4
             OFF IS SWIT4-OFF
           SWITCH-31
             ON  IS SWIT31-ON
           SWITCH-36 IS SWIT36
             OFF IS SWIT36-OFF.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           IF SWIT1-ON
              DISPLAY "ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY "OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           IF SWIT2-ON
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           IF SWIT3-ON
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           IF NOT SWIT4-OFF
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           SET SWIT1 TO OFF.
           SET SWIT2 TO ON.
           IF SWIT1-ON
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           IF SWIT2-ON
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF
           IF SWIT31-ON
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           IF NOT SWIT36-OFF
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1962: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1962"
( $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/run_misc.at:1962"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1963: COB_SWITCH_1=1 COB_SWITCH_2=0 COB_SWITCH_3=OFF COB_SWITCH_4=ON COB_SWITCH_36=ON ./prog"
at_fn_check_prepare_trace "run_misc.at:1963"
( $at_check_trace; COB_SWITCH_1=1 COB_SWITCH_2=0 COB_SWITCH_3=OFF COB_SWITCH_4=ON COB_SWITCH_36=ON ./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 "ON OFF OFF ON OFF ON OFF ON" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1963"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_619
#AT_START_620
at_fn_group_banner 620 'run_misc.at:1971' \
  "Nested PERFORM" "                                 " 4
at_xfail=no
(
  $as_echo "620. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           PERFORM 2 TIMES
             DISPLAY "X" NO ADVANCING
             END-DISPLAY
             PERFORM 2 TIMES
               DISPLAY "Y" NO ADVANCING
               END-DISPLAY
             END-PERFORM
           END-PERFORM.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:1989: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:1989"
( $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/run_misc.at:1989"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:1990: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:1990"
( $at_check_trace; $COBCRUN_DIRECT ./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 "XYYXYY" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:1990"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_620
#AT_START_621
at_fn_group_banner 621 'run_misc.at:1995' \
  "PERFORM VARYING BY -0.2" "                        " 4
at_xfail=no
(
  $as_echo "621. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
	   77 X             PIC 9v9.
       PROCEDURE        DIVISION.
           PERFORM VARYING X FROM 0.8 BY -0.2
                   UNTIL   X < 0.4
             DISPLAY "X" NO ADVANCING
             END-DISPLAY
           END-PERFORM.
		   IF X NOT = 0.2
		     DISPLAY "WRONG X: " X END-DISPLAY
		   END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2016: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2016"
( $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/run_misc.at:2016"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2017: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2017"
( $at_check_trace; $COBCRUN_DIRECT ./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 "XXX" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2017"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_621
#AT_START_622
at_fn_group_banner 622 'run_misc.at:2022' \
  "PERFORM VARYING BY phrase omitted" "              " 4
at_xfail=no
(
  $as_echo "622. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
	   77 X             PIC 9.
       PROCEDURE        DIVISION.
           PERFORM VARYING X FROM 4
                   UNTIL   X > 6
             DISPLAY "X" NO ADVANCING
           END-PERFORM.
		   IF X NOT = 7
		     DISPLAY "WRONG X: " X
		   END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2042: \$COMPILE_ONLY -std=cobol85 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -std=cobol85 prog.cob" "run_misc.at:2042"
( $at_check_trace; $COMPILE_ONLY -std=cobol85 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: PERFORM VARYING without BY phrase does not conform to COBOL 85
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:2042"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2045: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2045"
( $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/run_misc.at:2045"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2046: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2046"
( $at_check_trace; $COBCRUN_DIRECT ./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 "XXX" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2046"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_622
#AT_START_623
at_fn_group_banner 623 'run_misc.at:2053' \
  "EXIT PERFORM" "                                   " 4
at_xfail=no
(
  $as_echo "623. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           PERFORM 2 TIMES
             DISPLAY "OK" NO ADVANCING
             END-DISPLAY
             EXIT PERFORM
             DISPLAY "NOT OK"
             END-DISPLAY
           END-PERFORM
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2070: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2070"
( $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/run_misc.at:2070"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2071: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2071"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2071"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_623
#AT_START_624
at_fn_group_banner 624 'run_misc.at:2078' \
  "EXIT PERFORM CYCLE" "                             " 4
at_xfail=no
(
  $as_echo "624. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           PERFORM 2 TIMES
             DISPLAY "OK" NO ADVANCING
             END-DISPLAY
             EXIT PERFORM CYCLE
             DISPLAY "NOT OK"
             END-DISPLAY
           END-PERFORM
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2095: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2095"
( $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/run_misc.at:2095"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2096: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2096"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2096"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_624
#AT_START_625
at_fn_group_banner 625 'run_misc.at:2103' \
  "EXIT PARAGRAPH" "                                 " 4
at_xfail=no
(
  $as_echo "625. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 INDVAL        PIC 9(4).
       PROCEDURE        DIVISION.
       A01.
           PERFORM VARYING INDVAL FROM 1 BY 1 UNTIL INDVAL > 10
            IF INDVAL > 2
               EXIT PARAGRAPH
            END-IF
           END-PERFORM.
       A02.
           IF INDVAL NOT = 3
              DISPLAY INDVAL NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2127: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2127"
( $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/run_misc.at:2127"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2128: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2128"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2128"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_625
#AT_START_626
at_fn_group_banner 626 'run_misc.at:2135' \
  "EXIT SECTION" "                                   " 4
at_xfail=no
(
  $as_echo "626. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 INDVAL        PIC 9(4).
       PROCEDURE        DIVISION.
       A01 SECTION.
       A011.
           PERFORM VARYING INDVAL FROM 1 BY 1 UNTIL INDVAL > 10
            IF INDVAL > 2
               EXIT SECTION
            END-IF
           END-PERFORM.
       A012.
           DISPLAY INDVAL NO ADVANCING
           END-DISPLAY.
       A02 SECTION.
           IF INDVAL NOT = 3
              DISPLAY INDVAL NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2163: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2163"
( $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/run_misc.at:2163"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2164: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2164"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2164"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_626
#AT_START_627
at_fn_group_banner 627 'run_misc.at:2169' \
  "PERFORM FOREVER / PERFORM UNTIL EXIT" "           " 4
at_xfail=no
(
  $as_echo "627. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  INDVAL       PIC 9(4).
       PROCEDURE        DIVISION.
       A01.
           MOVE 0 TO INDVAL
           PERFORM UNTIL EXIT
            ADD 1 TO INDVAL
            IF INDVAL > 2
               EXIT PERFORM
            END-IF
           END-PERFORM
           IF INDVAL NOT = 3
              DISPLAY "1: " INDVAL
              END-DISPLAY
           END-IF
           PERFORM FOREVER
            ADD 1 TO INDVAL
            IF INDVAL > 4
               EXIT PERFORM
            END-IF
           END-PERFORM
           IF INDVAL NOT = 5
              DISPLAY "2: " INDVAL
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2204: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2204"
( $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/run_misc.at:2204"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2205: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2205"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2205"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_627
#AT_START_628
at_fn_group_banner 628 'run_misc.at:2210' \
  "PERFORM inline (1)" "                             " 4
at_xfail=no
(
  $as_echo "628. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  INDVAL       PIC 9(4).
       PROCEDURE        DIVISION.
           PERFORM VARYING INDVAL FROM 1
            BY 1 UNTIL INDVAL > 2
           END-PERFORM
           IF INDVAL NOT = 3
              DISPLAY INDVAL NO ADVANCING
              END-DISPLAY
           END-IF
           STOP RUN
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2231: \$COMPILE -fmissing-statement=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fmissing-statement=ok prog.cob" "run_misc.at:2231"
( $at_check_trace; $COMPILE -fmissing-statement=ok 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/run_misc.at:2231"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2232: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2232"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2232"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_628
#AT_START_629
at_fn_group_banner 629 'run_misc.at:2237' \
  "PERFORM inline (2)" "                             " 4
at_xfail=no
(
  $as_echo "629. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  INDVAL       PIC 9(4).
       PROCEDURE        DIVISION.
           PERFORM VARYING INDVAL FROM 1
            BY 1 UNTIL INDVAL > 2.
           IF INDVAL NOT = 3
              DISPLAY INDVAL NO ADVANCING
              END-DISPLAY
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2256: \$COMPILE -frelax-syntax-checks -w prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -frelax-syntax-checks -w prog.cob" "run_misc.at:2256"
( $at_check_trace; $COMPILE -frelax-syntax-checks -w 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/run_misc.at:2256"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2257: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2257"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2257"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_629
#AT_START_630
at_fn_group_banner 630 'run_misc.at:2262' \
  "Non-overflow after overflow" "                    " 4
at_xfail=no
(
  $as_echo "630. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC 9(2) VALUE 0.
       01  Y            PIC 9(2) VALUE 0.
       PROCEDURE        DIVISION.
           COMPUTE X = 100
           END-COMPUTE.
           COMPUTE Y = 99
           END-COMPUTE.
           IF Y NOT = 99
              DISPLAY Y NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2284: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2284"
( $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/run_misc.at:2284"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2285: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2285"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2285"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_630
#AT_START_631
at_fn_group_banner 631 'run_misc.at:2292' \
  "PERFORM ... CONTINUE" "                           " 4
at_xfail=no
(
  $as_echo "631. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           PERFORM 2 TIMES
             CONTINUE
           END-PERFORM.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2304: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "run_misc.at:2304"
( $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/run_misc.at:2304"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_631
#AT_START_632
at_fn_group_banner 632 'run_misc.at:2309' \
  "STRING with subscript reference" "                " 4
at_xfail=no
(
  $as_echo "632. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  G.
           02 X         PIC X(3) OCCURS 3.
       PROCEDURE        DIVISION.
           MOVE   SPACES TO G.
           STRING "abc" INTO X(2)
           END-STRING.
           IF G NOT = "   abc   "
              DISPLAY X(1) NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2330: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2330"
( $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/run_misc.at:2330"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2331: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2331"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2331"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_632
#AT_START_633
at_fn_group_banner 633 'run_misc.at:2336' \
  "STRING / UNSTRING NOT ON OVERFLOW" "              " 4
at_xfail=no
(
  $as_echo "633. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       identification division.
       program-id. prog.
       data division.
       working-storage section.
       77 simple-str     pic x(20).
       77 err-str        pic x(50).
      *-----------------------------------------------------------------
       procedure division.
      *    STRING test
           move spaces to simple-str
           string 'data'
             delimited by size
             into simple-str
             on overflow
               move spaces to err-str
               string 'STRING OVERFLOW'
                  delimited by size
                  into err-str
               end-string
               display err-str upon syserr
               end-display
               display '1 failed'
               end-display
             not on overflow
               display '1 passed'
               end-display
           end-string
           if simple-str not = 'data'
             display 'STRING ERROR (1): "' simple-str '"'
             end-display
           end-if
      *
           move spaces to simple-str
           string 'data is too big here...'
             delimited by size
             into simple-str
             on overflow
               display '2 passed'
               end-display
             not on overflow
               display '2 failed'
               end-display
               move spaces to err-str
               string 'missing OVERFLOW'
                  delimited by size
                  into err-str
               end-string
               display err-str upon syserr
               end-display
           end-string
           if simple-str not = 'data is too big here'
             display 'STRING ERROR (2): "' simple-str '"'
             end-display
           end-if
      *
      *    UNSTRING test
           move spaces to simple-str
           unstring 'data'
             into simple-str
             on overflow
               move spaces to err-str
               unstring 'UNSTRING OVERFLOW'
                  into err-str
               end-unstring
               display err-str upon syserr
               end-display
               display '3 failed'
               end-display
             not on overflow
               display '3 passed'
               end-display
           end-unstring
           if simple-str not = 'data'
             display 'UNSTRING ERROR (1): "' simple-str '"'
             end-display
           end-if
      *
           move spaces to simple-str
           unstring 'data is too big here...'
             into simple-str
             on overflow
               display '4 passed'
               end-display
             not on overflow
               display '4 failed'
               end-display
               move spaces to err-str
               string 'missing OVERFLOW'
                  delimited by size
                  into err-str
               end-string
               display err-str upon syserr
               end-display
           end-unstring
           if simple-str not = 'data is too big here'
             display 'UNSTRING ERROR (2): "' simple-str '"'
             end-display
           end-if
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2442: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2442"
( $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/run_misc.at:2442"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2443: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2443"
( $at_check_trace; $COBCRUN_DIRECT ./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 passed
2 passed
3 passed
4 passed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2443"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_633
#AT_START_634
at_fn_group_banner 634 'run_misc.at:2453' \
  "UNSTRING DELIMITED ALL LOW-VALUE" "               " 4
at_xfail=no
(
  $as_echo "634. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  G.
           03 FILLER    PIC XXX VALUE "ABC".
           03 FILLER    PIC XX  VALUE LOW-VALUES.
           03 FILLER    PIC XXX VALUE "DEF".
       01  A            PIC XXX.
       01  B            PIC XXX.
       PROCEDURE        DIVISION.
           UNSTRING G DELIMITED BY ALL LOW-VALUES
                      INTO A B
           END-UNSTRING.
           IF A NOT = "ABC"
              DISPLAY A
              END-DISPLAY
           END-IF.
           IF B NOT = "DEF"
              DISPLAY B
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2482: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2482"
( $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/run_misc.at:2482"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2483: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2483"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2483"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_634
#AT_START_635
at_fn_group_banner 635 'run_misc.at:2488' \
  "UNSTRING DELIMITED ALL SPACE-2" "                 " 4
at_xfail=no
(
  $as_echo "635. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       ENVIRONMENT     DIVISION.
       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-RECORD.
           02 VALUE SPACE           PIC X(04).
           02 VALUE "ABC AND DE"    PIC X(10).
           02 VALUE SPACE           PIC X(07).
           02 VALUE "FG AND HIJ"    PIC X(10).
           02 VALUE SPACE           PIC X(08).
       01  SPACE-2                  PIC X(02) VALUE SPACE.
       01  WS-DUMMY                 PIC X(15).
       01  WS-POINTER               PIC 99.
       PROCEDURE       DIVISION.
           MOVE 1 TO WS-POINTER.
      *
           PERFORM 0001-SUB.
           IF WS-DUMMY NOT = SPACE
              DISPLAY "Expected space - Got " WS-DUMMY
              END-DISPLAY
           END-IF.
           IF WS-POINTER NOT = 5
              DISPLAY "Expected 5 - Got " WS-POINTER
              END-DISPLAY
           END-IF.
      *
           PERFORM 0001-SUB.
           IF WS-DUMMY NOT = "ABC AND DE"
              DISPLAY "Expected ABC AND DE - Got " WS-DUMMY
              END-DISPLAY
           END-IF.
           IF WS-POINTER NOT = 21
              DISPLAY "Expected 21 - Got " WS-POINTER
              END-DISPLAY
           END-IF.
      *
           PERFORM 0001-SUB.
           IF WS-DUMMY NOT = " FG AND HIJ"
              DISPLAY "Expected  FG AND HIJ - Got " WS-DUMMY
              END-DISPLAY
           END-IF.
           IF WS-POINTER NOT = 40
              DISPLAY "Expected 40 - Got " WS-POINTER
              END-DISPLAY
           END-IF.
           STOP RUN.
       0001-SUB.
           UNSTRING WS-RECORD
                    DELIMITED BY ALL SPACE-2
              INTO WS-DUMMY
              POINTER WS-POINTER
           END-UNSTRING.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2547: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2547"
( $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/run_misc.at:2547"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2548: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2548"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2548"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_635
#AT_START_636
at_fn_group_banner 636 'run_misc.at:2553' \
  "UNSTRING DELIMITED POINTER" "                     " 4
at_xfail=no
(
  $as_echo "636. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       ENVIRONMENT     DIVISION.
       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-LAY-RECORD            PIC X(66).
       01  WS-DUMMY                 PIC X(50).
       01  WS-KEYWORD               PIC X(32).
       01  WS-POINTER               PIC 99.
       PROCEDURE       DIVISION.
           MOVE
       '        10  AF-RECORD-TYPE-SEQUENCE-04     PIC   9(05) COMP-3.'
                  TO WS-LAY-RECORD.
           MOVE 1 TO WS-POINTER.
           PERFORM 0001-SUB.
           IF WS-POINTER NOT = 48
              DISPLAY "Expected 48 - Got " WS-POINTER
              END-DISPLAY
           END-IF.
           ADD 7  TO WS-POINTER
           END-ADD.
           PERFORM 0001-SUB.
           IF WS-POINTER NOT = 62
              DISPLAY "Expected 62 - Got " WS-POINTER
              END-DISPLAY
           END-IF.
           PERFORM 0001-SUB.
           IF WS-POINTER NOT = 63
              DISPLAY "Expected 63 - Got " WS-POINTER
              END-DISPLAY
           END-IF.
           STOP RUN.
       0001-SUB.
           UNSTRING WS-LAY-RECORD
                    DELIMITED
                    BY ' PIC '
                    OR ' COMP-3'
                    OR '.'
              INTO WS-DUMMY
              DELIMITER WS-KEYWORD
              POINTER WS-POINTER
           END-UNSTRING.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2601: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2601"
( $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/run_misc.at:2601"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2602: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2602"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2602"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_636
#AT_START_637
at_fn_group_banner 637 'run_misc.at:2607' \
  "UNSTRING DELIMITER IN" "                          " 4
at_xfail=no
(
  $as_echo "637. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  WK-CMD       PIC X(8) VALUE "WWADDBCC".
       01  WK-SIGNS     PIC XX   VALUE "AB".
       01  WKS REDEFINES WK-SIGNS.
           03 WK-SIGN   PIC X OCCURS 2.
       01  WK-DELIM     PIC X OCCURS 2.
       01  WK-DATA      PIC X(2) OCCURS 3.
       PROCEDURE        DIVISION.
           UNSTRING WK-CMD DELIMITED BY WK-SIGN(1) OR WK-SIGN(2)
           INTO WK-DATA(1) DELIMITER IN WK-DELIM(1)
                WK-DATA(2) DELIMITER IN WK-DELIM(2)
                WK-DATA(3)
           END-UNSTRING
           IF  WK-DATA(1)   NOT = "WW"
            OR WK-DATA(2)   NOT = "DD"
            OR WK-DATA(3)   NOT = "CC"
            OR WK-DELIM(1)  NOT = "A"
            OR WK-DELIM(2)  NOT = "B"
               DISPLAY WK-DATA(1)
                       WK-DATA(2)
                       WK-DATA(3)
                       WK-DELIM(1)
                       WK-DELIM(2)
               END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2643: \$COMPILE -ftop-level-occurs-clause=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -ftop-level-occurs-clause=ok prog.cob" "run_misc.at:2643"
( $at_check_trace; $COMPILE -ftop-level-occurs-clause=ok 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/run_misc.at:2643"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2644: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2644"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2644"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_637
#AT_START_638
at_fn_group_banner 638 'run_misc.at:2649' \
  "UNSTRING with FUNCTION / literal" "               " 4
at_xfail=no
(
  $as_echo "638. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  FILLER.
         05  TSTUNS PIC X(479).
         05  PRM    PIC X(16) OCCURS 4 TIMES.
       PROCEDURE DIVISION.
           MOVE "The,Quick,Brown,Fox" TO TSTUNS.
           UNSTRING TSTUNS DELIMITED BY ','
              INTO  PRM(1), PRM(2), PRM(3), PRM(4).
           DISPLAY "PRM(1) is " PRM(1) ":".
           DISPLAY "PRM(2) is " PRM(2) ":".
           DISPLAY "PRM(3) is " PRM(3) ":".
           DISPLAY "PRM(4) is " PRM(4) ":".
           UNSTRING FUNCTION UPPER-CASE(TSTUNS) DELIMITED BY ','
              INTO  PRM(1), PRM(2), PRM(3), PRM(4).
           DISPLAY "Now using UPPER-CASE"
           DISPLAY "PRM(1) is " PRM(1) ":".
           DISPLAY "PRM(2) is " PRM(2) ":".
           DISPLAY "PRM(3) is " PRM(3) ":".
           DISPLAY "PRM(4) is " PRM(4) ":".
           UNSTRING "Daddy,was,a,Rolling stone" DELIMITED BY ','
              INTO  PRM(1), PRM(2), PRM(3), PRM(4).
           DISPLAY "Now using Literal"
           DISPLAY "PRM(1) is " PRM(1) ":".
           DISPLAY "PRM(2) is " PRM(2) ":".
           DISPLAY "PRM(3) is " PRM(3) ":".
           DISPLAY "PRM(4) is " PRM(4) ":".
           UNSTRING FUNCTION LOWER-CASE("Daddy,was,a,Rolling stone")
                DELIMITED BY ','
              INTO  PRM(1), PRM(2), PRM(3), PRM(4).
           DISPLAY "Now using Literal + LOWER-CASE"
           DISPLAY "PRM(1) is " PRM(1) ":".
           DISPLAY "PRM(2) is " PRM(2) ":".
           DISPLAY "PRM(3) is " PRM(3) ":".
           DISPLAY "PRM(4) is " PRM(4) ":".
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2693: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2693"
( $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/run_misc.at:2693"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2694: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2694"
( $at_check_trace; $COBCRUN_DIRECT ./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 "PRM(1) is The             :
PRM(2) is Quick           :
PRM(3) is Brown           :
PRM(4) is Fox             :
Now using UPPER-CASE
PRM(1) is THE             :
PRM(2) is QUICK           :
PRM(3) is BROWN           :
PRM(4) is FOX             :
Now using Literal
PRM(1) is Daddy           :
PRM(2) is was             :
PRM(3) is a               :
PRM(4) is Rolling stone   :
Now using Literal + LOWER-CASE
PRM(1) is daddy           :
PRM(2) is was             :
PRM(3) is a               :
PRM(4) is rolling stone   :
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2694"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_638
#AT_START_639
at_fn_group_banner 639 'run_misc.at:2719' \
  "SORT: table sort" "                               " 4
at_xfail=no
(
  $as_echo "639. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G             VALUE "d4b2e1a3c5".
         02 TBL         OCCURS 5.
           03 X         PIC X.
           03 Y         PIC 9.
       PROCEDURE        DIVISION.
           SORT TBL ASCENDING KEY X.
           IF G NOT = "a3b2c5d4e1"
              DISPLAY G
              END-DISPLAY
           END-IF.
           SORT TBL DESCENDING KEY Y.
           IF G NOT = "c5d4a3b2e1"
              DISPLAY G
              END-DISPLAY
           END-IF.
           SORT TBL ASCENDING KEY TBL.
           IF G NOT = "a3b2c5d4e1"
              DISPLAY G
              END-DISPLAY
           END-IF.
           SORT TBL DESCENDING KEY.
           IF G NOT = "e1d4c5b2a3"
              DISPLAY G
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2755: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2755"
( $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/run_misc.at:2755"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2756: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2756"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:2756"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_639
#AT_START_640
at_fn_group_banner 640 'run_misc.at:2761' \
  "SORT: table sort (2)" "                           " 4
at_xfail=no
(
  $as_echo "640. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 K                 PIC 9(2).

       01 CNT1              PIC 9(9) COMP-5 VALUE 4.
       01 TAB1.
          05 ROW1 OCCURS 1 TO 4 DEPENDING CNT1
                                 DESCENDING TAB1-NR.
             10 TAB1-NR     PIC 99.

       01 TAB2.
          05 CNT2           PIC 9(9) COMP-5 VALUE 4.
          05 ROW2 OCCURS 1 TO 4 DEPENDING CNT2
                                 DESCENDING TAB2-NR.
             10 TAB2-NR PIC 99.

       01 TAB3.
          05 CNT3           PIC 9(9) COMP-5 VALUE 10.
          05 ROW3 OCCURS 1 TO 10 DEPENDING CNT3
                                  DESCENDING TAB3-NR
                                  ASCENDING TAB3-DATA.
             10 TAB3-NR     PIC 99.
             10 FILLER      PIC X(2).
             10 TAB3-DATA   PIC X(5).
             10 FILLER      PIC X(2).
             10 TAB3-DATA2  PIC X(5).


       PROCEDURE DIVISION.
       A.
           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
             MOVE K TO TAB1-NR(K), TAB2-NR(K)
           END-PERFORM

           MOVE 1 TO TAB3-NR(1).
           MOVE 1 TO TAB3-NR(8).
           MOVE 1 TO TAB3-NR(4).
           MOVE 6 TO TAB3-NR(2).
           MOVE 5 TO TAB3-NR(3).
           MOVE 5 TO TAB3-NR(9).
           MOVE 2 TO TAB3-NR(5).
           MOVE 2 TO TAB3-NR(10).
           MOVE 4 TO TAB3-NR(6).
           MOVE 3 TO TAB3-NR(7).

           MOVE "abcde" TO TAB3-DATA(1).
           MOVE "AbCde" TO TAB3-DATA(2).
           MOVE "abcde" TO TAB3-DATA(3).
           MOVE "zyx" TO TAB3-DATA(4).
           MOVE "12345" TO TAB3-DATA(5).
           MOVE "zyx" TO TAB3-DATA(6).
           MOVE "abcde" TO TAB3-DATA(7).
           MOVE "AbCde" TO TAB3-DATA(8).
           MOVE "abc" TO TAB3-DATA(9).
           MOVE "12346" TO TAB3-DATA(10).

           MOVE "day" TO TAB3-DATA2(1).
           MOVE "The" TO TAB3-DATA2(2).
           MOVE "eats" TO TAB3-DATA2(3).
           MOVE "." TO TAB3-DATA2(4).
           MOVE "mooos" TO TAB3-DATA2(5).
           MOVE "grass" TO TAB3-DATA2(6).
           MOVE "and" TO TAB3-DATA2(7).
           MOVE "whole" TO TAB3-DATA2(8).
           MOVE "cow" TO TAB3-DATA2(9).
           MOVE "the" TO TAB3-DATA2(10).

           SORT ROW1 DESCENDING TAB1-NR
           SORT ROW2 DESCENDING TAB2-NR

           DISPLAY "SINGLE TABLE" END-DISPLAY
           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
             DISPLAY  FUNCTION TRIM(TAB1-NR(K)) END-DISPLAY
           END-PERFORM

           DISPLAY "LOWER LEVEL TABLE" END-DISPLAY
           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
             DISPLAY  FUNCTION TRIM(TAB2-NR(K)) END-DISPLAY
           END-PERFORM

           SORT ROW3 DESCENDING TAB3-NR ASCENDING TAB3-DATA

           DISPLAY "MULTY KEY SORT" END-DISPLAY
           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 10
             DISPLAY  FUNCTION TRIM(ROW3(K))
             END-DISPLAY
           END-PERFORM

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2859: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2859"
( $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/run_misc.at:2859"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2860: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2860"
( $at_check_trace; $COBCRUN_DIRECT ./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 "SINGLE TABLE
04
03
02
01
LOWER LEVEL TABLE
04
03
02
01
MULTY KEY SORT
06  AbCde  The
05  abc    cow
05  abcde  eats
04  zyx    grass
03  abcde  and
02  12345  mooos
02  12346  the
01  AbCde  whole
01  abcde  day
01  zyx    .
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2860"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_640
#AT_START_641
at_fn_group_banner 641 'run_misc.at:2886' \
  "SORT: table sort (3)" "                           " 4
at_xfail=no
(
  $as_echo "641. $at_setup_line: testing $at_desc ..."
  $at_traceon




cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 K                 PIC 9(2).

       01 CNT1              PIC 9(9) COMP-5 VALUE 4.
       01 TAB1.
          05 ROW1 OCCURS 1 TO 4 DEPENDING CNT1
                                  DESCENDING TAB1-NR.
             10 TAB1-NR     PIC 99.
             10 TAB-DATA    PIC X(5).
       01 TAB2.
          05 ROW2 OCCURS 1 TO 4 DEPENDING CNT1
                                  ASCENDING ROW2.
             10 TAB2-NR     PIC 99.
             10 TAB2-DATA   PIC X(5).

       PROCEDURE DIVISION.
       A.
           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
             MOVE K     TO TAB1-NR (K)
             MOVE 'BLA' TO TAB-DATA(K)
           END-PERFORM

           SORT ROW1

           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
             DISPLAY TAB1-NR(K) NO ADVANCING END-DISPLAY
           END-PERFORM

           MOVE TAB1 TO TAB2
           SORT ROW2

           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
             DISPLAY TAB2-NR(K) NO ADVANCING END-DISPLAY
           END-PERFORM

           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog2.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 K                 PIC 9(2).

       01 CNT1              PIC 9(9) COMP-5 VALUE 4.
       01 TAB1.
          05 ROW1 OCCURS 5        DESCENDING TAB1-NR.
             10 TAB1-NR     PIC 99 VALUE ZERO.
             10 TAB-DATA    PIC X(5).
       01 TAB2.
          05 ROW1 OCCURS 1 TO 4 DEPENDING CNT1
                                  DESCENDING TAB1-NR.
             10 TAB1-NR     PIC 99.
             10 TAB-DATA    PIC X(5).

       PROCEDURE DIVISION.
       A.
           DISPLAY TAB1-NR OF TAB1 (2) NO ADVANCING END-DISPLAY

           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
             MOVE K     TO TAB1-NR  OF TAB2(K)
             MOVE 'BLA' TO TAB-DATA OF TAB2(K)
           END-PERFORM

           SORT ROW1 OF TAB2.

           PERFORM VARYING K FROM 1 BY 1 UNTIL K > 4
             DISPLAY TAB1-NR OF TAB2(K) NO ADVANCING END-DISPLAY
           END-PERFORM

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:2970: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:2970"
( $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/run_misc.at:2970"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2971: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:2971"
( $at_check_trace; $COBCRUN_DIRECT ./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 "0403020101020304" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2971"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:2973: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_misc.at:2973"
( $at_check_trace; $COMPILE prog2.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/run_misc.at:2973"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:2974: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:2974"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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 "0004030201" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:2974"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_641
#AT_START_642
at_fn_group_banner 642 'run_misc.at:2979' \
  "SORT: EBCDIC table sort" "                        " 4
at_xfail=no
(
  $as_echo "642. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           ALPHABET ALPHA IS EBCDIC.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 Z  PIC X(10)  VALUE "d4b2e1a3c5".
       01 G.
         02 TBL         OCCURS 10.
           03 X         PIC X.
       PROCEDURE        DIVISION.
           MOVE Z TO G.
           SORT TBL ASCENDING KEY X SEQUENCE ALPHA.
           IF G NOT = "abcde12345"
              DISPLAY G
              END-DISPLAY
           END-IF.
           MOVE Z TO G.
           SORT TBL DESCENDING KEY X SEQUENCE ALPHA.
           IF G NOT = "54321edcba"
              DISPLAY G
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
           OBJECT-COMPUTER.
             x86 PROGRAM COLLATING SEQUENCE IS EBCDIC-CODE.
       SPECIAL-NAMES.
           ALPHABET EBCDIC-CODE IS EBCDIC.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 Z  PIC X(10)  VALUE "d4b2e1a3c5".
       01 G.
         02 TBL         OCCURS 10.
           03 X         PIC X.
       PROCEDURE        DIVISION.
           MOVE Z TO G.
           SORT TBL ASCENDING KEY X.
           IF G NOT = "abcde12345"
              DISPLAY G.
           MOVE Z TO G.
           SORT TBL DESCENDING KEY X.
           IF G NOT = "54321edcba"
              DISPLAY G.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3038: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3038"
( $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/run_misc.at:3038"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3039: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3039"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3039"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3040: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_misc.at:3040"
( $at_check_trace; $COMPILE prog2.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/run_misc.at:3040"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3041: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:3041"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3041"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_642
#AT_START_643
at_fn_group_banner 643 'run_misc.at:3046' \
  "PIC ZZZ-, ZZZ+" "                                 " 4
at_xfail=no
(
  $as_echo "643. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X-ZZZN                    PIC ZZZ-.
       01  XZN-RED REDEFINES X-ZZZN  PIC X(4).
       01  X-ZZZP                    PIC ZZZ+.
       01  XZP-RED REDEFINES X-ZZZP  PIC X(4).
       PROCEDURE        DIVISION.
           MOVE -1 TO X-ZZZN.
           IF XZN-RED NOT = "  1-"
              DISPLAY "(" X-ZZZN ")"
              END-DISPLAY
           END-IF.
           MOVE  0 TO X-ZZZN.
           IF XZN-RED NOT = "    "
              DISPLAY "(" X-ZZZN ")"
              END-DISPLAY
           END-IF.
           MOVE +1 TO X-ZZZN.
           IF XZN-RED NOT = "  1 "
              DISPLAY "(" X-ZZZN ")"
              END-DISPLAY
           END-IF.

           MOVE -1 TO X-ZZZP.
           IF XZP-RED NOT = "  1-"
              DISPLAY "(" X-ZZZP ")"
              END-DISPLAY
           END-IF.
           MOVE  0 TO X-ZZZP.
           IF XZP-RED NOT = "    "
              DISPLAY "(" X-ZZZP ")"
              END-DISPLAY
           END-IF.
           MOVE +1 TO X-ZZZP.
           IF XZP-RED NOT = "  1+"
              DISPLAY "(" X-ZZZP ")"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3093: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3093"
( $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/run_misc.at:3093"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3094: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3094"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3094"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_643
#AT_START_644
at_fn_group_banner 644 'run_misc.at:3099' \
  "PERFORM type OSVS" "                              " 4
at_xfail=no
(
  $as_echo "644. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MYOCC        PIC 9(8) COMP VALUE 0.
       PROCEDURE        DIVISION.
       ASTART SECTION.
       A01.
           PERFORM BTEST.
           IF MYOCC NOT = 2
              DISPLAY MYOCC
              END-DISPLAY
           END-IF.
           STOP RUN.
       BTEST SECTION.
       B01.
           PERFORM B02 VARYING MYOCC FROM 1 BY 1
                   UNTIL MYOCC > 5.
           GO TO B99.
       B02.
           IF MYOCC > 1
              GO TO B99
           END-IF.
       B99.
           EXIT.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3130: \$COMPILE -fperform-osvs prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fperform-osvs prog.cob" "run_misc.at:3130"
( $at_check_trace; $COMPILE -fperform-osvs 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/run_misc.at:3130"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3131: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3131"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3131"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_644
#AT_START_645
at_fn_group_banner 645 'run_misc.at:3136' \
  "Sticky LINKAGE" "                                 " 4
at_xfail=no
(
  $as_echo "645. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 P1            PIC X.
       01 P2            PIC X(6).
       01 P3            PIC X(6).
       PROCEDURE        DIVISION USING P1 P2.
           IF P1 = "A"
              SET ADDRESS OF P3 TO ADDRESS OF P2
           ELSE
              IF P3 NOT = "OKOKOK"
                 DISPLAY P3
                 END-DISPLAY
              END-IF
           END-IF.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 P1            PIC X    VALUE "A".
       01 P2            PIC X(6) VALUE "NOT OK".
       PROCEDURE        DIVISION.
           CALL "callee" USING P1 P2
           END-CALL.
           MOVE "B"      TO P1.
           MOVE "OKOKOK" TO P2.
           CALL "callee" USING P1
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3176: \$COMPILE_MODULE -fsticky-linkage callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE -fsticky-linkage callee.cob" "run_misc.at:3176"
( $at_check_trace; $COMPILE_MODULE -fsticky-linkage 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/run_misc.at:3176"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3177: \$COMPILE -fsticky-linkage caller.cob"
at_fn_check_prepare_dynamic "$COMPILE -fsticky-linkage caller.cob" "run_misc.at:3177"
( $at_check_trace; $COMPILE -fsticky-linkage 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/run_misc.at:3177"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3178: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3178"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3178"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_645
#AT_START_646
at_fn_group_banner 646 'run_misc.at:3183' \
  "COB_PRE_LOAD" "                                   " 4
at_xfail=no
(
  $as_echo "646. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2.
       PROCEDURE        DIVISION.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL "callee2"
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3202: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:3202"
( $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/run_misc.at:3202"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3203: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:3203"
( $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/run_misc.at:3203"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3204: COB_PRE_LOAD=callee \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "COB_PRE_LOAD=callee $COBCRUN_DIRECT ./caller" "run_misc.at:3204"
( $at_check_trace; COB_PRE_LOAD=callee $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3204"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_646
#AT_START_647
at_fn_group_banner 647 'run_misc.at:3209' \
  "COB_PRE_LOAD with entry points" "                 " 4
at_xfail=no
(
  $as_echo "647. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.

        DATA DIVISION.
        WORKING-STORAGE SECTION.

        01 VAR1 PIC X(5) VALUE '12abc'.
        01 VAR2 PIC X(2) VALUE '11'.

        PROCEDURE DIVISION.

        ENTRY 'ent1'.
        DISPLAY VAR1 END-DISPLAY
        GOBACK.

        ENTRY 'ent2'.
        DISPLAY VAR2 END-DISPLAY
        GOBACK.
_ATEOF


cat >prog1.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog1.

        DATA DIVISION.
        WORKING-STORAGE SECTION.

        01 VAR2 PIC X(2) VALUE '55'.
        01 VAR3 PIC X(5) VALUE 'xxxxx'.

        PROCEDURE DIVISION.

        ENTRY 'ent2'.
        DISPLAY VAR2 END-DISPLAY
        GOBACK.

        ENTRY 'ent3'.
        DISPLAY VAR3 END-DISPLAY
        GOBACK.
_ATEOF


cat >main-prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. main-prog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        PROCEDURE DIVISION.

        CALL 'ent1' END-CALL
        CALL 'ent2' END-CALL
        CALL 'ent3' END-CALL

        STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3268: \$COMPILE_MODULE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE prog.cob" "run_misc.at:3268"
( $at_check_trace; $COMPILE_MODULE 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/run_misc.at:3268"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3269: \$COMPILE_MODULE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE prog1.cob" "run_misc.at:3269"
( $at_check_trace; $COMPILE_MODULE prog1.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/run_misc.at:3269"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3270: \$COMPILE main-prog.cob"
at_fn_check_prepare_dynamic "$COMPILE main-prog.cob" "run_misc.at:3270"
( $at_check_trace; $COMPILE main-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/run_misc.at:3270"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3271: COB_PRE_LOAD=\"prog\"\$PATHSEP\"prog1\" \$COBCRUN_DIRECT ./main-prog"
at_fn_check_prepare_dynamic "COB_PRE_LOAD=\"prog\"$PATHSEP\"prog1\" $COBCRUN_DIRECT ./main-prog" "run_misc.at:3271"
( $at_check_trace; COB_PRE_LOAD="prog"$PATHSEP"prog1" $COBCRUN_DIRECT ./main-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 "12abc
11
xxxxx
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3271"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_647
#AT_START_648
at_fn_group_banner 648 'run_misc.at:3280' \
  "Lookup ENTRY from main executable" "              " 4
at_xfail=no
(
  $as_echo "648. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 PROGRAM-LINK         USAGE PROGRAM-POINTER.

       PROCEDURE DIVISION.
       SET PROGRAM-LINK TO ENTRY "subprogram"
       IF PROGRAM-LINK EQUAL NULL THEN
           DISPLAY "error: no subprogram linkage" UPON SYSERR
           END-DISPLAY
       ELSE
           CALL PROGRAM-LINK
               ON EXCEPTION
                   DISPLAY "hard error: unable to invoke subprogram"
                      UPON SYSERR
                   END-DISPLAY
           END-CALL
           DISPLAY RETURN-CODE WITH NO ADVANCING
           END-DISPLAY
       END-IF
       GOBACK.

       ENTRY "subprogram".
           DISPLAY "subprogram" WITH NO ADVANCING
           END-DISPLAY
           SET RETURN-CODE TO 42
       .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3315: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3315"
( $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/run_misc.at:3315"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3316: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3316"
( $at_check_trace; $COBCRUN_DIRECT ./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 "subprogram+000000042" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 42 $at_status "$at_srcdir/run_misc.at:3316"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_648
#AT_START_649
at_fn_group_banner 649 'run_misc.at:3321' \
  "COB_LOAD_CASE=UPPER test" "                       " 4
at_xfail=no
(
  $as_echo "649. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >CALLEE.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       PROCEDURE        DIVISION.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL "callee"
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3340: \$COMPILE_MODULE CALLEE.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE CALLEE.cob" "run_misc.at:3340"
( $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/run_misc.at:3340"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3341: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:3341"
( $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/run_misc.at:3341"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3342: COB_LOAD_CASE=UPPER ./caller"
at_fn_check_prepare_trace "run_misc.at:3342"
( $at_check_trace; 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=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3342"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_649
#AT_START_650
at_fn_group_banner 650 'run_misc.at:3347' \
  "ALLOCATE / FREE with BASED item (1)" "            " 4
at_xfail=no
(
  $as_echo "650. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01  MYFLD        PIC X(6) BASED VALUE "ABCDEF".
       PROCEDURE        DIVISION.
       ASTART SECTION.
       A01.
           ALLOCATE MYFLD INITIALIZED.
           IF MYFLD NOT = "ABCDEF"
              DISPLAY MYFLD
              END-DISPLAY
           END-IF.
           FREE ADDRESS OF MYFLD.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3368: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3368"
( $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/run_misc.at:3368"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3369: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3369"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3369"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_650
#AT_START_651
at_fn_group_banner 651 'run_misc.at:3374' \
  "ALLOCATE / FREE with BASED item (2)" "            " 4
at_xfail=no
(
  $as_echo "651. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 MYFLD         BASED.
             03 MYFLDX  PIC X.
             03 MYFLD9  PIC 9.
       PROCEDURE        DIVISION.
           IF ADDRESS OF MYFLD NOT = NULL
              DISPLAY "BASED ITEM WITH ADDRESS ON START"
              END-DISPLAY
           END-IF.
           FREE MYFLD.
           ALLOCATE MYFLD.
           IF ADDRESS OF MYFLD = NULL
              DISPLAY "BASED ITEM WITHOUT ADDRESS AFTER ALLOCATE"
              END-DISPLAY
           END-IF.
           INITIALIZE MYFLD.
           IF MYFLD NOT = " 0"
              DISPLAY "BASED ITEM INITIALIZED WRONG: "
                 WITH NO ADVANCING
              END-DISPLAY
              DISPLAY MYFLD
              END-DISPLAY
           END-IF.

           FREE ADDRESS OF MYFLD.
           IF ADDRESS OF MYFLD NOT = NULL
              DISPLAY "BASED ITEM WITH ADDRESS AFTER FREE"
              END-DISPLAY
           END-IF.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3412: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3412"
( $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/run_misc.at:3412"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3413: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3413"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3413"
$at_failed && at_fn_log_failure
$at_traceon; }

# Run both executable and module as we have a different code generation here
{ set +x
$as_echo "$at_srcdir/run_misc.at:3415: \$COMPILE_MODULE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE prog.cob" "run_misc.at:3415"
( $at_check_trace; $COMPILE_MODULE 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/run_misc.at:3415"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3416: \$COBCRUN prog"
at_fn_check_prepare_dynamic "$COBCRUN prog" "run_misc.at:3416"
( $at_check_trace; $COBCRUN 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/run_misc.at:3416"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_651
#AT_START_652
at_fn_group_banner 652 'run_misc.at:3421' \
  "ALLOCATE CHARACTERS INITIALIZED TO" "             " 4
at_xfail=no
(
  $as_echo "652. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MYPTR        USAGE POINTER.
       LINKAGE          SECTION.
       01  MYFLD        PIC X(4).
       PROCEDURE        DIVISION.
       ASTART SECTION.
       A01.
           ALLOCATE 4 CHARACTERS
                    INITIALIZED TO "ABCD"
                    RETURNING MYPTR.
           SET ADDRESS OF MYFLD TO MYPTR.
           IF MYFLD NOT = "ABCD"
              DISPLAY MYFLD
              END-DISPLAY
           END-IF.
           FREE MYPTR.
           ALLOCATE 4 CHARACTERS
                    INITIALIZED TO ALL "Z"
                    RETURNING MYPTR.
           SET ADDRESS OF MYFLD TO MYPTR.
           IF MYFLD NOT = "ZZZZ"
              DISPLAY MYFLD
              END-DISPLAY
           END-IF.
           FREE MYPTR.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3456: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:3456"
( $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/run_misc.at:3456"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3457: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3457"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3457"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_652
#AT_START_653
at_fn_group_banner 653 'run_misc.at:3462' \
  "Initialized value with defaultbyte" "             " 4
at_xfail=no
(
  $as_echo "653. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MYFLD        PIC X(6).
       PROCEDURE        DIVISION.
       ASTART SECTION.
       A01.
           IF MYFLD NOT = "AAAAAA"
              DISPLAY MYFLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3481: \$COMPILE -fdefaultbyte=A prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdefaultbyte=A prog.cob" "run_misc.at:3481"
( $at_check_trace; $COMPILE -fdefaultbyte=A 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/run_misc.at:3481"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3482: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3482"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3482"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_653
#AT_START_654
at_fn_group_banner 654 'run_misc.at:3487' \
  "CALL with OMITTED parameter" "                    " 4
at_xfail=no
(
  $as_echo "654. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 P1            PIC X.
       01 P2            PIC X(6).
       PROCEDURE        DIVISION USING P1 OPTIONAL P2.
           IF P2 NOT OMITTED
              DISPLAY P2
              END-DISPLAY
           END-IF.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 P1            PIC X    VALUE "A".
       PROCEDURE        DIVISION.
           CALL "callee" USING P1
           END-CALL.
           CALL "callee" USING P1 OMITTED
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3519: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:3519"
( $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/run_misc.at:3519"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3520: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:3520"
( $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/run_misc.at:3520"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3521: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3521"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3521"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_654
#AT_START_655
at_fn_group_banner 655 'run_misc.at:3526' \
  "CALL in from C, cob_call_params explicitly set" " " 4
at_xfail=no
(
  $as_echo "655. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 P1            PIC X.
       01 P2            PIC X(6).
       PROCEDURE        DIVISION USING P1 OPTIONAL P2.
           IF P2 NOT OMITTED
              DISPLAY 'UNEXPECTED P2: ' P2
              END-DISPLAY
           END-IF
           DISPLAY 'P1: ' P1 WITH NO ADVANCING
           END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


cat >caller.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

int callee (char *, char *);

#ifndef NULL
#define NULL (void*)0
#endif

int
main (int argc, char **argv)
{
   cob_global *cobol_global;
   /* for storing COBOL return code */
   int cob_ret;

   /* initialize parameters */
   char *p1 = "A";

   /* initialize the COBOL run-time library */
   cob_init(argc, argv);

   /* setup for COBOL parameter handling */
   cobol_global = cob_get_global_ptr ();
   cobol_global->cob_call_params = 1;

   /* call COBOL program */
   cob_ret = callee (p1, NULL);

   /* Clean up and terminate - This does not return */
   cob_stop_run (cob_ret);
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3581: \$COMPILE -o caller caller.c callee.cob"
at_fn_check_prepare_dynamic "$COMPILE -o caller caller.c callee.cob" "run_misc.at:3581"
( $at_check_trace; $COMPILE -o caller caller.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/run_misc.at:3581"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3582: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3582"
( $at_check_trace; $COBCRUN_DIRECT ./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 "P1: A" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:3582"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_655
#AT_START_656
at_fn_group_banner 656 'run_misc.at:3587' \
  "CALL in from C, cob_call_params unknown" "        " 4
at_xfail=no
(
  $as_echo "656. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 P1            PIC X.
       01 P2            PIC X(6).
       PROCEDURE        DIVISION USING P1 P2.
           IF P1 NOT EQUAL "A"
              DISPLAY P1
              END-DISPLAY
           END-IF.
           IF P2 NOT EQUAL "FROM C"
              DISPLAY P2
              END-DISPLAY
           ELSE
              DISPLAY "OK" WITH NO ADVANCING
              END-DISPLAY
           END-IF.
           EXIT PROGRAM.
_ATEOF


cat >caller.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

int callee (char *, char *);

int
main (int argc, char **argv)
{
   /* for storing COBOL return code */
   int cob_ret;

   /* initialize parameters */
   char *p1 = "A";
   char *p2 = "FROM C";

   /* initialize the COBOL run-time library */
   cob_init (argc, argv);

   /* call COBOL program */
   cob_ret = callee (p1, p2);

   /* Clean up and terminate - This does not return */
   cob_stop_run (cob_ret);
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3639: \$COMPILE -o caller caller.c callee.cob"
at_fn_check_prepare_dynamic "$COMPILE -o caller caller.c callee.cob" "run_misc.at:3639"
( $at_check_trace; $COMPILE -o caller caller.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/run_misc.at:3639"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3640: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3640"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3640"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_656
#AT_START_657
at_fn_group_banner 657 'run_misc.at:3645' \
  "CALL C with callback, PROCEDURE DIVISION EXTERN" "" 4
at_xfail=no
(
  $as_echo "657. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 CB            USAGE PROGRAM-POINTER.
       PROCEDURE        DIVISION.
           SET CB TO ENTRY "callback"
           CALL STATIC "cprog" USING BY VALUE CB
           END-CALL
           EXIT PROGRAM.
       END PROGRAM prog.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callback.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CALL-CONVENTION 0 IS EXTERN.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 P1            USAGE POINTER.
       01 P2            USAGE BINARY-LONG.
       01 P3            PIC X(8).
       PROCEDURE        DIVISION EXTERN USING
                        BY VALUE P1 P2 BY REFERENCE P3.
           IF P1 NOT EQUAL ADDRESS OF P3
              DISPLAY P1
              END-DISPLAY
           END-IF
           IF P2 NOT EQUAL 42
              DISPLAY P2
              END-DISPLAY
           END-IF
           IF P3 NOT EQUAL "CALLBACK"
              DISPLAY P3
              END-DISPLAY
           END-IF
           EXIT PROGRAM.
_ATEOF


cat >cprog.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
cprog (void *cb)
{
   char *p1;
   int  p2 = 42;
   char *p3 = "CALLBACK";

   p1 = p3;
   ((int (*)(char *, int, char *))cb)(p1, p2, p3);
   return 0;
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3706: \$COMPILE -Wno-unfinished -o prog prog.cob cprog.c"
at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished -o prog prog.cob cprog.c" "run_misc.at:3706"
( $at_check_trace; $COMPILE -Wno-unfinished -o prog prog.cob cprog.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/run_misc.at:3706"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3707: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3707"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3707"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_657
#AT_START_658
at_fn_group_banner 658 'run_misc.at:3712' \
  "CALL C with callback, ENTRY-CONVENTION EXTERN" "  " 4
at_xfail=no
(
  $as_echo "658. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       OPTIONS.
           ENTRY-CONVENTION COBOL.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 CB            USAGE PROGRAM-POINTER.
       PROCEDURE        DIVISION.
           SET CB TO ENTRY "callback"
           CALL STATIC "cprog" USING BY VALUE CB
           END-CALL
           EXIT PROGRAM.
       END PROGRAM prog.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callback.
       OPTIONS.
           ENTRY-CONVENTION EXTERN.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 P1            USAGE POINTER.
       01 P2            USAGE BINARY-LONG.
       01 P3            PIC X(8).
       PROCEDURE        DIVISION USING
                        BY VALUE P1 P2 BY REFERENCE P3.
           IF P1 NOT EQUAL ADDRESS OF P3
              DISPLAY P1
              END-DISPLAY
           END-IF
           IF P2 NOT EQUAL 42
              DISPLAY P2
              END-DISPLAY
           END-IF
           IF P3 NOT EQUAL "CALLBACK"
              DISPLAY P3
              END-DISPLAY
           END-IF
           EXIT PROGRAM.
_ATEOF


cat >cprog.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
cprog (void *cb)
{
   char *p1;
   int  p2 = 42;
   char *p3 = "CALLBACK";

   p1 = p3;
   ((int (*)(char *, int, char *))cb)(p1, p2, p3);
   return 0;
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3773: \$COMPILE -Wno-unfinished -o prog prog.cob cprog.c"
at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished -o prog prog.cob cprog.c" "run_misc.at:3773"
( $at_check_trace; $COMPILE -Wno-unfinished -o prog prog.cob cprog.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/run_misc.at:3773"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3774: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3774"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3774"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 CB            USAGE PROGRAM-POINTER.
       PROCEDURE        DIVISION.
           SET CB TO ENTRY "callback"
           CALL STATIC "cprog" USING BY VALUE CB
           END-CALL
           EXIT PROGRAM.
       END PROGRAM prog.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callback.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 P1            USAGE POINTER.
       01 P2            USAGE BINARY-LONG.
       01 P3            PIC X(8).
       PROCEDURE        DIVISION WITH C LINKAGE
                        USING BY VALUE P1 P2 BY REFERENCE P3.
           IF P1 NOT EQUAL ADDRESS OF P3
              DISPLAY P1
              END-DISPLAY
           END-IF
           IF P2 NOT EQUAL 42
              DISPLAY P2
              END-DISPLAY
           END-IF
           IF P3 NOT EQUAL "CALLBACK"
              DISPLAY P3
              END-DISPLAY
           END-IF
           EXIT PROGRAM.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 CB            USAGE PROGRAM-POINTER.
       PROCEDURE        DIVISION.
           SET CB TO ENTRY "callback"
           CALL STATIC "cprog" USING BY VALUE CB
           END-CALL
           EXIT PROGRAM.
       END PROGRAM prog.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callback.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CALL-CONVENTION 0 IS EXTERN.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 P1            USAGE POINTER.
       01 P2            USAGE BINARY-LONG.
       01 P3            PIC X(8).
       PROCEDURE        DIVISION EXTERN
                        USING BY VALUE P1 P2 BY REFERENCE P3.
           IF P1 NOT EQUAL ADDRESS OF P3
              DISPLAY P1
              END-DISPLAY
           END-IF
           IF P2 NOT EQUAL 42
              DISPLAY P2
              END-DISPLAY
           END-IF
           IF P3 NOT EQUAL "CALLBACK"
              DISPLAY P3
              END-DISPLAY
           END-IF
           EXIT PROGRAM.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3854: \$COMPILE -Wno-unfinished -o prog prog2.cob cprog.c"
at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished -o prog prog2.cob cprog.c" "run_misc.at:3854"
( $at_check_trace; $COMPILE -Wno-unfinished -o prog prog2.cob cprog.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/run_misc.at:3854"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3855: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3855"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3855"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:3857: \$COMPILE -Wno-unfinished -o prog prog3.cob cprog.c"
at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished -o prog prog3.cob cprog.c" "run_misc.at:3857"
( $at_check_trace; $COMPILE -Wno-unfinished -o prog prog3.cob cprog.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/run_misc.at:3857"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3858: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:3858"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3858"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_658
#AT_START_659
at_fn_group_banner 659 'run_misc.at:3863' \
  "CALL in from C with init missing / implicit" "    " 4
at_xfail=no
(
  $as_echo "659. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 P1            PIC X.
       01 P2            PIC X(6).
       PROCEDURE        DIVISION USING P1 P2.
           IF P1 NOT EQUAL "A"
              DISPLAY P1
              END-DISPLAY
           END-IF.
           IF P2 NOT EQUAL "FROM C"
              DISPLAY P2
              END-DISPLAY
           ELSE
              DISPLAY "OK" WITH NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


cat >caller.c <<'_ATEOF'

int callee (char *, char *);

int
main (int argc, char **argv)
{
   /* initialize parameters */
   char *p1 = "A";
   char *p2 = "FROM C";

   /* call COBOL program (initialization missing)
      note: COBOL program terminates the program by STOP RUN */
   (void)callee (p1, p2);
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3904: \$COMPILE -o caller caller.c callee.cob"
at_fn_check_prepare_dynamic "$COMPILE -o caller caller.c callee.cob" "run_misc.at:3904"
( $at_check_trace; $COMPILE -o caller caller.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/run_misc.at:3904"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3905: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3905"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: error: cob_init() has not been called
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:3905"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:3909: \$COMPILE -fimplicit-init -o caller caller.c callee.cob"
at_fn_check_prepare_dynamic "$COMPILE -fimplicit-init -o caller caller.c callee.cob" "run_misc.at:3909"
( $at_check_trace; $COMPILE -fimplicit-init -o caller caller.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/run_misc.at:3909"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3910: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3910"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3910"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_659
#AT_START_660
at_fn_group_banner 660 'run_misc.at:3915' \
  "CALL STATIC C from COBOL" "                       " 4
at_xfail=no
(
  $as_echo "660. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 P1            PIC X VALUE "A".
       01 P2            PIC X(7).
       77 P2-COB        PIC X(7).
       PROCEDURE        DIVISION.
           CALL STATIC 'callee' USING P1 P2
           IF P1 NOT EQUAL "B"
              DISPLAY 'NOT A: ' P1
              END-DISPLAY
           END-IF
           UNSTRING P2 DELIMITED BY LOW-VALUE
              INTO P2-COB
           END-UNSTRING
           EVALUATE TRUE
              WHEN P2-COB NOT EQUAL "FROM C"
                 DISPLAY P2-COB '-' P2
                 END-DISPLAY
              WHEN RETURN-CODE NOT = 3
                 DISPLAY RETURN-CODE
                 END-DISPLAY
              WHEN OTHER
                 DISPLAY 'OK'  WITH NO ADVANCING
                 END-DISPLAY
                 MOVE 0  TO RETURN-CODE
           END-EVALUATE
           EXIT PROGRAM.
_ATEOF


cat >callee.c <<'_ATEOF'

#include <string.h>

int
callee (char *p1, char *p2)
{
   if (p1[0] == 'A') {
      p1[0] = 'B';
   }
   memcpy (p2, "FROM C", 6);

   return 3;
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:3965: \$COMPILE -o caller caller.cob callee.c"
at_fn_check_prepare_dynamic "$COMPILE -o caller caller.cob callee.c" "run_misc.at:3965"
( $at_check_trace; $COMPILE -o caller caller.cob callee.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/run_misc.at:3965"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:3966: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:3966"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:3966"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_660
#AT_START_661
at_fn_group_banner 661 'run_misc.at:3971' \
  "ANY LENGTH (1)" "                                 " 4
at_xfail=no
(
  $as_echo "661. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 P2            PIC 99.
       LINKAGE          SECTION.
       01 P1            PIC X ANY LENGTH.
       PROCEDURE        DIVISION USING P1.
           MOVE LENGTH OF P1 TO P2.
           IF P2 NOT = 6
              DISPLAY P2
              END-DISPLAY
           END-IF.
           IF P1 NOT = "OKOKOK"
              DISPLAY P1
              END-DISPLAY
           END-IF.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 P1            PIC X(6) VALUE "OKOKOK".
       PROCEDURE        DIVISION.
           CALL "callee" USING P1
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:4007: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:4007"
( $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/run_misc.at:4007"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4008: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:4008"
( $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/run_misc.at:4008"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4009: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:4009"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4009"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_661
#AT_START_662
at_fn_group_banner 662 'run_misc.at:4014' \
  "ANY LENGTH (2)" "                                 " 4
at_xfail=no
(
  $as_echo "662. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 P2            PIC XXX.
       LINKAGE          SECTION.
       01 P1            PIC X ANY LENGTH.
       PROCEDURE        DIVISION USING P1.
           MOVE P1 TO P2.
           IF P2 NOT = "OK "
              DISPLAY P2
              END-DISPLAY
           END-IF.
           MOVE SPACE TO P1.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 P1            PIC X(2) VALUE "OK".
       PROCEDURE        DIVISION.
           CALL "callee" USING P1
           END-CALL.
           IF P1 NOT = SPACE
              DISPLAY P1
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:4051: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:4051"
( $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/run_misc.at:4051"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4052: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:4052"
( $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/run_misc.at:4052"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4053: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:4053"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4053"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_662
#AT_START_663
at_fn_group_banner 663 'run_misc.at:4058' \
  "ANY LENGTH (3)" "                                 " 4
at_xfail=no
(
  $as_echo "663. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 str PIC X(20) VALUE ALL "X".

       PROCEDURE DIVISION.
           CALL "subprog" USING str
           .
       END PROGRAM prog.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. subprog.

       DATA DIVISION.
       LINKAGE SECTION.
       01 str PIC X ANY LENGTH.

       PROCEDURE DIVISION USING str.
           MOVE "abcd" TO str
           DISPLAY FUNCTION TRIM (str)
           MOVE "abcd" TO str (5:)
           DISPLAY FUNCTION TRIM (str)
           MOVE ALL "a" TO str
           DISPLAY FUNCTION TRIM (str)
           .
       END PROGRAM subprog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:4092: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4092"
( $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/run_misc.at:4092"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4093: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4093"
( $at_check_trace; $COBCRUN_DIRECT ./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 "abcd
abcdabcd
aaaaaaaaaaaaaaaaaaaa
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4093"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_663
#AT_START_664
at_fn_group_banner 664 'run_misc.at:4101' \
  "ANY LENGTH (4)" "                                 " 4
at_xfail=no
(
  $as_echo "664. $at_setup_line: testing $at_desc ..."
  $at_traceon



# comparision of any length was done only for first character - see bug 511

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 str PIC X(20) VALUE ALL "X".

       PROCEDURE DIVISION.
           CALL "subprog" USING str
           move '   45'   to str
           CALL "subprog" USING str
           .
       END PROGRAM prog.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. subprog.

       DATA DIVISION.
       LINKAGE SECTION.
       01 str PIC X ANY LENGTH.

       PROCEDURE DIVISION USING str.
           IF str = 'X'
             DISPLAY 'X is X'
           END-IF
           IF str = space
             DISPLAY 'X is space'
           END-IF
           .
       END PROGRAM subprog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:4139: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4139"
( $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/run_misc.at:4139"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4140: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4140"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:4140"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_664
#AT_START_665
at_fn_group_banner 665 'run_misc.at:4144' \
  "ANY LENGTH (5)" "                                 " 4
at_xfail=no
(
  $as_echo "665. $at_setup_line: testing $at_desc ..."
  $at_traceon



# any length variables resulted in SIGSEGV when module was first program called

cat >subprog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. subprog.

       DATA DIVISION.
       LINKAGE SECTION.
       01 str1 PIC X ANY LENGTH.
       01 str2 PIC X ANY LENGTH.

       PROCEDURE DIVISION USING str1 str2.
           DISPLAY 'IN' WITH NO ADVANCING
           .
       END PROGRAM subprog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:4164: \$COMPILE_MODULE subprog.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE subprog.cob" "run_misc.at:4164"
( $at_check_trace; $COMPILE_MODULE subprog.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/run_misc.at:4164"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4165: \$COBCRUN subprog some test stuff"
at_fn_check_prepare_dynamic "$COBCRUN subprog some test stuff" "run_misc.at:4165"
( $at_check_trace; $COBCRUN subprog some test stuff
) >>"$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 "IN" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:4165"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_665
#AT_START_666
at_fn_group_banner 666 'run_misc.at:4169' \
  "access to BASED item without allocation" "        " 4
at_xfail=no
(
  $as_echo "666. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) BASED.
       PROCEDURE        DIVISION.
           DISPLAY X NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             BASED.
          05 Y          PIC X(4).
       PROCEDURE        DIVISION.
           DISPLAY Y NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:4197: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4197"
( $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/run_misc.at:4197"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4198: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_misc.at:4198"
( $at_check_trace; $COMPILE prog2.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/run_misc.at:4198"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:4200: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4200"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:8: error: BASED/LINKAGE item 'X' has NULL address
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:4200"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4203: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:4203"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:9: error: BASED/LINKAGE item 'X' (accessed by 'Y') has NULL address
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:4203"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_666
#AT_START_667
at_fn_group_banner 667 'run_misc.at:4210' \
  "access to OPTIONAL LINKAGE item not passed" "     " 4
at_xfail=no
(
  $as_echo "667. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4) VALUE '9876'.
       PROCEDURE        DIVISION.
           CALL 'callee' USING X
           END-CALL
           CALL 'callee' USING OMITTED
           END-CALL
           STOP RUN.
_ATEOF


cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 X.
          05 Y          PIC X(4).
       PROCEDURE        DIVISION USING OPTIONAL X.
           IF Y NOT = '9876'
              DISPLAY Y NO ADVANCING
              END-DISPLAY
           END-IF.
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:4242: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:4242"
( $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/run_misc.at:4242"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4243: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:4243"
( $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/run_misc.at:4243"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:4245: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:4245"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: callee.cob:9: error: LINKAGE item 'X' (accessed by 'Y') not passed by caller
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:4245"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_667
#AT_START_668
at_fn_group_banner 668 'run_misc.at:4252' \
  "STOP RUN WITH NORMAL STATUS" "                    " 4
at_xfail=no
(
  $as_echo "668. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN WITH NORMAL STATUS.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:4264: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4264"
( $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/run_misc.at:4264"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4265: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4265"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:4265"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_668
#AT_START_669
at_fn_group_banner 669 'run_misc.at:4270' \
  "STOP RUN WITH ERROR STATUS" "                     " 4
at_xfail=no
(
  $as_echo "669. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN WITH ERROR STATUS.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:4282: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4282"
( $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/run_misc.at:4282"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4283: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4283"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:4283"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_669
#AT_START_670
at_fn_group_banner 670 'run_misc.at:4288' \
  "SYMBOLIC clause" "                                " 4
at_xfail=no
(
  $as_echo "670. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           ALPHABET A-EBC IS EBCDIC
           ALPHABET A-ASC IS ASCII
           SYMBOLIC Z-EBC IS 241 IN A-EBC
           SYMBOLIC Z-ASC IS  49 IN A-ASC
           .
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z            PIC X.
       PROCEDURE        DIVISION.
           MOVE Z-ASC   TO Z.
           IF Z NOT = "0"
              DISPLAY Z
              END-DISPLAY
           END-IF.
           MOVE Z-EBC   TO Z.
           IF Z NOT = "0"
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:4319: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4319"
( $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/run_misc.at:4319"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4320: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4320"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:4320"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_670
#AT_START_671
at_fn_group_banner 671 'run_misc.at:4325' \
  "OCCURS clause with 1 entry" "                     " 4
at_xfail=no
(
  $as_echo "671. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  D1.
           03  FILLER   OCCURS 1.
               05 D1-ENTRY   PIC X(03) value '123'.
       01  D2.
           03  D2-ENTRY   PIC X(03)  value 'ABC'  OCCURS 1.
       01  D1TOR.
           03  FILLER   PIC X(03) value '456'.
       01  D1-R         REDEFINES D1TOR.
           03  FILLER   OCCURS 1.
               05 D1-R-ENTRY   PIC X(03).
       01  D2TOR.
           03  FILLER   PIC X(03) value 'DEF'.
       01  D2-R         REDEFINES D2TOR.
           03  D2-R-ENTRY   PIC X(03)   OCCURS 1.

       PROCEDURE        DIVISION.
           IF D1-ENTRY (1) NOT = "123"
              DISPLAY D1-ENTRY (1)
              END-DISPLAY
           END-IF.
           IF D2-ENTRY (1) NOT = "ABC"
              DISPLAY D2-ENTRY (1)
              END-DISPLAY
           END-IF.
           IF D1-R-ENTRY (1) NOT = "456"
              DISPLAY D1-R-ENTRY (1)
              END-DISPLAY
           END-IF.
           IF D2-R-ENTRY (1) NOT = "DEF"
              DISPLAY D2-R-ENTRY (1)
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:4368: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:4368"
( $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/run_misc.at:4368"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:4369: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:4369"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:4369"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_671
#AT_START_672
at_fn_group_banner 672 'run_misc.at:4374' \
  "Computing of different USAGEs w/o decimal point" "" 4
at_xfail=no
(
  $as_echo "672. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. 'prog'.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.

      *
       77  BCL-A           BINARY-C-LONG    VALUE 1.
       77  BCL-B           BINARY-C-LONG    VALUE 10.
       77  BCL-RES         BINARY-C-LONG.
      *
       77  BC-A            BINARY-CHAR      VALUE 1.
       77  BC-B            BINARY-CHAR      VALUE 10.
       77  BC-RES          BINARY-CHAR.
      *
       77  BD-A            BINARY-DOUBLE    VALUE 1.
       77  BD-B            BINARY-DOUBLE    VALUE 10.
       77  BD-RES          BINARY-DOUBLE.
      *
       77  BL-A            BINARY-LONG      VALUE 1.
       77  BL-B            BINARY-LONG      VALUE 10.
       77  BL-RES          BINARY-LONG.
      *
       77  C-A     PIC S99 COMP             VALUE 1.
       77  C-B     PIC S99 COMP             VALUE 10.
       77  C-RES   PIC S99 COMP.
      *
       77  C1-A            COMP-1           VALUE 1.
       77  C1-B            COMP-1           VALUE 10.
       77  C1-RES          COMP-1.
      *
       77  C2-A            COMP-2           VALUE 1.
       77  C2-B            COMP-2           VALUE 10.
       77  C2-RES          COMP-2.
      *
       77  C3-A    PIC S99 COMP-3           VALUE 1.
       77  C3-B    PIC S99 COMP-3           VALUE 10.
       77  C3-RES  PIC S99 COMP-3.
      *
       77  C5-A    PIC S99 COMP-5           VALUE 1.
       77  C5-B    PIC S99 COMP-5           VALUE 10.
       77  C5-RES  PIC S99 COMP-5.
      *
       77  C6-A    PIC  99 COMP-6           VALUE 1.
       77  C6-B    PIC  99 COMP-6           VALUE 10.
       77  C6-RES  PIC  99 COMP-6.
      *
       77  CN9-A   PIC  99 COMP-N           VALUE 1.
       77  CN9-B   PIC  99 COMP-N           VALUE 10.
       77  CN9-RES PIC  99 COMP-N.
      *
       77  CNX-A   PIC  X  COMP-N           VALUE 1.
       77  CNX-B   PIC  X  COMP-N           VALUE 10.
       77  CNX-RES PIC  X  COMP-N.
      *
       77  CX9-A   PIC  99 COMP-X           VALUE 1.
       77  CX9-B   PIC  99 COMP-X           VALUE 10.
       77  CX9-RES PIC  99 COMP-X.
      *
       77  CXX-A   PIC  X  COMP-X           VALUE 1.
       77  CXX-B   PIC  X  COMP-X           VALUE 10.
       77  CXX-RES PIC  X  COMP-X.
      *
       77  D-A     PIC  S99                 VALUE 1.
       77  D-B     PIC  S99                 VALUE 10.
       77  D-RES   PIC  S99.
      *
       77  FD16-A          FLOAT-DECIMAL-16 VALUE 1.
       77  FD16-B          FLOAT-DECIMAL-16 VALUE 10.
       77  FD16-RES        FLOAT-DECIMAL-16.
      *
       77  FD34-A          FLOAT-DECIMAL-34 VALUE 1.
       77  FD34-B          FLOAT-DECIMAL-34 VALUE 10.
       77  FD34-RES        FLOAT-DECIMAL-34.
      *
       77  FL-A            FLOAT-LONG       VALUE 1.
       77  FL-B            FLOAT-LONG       VALUE 10.
       77  FL-RES          FLOAT-LONG.
      *
       77  FS-A            FLOAT-SHORT      VALUE 1.
       77  FS-B            FLOAT-SHORT      VALUE 10.
       77  FS-RES          FLOAT-SHORT.
      *
       PROCEDURE DIVISION.
      *
           ADD  BCL-B  TO BCL-A END-ADD.
           MOVE BCL-A  TO BCL-RES.
           IF BCL-RES NOT = 11
              DISPLAY 'ERROR BINARY-C-LONG + BINARY-C-LONG'
              END-DISPLAY
           END-IF.
           MOVE 1     TO BCL-A.
           ADD  10    TO BCL-A END-ADD.
           MOVE BCL-A  TO BCL-RES.
           IF BCL-RES NOT = 11
              DISPLAY 'ERROR BINARY-C-LONG + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO BCL-A.
           SUBTRACT BCL-B FROM BCL-A END-SUBTRACT.
           MOVE BCL-A  TO BCL-RES.
           IF BCL-RES NOT = 1
              DISPLAY 'ERROR BINARY-C-LONG - BINARY-C-LONG'
              END-DISPLAY
           END-IF.
           MOVE 11    TO BCL-A.
           SUBTRACT 10   FROM BCL-A END-SUBTRACT.
           MOVE BCL-A  TO BCL-RES.
           IF BCL-RES NOT = 1
              DISPLAY 'ERROR BINARY-C-LONG - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  BC-B  TO BC-A END-ADD.
           MOVE BC-A  TO BC-RES.
           IF BC-RES NOT = 11
              DISPLAY 'ERROR BINARY-CHAR + BINARY-CHAR'
              END-DISPLAY
           END-IF.
           MOVE 1     TO BC-A.
           ADD  10    TO BC-A END-ADD.
           MOVE BC-A  TO BC-RES.
           IF BC-RES NOT = 11
              DISPLAY 'ERROR BINARY-CHAR + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO BC-A.
           SUBTRACT BC-B FROM BC-A END-SUBTRACT.
           MOVE BC-A  TO BC-RES.
           IF BC-RES NOT = 1
              DISPLAY 'ERROR BINARY-CHAR - BINARY-CHAR'
              END-DISPLAY
           END-IF.
           MOVE 11    TO BC-A.
           SUBTRACT 10   FROM BC-A END-SUBTRACT.
           MOVE BC-A  TO BC-RES.
           IF BC-RES NOT = 1
              DISPLAY 'ERROR BINARY-CHAR - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  BD-B  TO BD-A END-ADD.
           MOVE BD-A  TO BD-RES.
           IF BD-RES NOT = 11
              DISPLAY 'ERROR BINARY-DOUBLE + BINARY-DOUBLE'
              END-DISPLAY
           END-IF.
           MOVE 1     TO BD-A.
           ADD  10    TO BD-A END-ADD.
           MOVE BD-A  TO BD-RES.
           IF BD-RES NOT = 11
              DISPLAY 'ERROR BINARY-DOUBLE + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO BD-A.
           SUBTRACT BD-B FROM BD-A END-SUBTRACT.
           MOVE BD-A  TO BD-RES.
           IF BD-RES NOT = 1
              DISPLAY 'ERROR BINARY-DOUBLE - BINARY-DOUBLE'
              END-DISPLAY
           END-IF.
           MOVE 11    TO BD-A.
           SUBTRACT 10   FROM BD-A END-SUBTRACT.
           MOVE BD-A  TO BD-RES.
           IF BD-RES NOT = 1
              DISPLAY 'ERROR BINARY-DOUBLE - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  BL-B  TO BL-A END-ADD.
           MOVE BL-A  TO BL-RES.
           IF BL-RES NOT = 11
              DISPLAY 'ERROR BINARY-LONG + BINARY-LONG'
              END-DISPLAY
           END-IF.
           MOVE 1     TO BL-A.
           ADD  10    TO BL-A END-ADD.
           MOVE BL-A  TO BL-RES.
           IF BL-RES NOT = 11
              DISPLAY 'ERROR BINARY-LONG + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO BL-A.
           SUBTRACT BL-B FROM BL-A END-SUBTRACT.
           MOVE BL-A  TO BL-RES.
           IF BL-RES NOT = 1
              DISPLAY 'ERROR BINARY-LONG - BINARY-LONG'
              END-DISPLAY
           END-IF.
           MOVE 11    TO BL-A.
           SUBTRACT 10   FROM BL-A END-SUBTRACT.
           MOVE BL-A  TO BL-RES.
           IF BL-RES NOT = 1
              DISPLAY 'ERROR BINARY-LONG - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C-B  TO C-A END-ADD.
           MOVE C-A  TO C-RES.
           IF C-RES NOT = 11
              DISPLAY 'ERROR COMP + COMP'
              END-DISPLAY
           END-IF.
           MOVE 1     TO C-A.
           ADD  10    TO C-A END-ADD.
           MOVE C-A  TO C-RES.
           IF C-RES NOT = 11
              DISPLAY 'ERROR COMP + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C-A.
           SUBTRACT C-B FROM C-A END-SUBTRACT.
           MOVE C-A  TO C-RES.
           IF C-RES NOT = 1
              DISPLAY 'ERROR COMP - COMP'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C-A.
           SUBTRACT 10   FROM C-A END-SUBTRACT.
           MOVE C-A  TO C-RES.
           IF C-RES NOT = 1
              DISPLAY 'ERROR COMP - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C1-B  TO C1-A END-ADD.
           MOVE C1-A  TO C1-RES.
           IF C1-RES NOT = 11
              DISPLAY 'ERROR COMP-1 + COMP-1'
              END-DISPLAY
           END-IF.
           MOVE 1     TO C1-A.
           ADD  10    TO C1-A END-ADD.
           MOVE C1-A  TO C1-RES.
           IF C1-RES NOT = 11
              DISPLAY 'ERROR COMP-1 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C1-A.
           SUBTRACT C1-B FROM C1-A END-SUBTRACT.
           MOVE C1-A  TO C1-RES.
           IF C1-RES NOT = 1
              DISPLAY 'ERROR COMP-1 - COMP-1'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C1-A.
           SUBTRACT 10   FROM C1-A END-SUBTRACT.
           MOVE C1-A  TO C1-RES.
           IF C1-RES NOT = 1
              DISPLAY 'ERROR COMP-1 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C2-B  TO C2-A END-ADD.
           MOVE C2-A  TO C2-RES.
           IF C2-RES NOT = 11
              DISPLAY 'ERROR COMP-2 + COMP-2'
              END-DISPLAY
           END-IF.
           MOVE 1     TO C2-A.
           ADD  10    TO C2-A END-ADD.
           MOVE C2-A  TO C2-RES.
           IF C2-RES NOT = 11
              DISPLAY 'ERROR COMP-2 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C2-A.
           SUBTRACT C2-B FROM C2-A END-SUBTRACT.
           MOVE C2-A  TO C2-RES.
           IF C2-RES NOT = 1
              DISPLAY 'ERROR COMP-2 - COMP-2'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C2-A.
           SUBTRACT 10   FROM C2-A END-SUBTRACT.
           MOVE C2-A  TO C2-RES.
           IF C2-RES NOT = 1
              DISPLAY 'ERROR COMP-2 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C3-B  TO C3-A END-ADD.
           MOVE C3-A  TO C3-RES.
           IF C3-RES NOT = 11
              DISPLAY 'ERROR COMP-3 + COMP-3'
              END-DISPLAY
           END-IF.
           MOVE 1     TO C3-A.
           ADD  10    TO C3-A END-ADD.
           MOVE C3-A  TO C3-RES.
           IF C3-RES NOT = 11
              DISPLAY 'ERROR COMP-3 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C3-A.
           SUBTRACT C3-B FROM C3-A END-SUBTRACT.
           MOVE C3-A  TO C3-RES.
           IF C3-RES NOT = 1
              DISPLAY 'ERROR COMP-3 - COMP-3'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C3-A.
           SUBTRACT 10   FROM C3-A END-SUBTRACT.
           MOVE C3-A  TO C3-RES.
           IF C3-RES NOT = 1
              DISPLAY 'ERROR COMP-3 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C5-B  TO C5-A END-ADD.
           MOVE C5-A  TO C5-RES.
           IF C5-RES NOT = 11
              DISPLAY 'ERROR COMP-5 + COMP-5'
              END-DISPLAY
           END-IF.
           MOVE 1     TO C5-A.
           ADD  10    TO C5-A END-ADD.
           MOVE C5-A  TO C5-RES.
           IF C5-RES NOT = 11
              DISPLAY 'ERROR COMP-5 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C5-A.
           SUBTRACT C5-B FROM C5-A END-SUBTRACT.
           MOVE C5-A  TO C5-RES.
           IF C5-RES NOT = 1
              DISPLAY 'ERROR COMP-5 - COMP-5'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C5-A.
           SUBTRACT 10   FROM C5-A END-SUBTRACT.
           MOVE C5-A  TO C5-RES.
           IF C5-RES NOT = 1
              DISPLAY 'ERROR COMP-5 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C6-B  TO C6-A END-ADD.
           MOVE C6-A  TO C6-RES.
           IF C6-RES NOT = 11
              DISPLAY 'ERROR COMP-6 + COMP-6'
              END-DISPLAY
           END-IF.
           MOVE 1     TO C6-A.
           ADD  10    TO C6-A END-ADD.
           MOVE C6-A  TO C6-RES.
           IF C6-RES NOT = 11
              DISPLAY 'ERROR COMP-6 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C6-A.
           SUBTRACT C6-B FROM C6-A END-SUBTRACT.
           MOVE C6-A  TO C6-RES.
           IF C6-RES NOT = 1
              DISPLAY 'ERROR COMP-6 - COMP-6'
              END-DISPLAY
           END-IF.
           MOVE 11    TO C6-A.
           SUBTRACT 10   FROM C6-A END-SUBTRACT.
           MOVE C6-A  TO C6-RES.
           IF C6-RES NOT = 1
              DISPLAY 'ERROR COMP-6 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  CN9-B  TO CN9-A END-ADD.
           MOVE CN9-A  TO CN9-RES.
           IF CN9-RES NOT = 11
              DISPLAY 'ERROR COMP-N + COMP-N'
              END-DISPLAY
           END-IF.
           MOVE 1     TO CN9-A.
           ADD  10    TO CN9-A END-ADD.
           MOVE CN9-A  TO CN9-RES.
           IF CN9-RES NOT = 11
              DISPLAY 'ERROR COMP-N + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO CN9-A.
           SUBTRACT CN9-B FROM CN9-A END-SUBTRACT.
           MOVE CN9-A  TO CN9-RES.
           IF CN9-RES NOT = 1
              DISPLAY 'ERROR COMP-N - COMP-N'
              END-DISPLAY
           END-IF.
           MOVE 11    TO CN9-A.
           SUBTRACT 10   FROM CN9-A END-SUBTRACT.
           MOVE CN9-A  TO CN9-RES.
           IF CN9-RES NOT = 1
              DISPLAY 'ERROR COMP-N - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  CNX-B  TO CNX-A END-ADD.
           MOVE CNX-A  TO CNX-RES.
           IF CNX-RES NOT = 11
              DISPLAY 'ERROR COMP-N + COMP-N'
              END-DISPLAY
           END-IF.
           MOVE 1     TO CNX-A.
           ADD  10    TO CNX-A END-ADD.
           MOVE CNX-A  TO CNX-RES.
           IF CNX-RES NOT = 11
              DISPLAY 'ERROR COMP-N + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO CNX-A.
           SUBTRACT CNX-B FROM CNX-A END-SUBTRACT.
           MOVE CNX-A  TO CNX-RES.
           IF CNX-RES NOT = 1
              DISPLAY 'ERROR COMP-N - COMP-N'
              END-DISPLAY
           END-IF.
           MOVE 11    TO CNX-A.
           SUBTRACT 10   FROM CNX-A END-SUBTRACT.
           MOVE CNX-A  TO CNX-RES.
           IF CNX-RES NOT = 1
              DISPLAY 'ERROR COMP-N - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  CX9-B  TO CX9-A END-ADD.
           MOVE CX9-A  TO CX9-RES.
           IF CX9-RES NOT = 11
              DISPLAY 'ERROR COMP-X + COMP-X'
              END-DISPLAY
           END-IF.
           MOVE 1     TO CX9-A.
           ADD  10    TO CX9-A END-ADD.
           MOVE CX9-A  TO CX9-RES.
           IF CX9-RES NOT = 11
              DISPLAY 'ERROR COMP-X + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO CX9-A.
           SUBTRACT CX9-B FROM CX9-A END-SUBTRACT.
           MOVE CX9-A  TO CX9-RES.
           IF CX9-RES NOT = 1
              DISPLAY 'ERROR COMP-X - COMP-X'
              END-DISPLAY
           END-IF.
           MOVE 11    TO CX9-A.
           SUBTRACT 10   FROM CX9-A END-SUBTRACT.
           MOVE CX9-A  TO CX9-RES.
           IF CX9-RES NOT = 1
              DISPLAY 'ERROR COMP-X - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  CXX-B  TO CXX-A END-ADD.
           MOVE CXX-A  TO CXX-RES.
           IF CXX-RES NOT = 11
              DISPLAY 'ERROR COMP-X + COMP-X'
              END-DISPLAY
           END-IF.
           MOVE 1     TO CXX-A.
           ADD  10    TO CXX-A END-ADD.
           MOVE CXX-A  TO CXX-RES.
           IF CXX-RES NOT = 11
              DISPLAY 'ERROR COMP-X + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO CXX-A.
           SUBTRACT CXX-B FROM CXX-A END-SUBTRACT.
           MOVE CXX-A  TO CXX-RES.
           IF CXX-RES NOT = 1
              DISPLAY 'ERROR COMP-X - COMP-X'
              END-DISPLAY
           END-IF.
           MOVE 11    TO CXX-A.
           SUBTRACT 10   FROM CXX-A END-SUBTRACT.
           MOVE CXX-A  TO CXX-RES.
           IF CXX-RES NOT = 1
              DISPLAY 'ERROR COMP-X - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  D-B  TO D-A END-ADD.
           MOVE D-A  TO D-RES.
           IF D-RES NOT = 11
              DISPLAY 'ERROR DISPLAY + DISPLAY'
              END-DISPLAY
           END-IF.
           MOVE 1     TO D-A.
           ADD  10    TO D-A END-ADD.
           MOVE D-A  TO D-RES.
           IF D-RES NOT = 11
              DISPLAY 'ERROR DISPLAY + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO D-A.
           SUBTRACT D-B FROM D-A END-SUBTRACT.
           MOVE D-A  TO D-RES.
           IF D-RES NOT = 1
              DISPLAY 'ERROR DISPLAY - DISPLAY'
              END-DISPLAY
           END-IF.
           MOVE 11    TO D-A.
           SUBTRACT 10   FROM D-A END-SUBTRACT.
           MOVE D-A  TO D-RES.
           IF D-RES NOT = 1
              DISPLAY 'ERROR DISPLAY - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  FD16-B  TO FD16-A END-ADD.
           MOVE FD16-A  TO FD16-RES.
           IF FD16-RES NOT = 11
              DISPLAY 'ERROR FLOAT-DECIMAL-16 + FLOAT-DECIMAL-16'
              END-DISPLAY
           END-IF.
           MOVE 1     TO FD16-A.
           ADD  10    TO FD16-A END-ADD.
           MOVE FD16-A  TO FD16-RES.
           IF FD16-RES NOT = 11
              DISPLAY 'ERROR FLOAT-DECIMAL-16 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO FD16-A.
           SUBTRACT FD16-B FROM FD16-A END-SUBTRACT.
           MOVE FD16-A  TO FD16-RES.
           IF FD16-RES NOT = 1
              DISPLAY 'ERROR FLOAT-DECIMAL-16 - FLOAT-DECIMAL-16'
              END-DISPLAY
           END-IF.
           MOVE 11    TO FD16-A.
           SUBTRACT 10   FROM FD16-A END-SUBTRACT.
           MOVE FD16-A  TO FD16-RES.
           IF FD16-RES NOT = 1
              DISPLAY 'ERROR FLOAT-DECIMAL-16 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  FD34-B  TO FD34-A END-ADD.
           MOVE FD34-A  TO FD34-RES.
           IF FD34-RES NOT = 11
              DISPLAY 'ERROR FLOAT-DECIMAL-34 + FLOAT-DECIMAL-34'
              END-DISPLAY
           END-IF.
           MOVE 1     TO FD34-A.
           ADD  10    TO FD34-A END-ADD.
           MOVE FD34-A  TO FD34-RES.
           IF FD34-RES NOT = 11
              DISPLAY 'ERROR FLOAT-DECIMAL-34 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO FD34-A.
           SUBTRACT FD34-B FROM FD34-A END-SUBTRACT.
           MOVE FD34-A  TO FD34-RES.
           IF FD34-RES NOT = 1
              DISPLAY 'ERROR FLOAT-DECIMAL-34 - FLOAT-DECIMAL-34'
              END-DISPLAY
           END-IF.
           MOVE 11    TO FD34-A.
           SUBTRACT 10   FROM FD34-A END-SUBTRACT.
           MOVE FD34-A  TO FD34-RES.
           IF FD34-RES NOT = 1
              DISPLAY 'ERROR FLOAT-DECIMAL-34 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  FL-B  TO FL-A END-ADD.
           MOVE FL-A  TO FL-RES.
           IF FL-RES NOT = 11
              DISPLAY 'ERROR FLOAT-LONG + FLOAT-LONG'
              END-DISPLAY
           END-IF.
           MOVE 1     TO FL-A.
           ADD  10    TO FL-A END-ADD.
           MOVE FL-A  TO FL-RES.
           IF FL-RES NOT = 11
              DISPLAY 'ERROR FLOAT-LONG + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO FL-A.
           SUBTRACT FL-B FROM FL-A END-SUBTRACT.
           MOVE FL-A  TO FL-RES.
           IF FL-RES NOT = 1
              DISPLAY 'ERROR FLOAT-LONG - FLOAT-LONG'
              END-DISPLAY
           END-IF.
           MOVE 11    TO FL-A.
           SUBTRACT 10   FROM FL-A END-SUBTRACT.
           MOVE FL-A  TO FL-RES.
           IF FL-RES NOT = 1
              DISPLAY 'ERROR FLOAT-LONG - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  FS-B  TO FS-A END-ADD.
           MOVE FS-A  TO FS-RES.
           IF FS-RES NOT = 11
              DISPLAY 'ERROR FLOAT-SHORT + FLOAT-SHORT'
              END-DISPLAY
           END-IF.
           MOVE 1     TO FS-A.
           ADD  10    TO FS-A END-ADD.
           MOVE FS-A  TO FS-RES.
           IF FS-RES NOT = 11
              DISPLAY 'ERROR FLOAT-SHORT + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11    TO FS-A.
           SUBTRACT FS-B FROM FS-A END-SUBTRACT.
           MOVE FS-A  TO FS-RES.
           IF FS-RES NOT = 1
              DISPLAY 'ERROR FLOAT-SHORT - FLOAT-SHORT'
              END-DISPLAY
           END-IF.
           MOVE 11    TO FS-A.
           SUBTRACT 10   FROM FS-A END-SUBTRACT.
           MOVE FS-A  TO FS-RES.
           IF FS-RES NOT = 1
              DISPLAY 'ERROR FLOAT-SHORT - NUM'
              END-DISPLAY
           END-IF.
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:5001: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:5001"
( $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/run_misc.at:5001"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:5002: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:5002"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:5002"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:5004: \$COMPILE -fnotrunc prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fnotrunc prog.cob" "run_misc.at:5004"
( $at_check_trace; $COMPILE -fnotrunc 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/run_misc.at:5004"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:5005: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:5005"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:5005"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_672
#AT_START_673
at_fn_group_banner 673 'run_misc.at:5010' \
  "Computing of different USAGEs w/- decimal point" "" 4
at_xfail=no
(
  $as_echo "673. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. 'prog'.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
      *
       77  BCL-A           BINARY-C-LONG    VALUE 1.0.
       77  BCL-B           BINARY-C-LONG    VALUE 10.0.
       77  BCL-RES         BINARY-C-LONG.
      *
       77  BC-A            BINARY-CHAR      VALUE 1.0.
       77  BC-B            BINARY-CHAR      VALUE 10.0.
       77  BC-RES          BINARY-CHAR.
      *
       77  BD-A            BINARY-DOUBLE    VALUE 1.0.
       77  BD-B            BINARY-DOUBLE    VALUE 10.0.
       77  BD-RES          BINARY-DOUBLE.
      *
       77  BL-A            BINARY-LONG      VALUE 1.0.
       77  BL-B            BINARY-LONG      VALUE 10.0.
       77  BL-RES          BINARY-LONG.
      *
       77  C-A     PIC S99 COMP             VALUE 1.0.
       77  C-B     PIC S99 COMP             VALUE 10.0.
       77  C-RES   PIC S99 COMP.
      *
       77  C1-A            COMP-1           VALUE 1.0.
       77  C1-B            COMP-1           VALUE 10.0.
       77  C1-RES          COMP-1.
      *
       77  C2-A            COMP-2           VALUE 1.0.
       77  C2-B            COMP-2           VALUE 10.0.
       77  C2-RES          COMP-2.
      *
       77  C3-A    PIC S99 COMP-3           VALUE 1.0.
       77  C3-B    PIC S99 COMP-3           VALUE 10.0.
       77  C3-RES  PIC S99 COMP-3.
      *
       77  C5-A    PIC S99 COMP-5           VALUE 1.0.
       77  C5-B    PIC S99 COMP-5           VALUE 10.0.
       77  C5-RES  PIC S99 COMP-5.
      *
       77  C6-A    PIC  99 COMP-6           VALUE 1.0.
       77  C6-B    PIC  99 COMP-6           VALUE 10.0.
       77  C6-RES  PIC  99 COMP-6.
      *
       77  CN9-A   PIC  99 COMP-N           VALUE 1.
       77  CN9-B   PIC  99 COMP-N           VALUE 10.
       77  CN9-RES PIC  99 COMP-N.
      *
       77  CNX-A   PIC  X  COMP-N           VALUE 1.
       77  CNX-B   PIC  X  COMP-N           VALUE 10.
       77  CNX-RES PIC  X  COMP-N.
      *
       77  CX9-A   PIC  99 COMP-X           VALUE 1.
       77  CX9-B   PIC  99 COMP-X           VALUE 10.
       77  CX9-RES PIC  99 COMP-X.
      *
       77  CXX-A   PIC  X  COMP-X           VALUE 1.
       77  CXX-B   PIC  X  COMP-X           VALUE 10.
       77  CXX-RES PIC  X  COMP-X.
      *
       77  D-A     PIC  S99                 VALUE 1.0.
       77  D-B     PIC  S99                 VALUE 10.0.
       77  D-RES   PIC  S99.
      *
       77  FD16-A          FLOAT-DECIMAL-16 VALUE 1.0.
       77  FD16-B          FLOAT-DECIMAL-16 VALUE 10.0.
       77  FD16-RES        FLOAT-DECIMAL-16.
      *
       77  FD34-A          FLOAT-DECIMAL-34 VALUE 1.0.
       77  FD34-B          FLOAT-DECIMAL-34 VALUE 10.0.
       77  FD34-RES        FLOAT-DECIMAL-34.
      *
       77  FL-A            FLOAT-LONG       VALUE 1.0.
       77  FL-B            FLOAT-LONG       VALUE 10.0.
       77  FL-RES          FLOAT-LONG.
      *
       77  FS-A            FLOAT-SHORT      VALUE 1.0.
       77  FS-B            FLOAT-SHORT      VALUE 10.0.
       77  FS-RES          FLOAT-SHORT.
      *
       PROCEDURE DIVISION.
      *
           ADD  BCL-B  TO BCL-A END-ADD.
           MOVE BCL-A  TO BCL-RES.
           IF BCL-RES NOT = 11.0
              DISPLAY 'ERROR BINARY-C-LONG + BINARY-C-LONG'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO BCL-A.
           ADD  10.0  TO BCL-A END-ADD.
           MOVE BCL-A  TO BCL-RES.
           IF BCL-RES NOT = 11.0
              DISPLAY 'ERROR BINARY-C-LONG + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO BCL-A.
           SUBTRACT BCL-B FROM BCL-A END-SUBTRACT.
           MOVE BCL-A  TO BCL-RES.
           IF BCL-RES NOT = 1.0
              DISPLAY 'ERROR BINARY-C-LONG - BINARY-C-LONG'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO BCL-A.
           SUBTRACT 10.0 FROM BCL-A END-SUBTRACT.
           MOVE BCL-A  TO BCL-RES.
           IF BCL-RES NOT = 1.0
              DISPLAY 'ERROR BINARY-C-LONG - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  BC-B  TO BC-A END-ADD.
           MOVE BC-A  TO BC-RES.
           IF BC-RES NOT = 11.0
              DISPLAY 'ERROR BINARY-CHAR + BINARY-CHAR'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO BC-A.
           ADD  10.0  TO BC-A END-ADD.
           MOVE BC-A  TO BC-RES.
           IF BC-RES NOT = 11.0
              DISPLAY 'ERROR BINARY-CHAR + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO BC-A.
           SUBTRACT BC-B FROM BC-A END-SUBTRACT.
           MOVE BC-A  TO BC-RES.
           IF BC-RES NOT = 1.0
              DISPLAY 'ERROR BINARY-CHAR - BINARY-CHAR'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO BC-A.
           SUBTRACT 10.0 FROM BC-A END-SUBTRACT.
           MOVE BC-A  TO BC-RES.
           IF BC-RES NOT = 1.0
              DISPLAY 'ERROR BINARY-CHAR - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  BD-B  TO BD-A END-ADD.
           MOVE BD-A  TO BD-RES.
           IF BD-RES NOT = 11.0
              DISPLAY 'ERROR BINARY-DOUBLE + BINARY-DOUBLE'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO BD-A.
           ADD  10.0  TO BD-A END-ADD.
           MOVE BD-A  TO BD-RES.
           IF BD-RES NOT = 11.0
              DISPLAY 'ERROR BINARY-DOUBLE + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO BD-A.
           SUBTRACT BD-B FROM BD-A END-SUBTRACT.
           MOVE BD-A  TO BD-RES.
           IF BD-RES NOT = 1.0
              DISPLAY 'ERROR BINARY-DOUBLE - BINARY-DOUBLE'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO BD-A.
           SUBTRACT 10.0 FROM BD-A END-SUBTRACT.
           MOVE BD-A  TO BD-RES.
           IF BD-RES NOT = 1.0
              DISPLAY 'ERROR BINARY-DOUBLE - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  BL-B  TO BL-A END-ADD.
           MOVE BL-A  TO BL-RES.
           IF BL-RES NOT = 11.0
              DISPLAY 'ERROR BINARY-LONG + BINARY-LONG'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO BL-A.
           ADD  10.0  TO BL-A END-ADD.
           MOVE BL-A  TO BL-RES.
           IF BL-RES NOT = 11.0
              DISPLAY 'ERROR BINARY-LONG + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO BL-A.
           SUBTRACT BL-B FROM BL-A END-SUBTRACT.
           MOVE BL-A  TO BL-RES.
           IF BL-RES NOT = 1.0
              DISPLAY 'ERROR BINARY-LONG - BINARY-LONG'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO BL-A.
           SUBTRACT 10.0 FROM BL-A END-SUBTRACT.
           MOVE BL-A  TO BL-RES.
           IF BL-RES NOT = 1.0
              DISPLAY 'ERROR BINARY-LONG - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C-B  TO C-A END-ADD.
           MOVE C-A  TO C-RES.
           IF C-RES NOT = 11.0
              DISPLAY 'ERROR COMP + COMP'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO C-A.
           ADD  10.0  TO C-A END-ADD.
           MOVE C-A  TO C-RES.
           IF C-RES NOT = 11.0
              DISPLAY 'ERROR COMP + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C-A.
           SUBTRACT C-B FROM C-A END-SUBTRACT.
           MOVE C-A  TO C-RES.
           IF C-RES NOT = 1.0
              DISPLAY 'ERROR COMP - COMP'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C-A.
           SUBTRACT 10.0 FROM C-A END-SUBTRACT.
           MOVE C-A  TO C-RES.
           IF C-RES NOT = 1.0
              DISPLAY 'ERROR COMP - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C1-B  TO C1-A END-ADD.
           MOVE C1-A  TO C1-RES.
           IF C1-RES NOT = 11.0
              DISPLAY 'ERROR COMP-1 + COMP-1'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO C1-A.
           ADD  10.0  TO C1-A END-ADD.
           MOVE C1-A  TO C1-RES.
           IF C1-RES NOT = 11.0
              DISPLAY 'ERROR COMP-1 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C1-A.
           SUBTRACT C1-B FROM C1-A END-SUBTRACT.
           MOVE C1-A  TO C1-RES.
           IF C1-RES NOT = 1.0
              DISPLAY 'ERROR COMP-1 - COMP-1'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C1-A.
           SUBTRACT 10.0 FROM C1-A END-SUBTRACT.
           MOVE C1-A  TO C1-RES.
           IF C1-RES NOT = 1.0
              DISPLAY 'ERROR COMP-1 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C2-B  TO C2-A END-ADD.
           MOVE C2-A  TO C2-RES.
           IF C2-RES NOT = 11.0
              DISPLAY 'ERROR COMP-2 + COMP-2'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO C2-A.
           ADD  10.0  TO C2-A END-ADD.
           MOVE C2-A  TO C2-RES.
           IF C2-RES NOT = 11.0
              DISPLAY 'ERROR COMP-2 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C2-A.
           SUBTRACT C2-B FROM C2-A END-SUBTRACT.
           MOVE C2-A  TO C2-RES.
           IF C2-RES NOT = 1.0
              DISPLAY 'ERROR COMP-2 - COMP-2'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C2-A.
           SUBTRACT 10.0 FROM C2-A END-SUBTRACT.
           MOVE C2-A  TO C2-RES.
           IF C2-RES NOT = 1.0
              DISPLAY 'ERROR COMP-2 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C3-B  TO C3-A END-ADD.
           MOVE C3-A  TO C3-RES.
           IF C3-RES NOT = 11.0
              DISPLAY 'ERROR COMP-3 + COMP-3'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO C3-A.
           ADD  10.0  TO C3-A END-ADD.
           MOVE C3-A  TO C3-RES.
           IF C3-RES NOT = 11.0
              DISPLAY 'ERROR COMP-3 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C3-A.
           SUBTRACT C3-B FROM C3-A END-SUBTRACT.
           MOVE C3-A  TO C3-RES.
           IF C3-RES NOT = 1.0
              DISPLAY 'ERROR COMP-3 - COMP-3'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C3-A.
           SUBTRACT 10.0 FROM C3-A END-SUBTRACT.
           MOVE C3-A  TO C3-RES.
           IF C3-RES NOT = 1.0
              DISPLAY 'ERROR COMP-3 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C5-B  TO C5-A END-ADD.
           MOVE C5-A  TO C5-RES.
           IF C5-RES NOT = 11.0
              DISPLAY 'ERROR COMP-5 + COMP-5'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO C5-A.
           ADD  10.0  TO C5-A END-ADD.
           MOVE C5-A  TO C5-RES.
           IF C5-RES NOT = 11.0
              DISPLAY 'ERROR COMP-5 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C5-A.
           SUBTRACT C5-B FROM C5-A END-SUBTRACT.
           MOVE C5-A  TO C5-RES.
           IF C5-RES NOT = 1.0
              DISPLAY 'ERROR COMP-5 - COMP-5'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C5-A.
           SUBTRACT 10.0 FROM C5-A END-SUBTRACT.
           MOVE C5-A  TO C5-RES.
           IF C5-RES NOT = 1.0
              DISPLAY 'ERROR COMP-5 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  C6-B  TO C6-A END-ADD.
           MOVE C6-A  TO C6-RES.
           IF C6-RES NOT = 11.0
              DISPLAY 'ERROR COMP-6 + COMP-6'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO C6-A.
           ADD  10.0  TO C6-A END-ADD.
           MOVE C6-A  TO C6-RES.
           IF C6-RES NOT = 11.0
              DISPLAY 'ERROR COMP-6 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C6-A.
           SUBTRACT C6-B FROM C6-A END-SUBTRACT.
           MOVE C6-A  TO C6-RES.
           IF C6-RES NOT = 1.0
              DISPLAY 'ERROR COMP-6 - COMP-6'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO C6-A.
           SUBTRACT 10.0 FROM C6-A END-SUBTRACT.
           MOVE C6-A  TO C6-RES.
           IF C6-RES NOT = 1.0
              DISPLAY 'ERROR COMP-6 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  CN9-B  TO CN9-A END-ADD.
           MOVE CN9-A  TO CN9-RES.
           IF CN9-RES NOT = 11.0
              DISPLAY 'ERROR COMP-N + COMP-N'
              END-DISPLAY
           END-IF.
           MOVE 1.0    TO CN9-A.
           ADD  10.0   TO CN9-A END-ADD.
           MOVE CN9-A  TO CN9-RES.
           IF CN9-RES NOT = 11.0
              DISPLAY 'ERROR COMP-N + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0   TO CN9-A.
           SUBTRACT CN9-B FROM CN9-A END-SUBTRACT.
           MOVE CN9-A  TO CN9-RES.
           IF CN9-RES NOT = 1.0
              DISPLAY 'ERROR COMP-N - COMP-N'
              END-DISPLAY
           END-IF.
           MOVE 11.0   TO CN9-A.
           SUBTRACT 10.0  FROM CN9-A END-SUBTRACT.
           MOVE CN9-A  TO CN9-RES.
           IF CN9-RES NOT = 1.0
              DISPLAY 'ERROR COMP-N - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  CNX-B  TO CNX-A END-ADD.
           MOVE CNX-A  TO CNX-RES.
           IF CNX-RES NOT = 11.0
              DISPLAY 'ERROR COMP-N + COMP-N'
              END-DISPLAY
           END-IF.
           MOVE 1.0    TO CNX-A.
           ADD  10.0   TO CNX-A END-ADD.
           MOVE CNX-A  TO CNX-RES.
           IF CNX-RES NOT = 11.0
              DISPLAY 'ERROR COMP-N + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0   TO CNX-A.
           SUBTRACT CNX-B FROM CNX-A END-SUBTRACT.
           MOVE CNX-A  TO CNX-RES.
           IF CNX-RES NOT = 1.0
              DISPLAY 'ERROR COMP-N - COMP-N'
              END-DISPLAY
           END-IF.
           MOVE 11.0   TO CNX-A.
           SUBTRACT 10.0 FROM CNX-A END-SUBTRACT.
           MOVE CNX-A  TO CNX-RES.
           IF CNX-RES NOT = 1.0
              DISPLAY 'ERROR COMP-N - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  CX9-B  TO CX9-A END-ADD.
           MOVE CX9-A  TO CX9-RES.
           IF CX9-RES NOT = 11.0
              DISPLAY 'ERROR COMP-X + COMP-X'
              END-DISPLAY
           END-IF.
           MOVE 1.0    TO CX9-A.
           ADD  10.0   TO CX9-A END-ADD.
           MOVE CX9-A  TO CX9-RES.
           IF CX9-RES NOT = 11.0
              DISPLAY 'ERROR COMP-X + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0   TO CX9-A.
           SUBTRACT CX9-B FROM CX9-A END-SUBTRACT.
           MOVE CX9-A  TO CX9-RES.
           IF CX9-RES NOT = 1.0
              DISPLAY 'ERROR COMP-X - COMP-X'
              END-DISPLAY
           END-IF.
           MOVE 11.0   TO CX9-A.
           SUBTRACT 10.0 FROM CX9-A END-SUBTRACT.
           MOVE CX9-A  TO CX9-RES.
           IF CX9-RES NOT = 1.0
              DISPLAY 'ERROR COMP-X - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  CXX-B  TO CXX-A END-ADD.
           MOVE CXX-A  TO CXX-RES.
           IF CXX-RES NOT = 11.0
              DISPLAY 'ERROR COMP-X + COMP-X'
              END-DISPLAY
           END-IF.
           MOVE 1.0    TO CXX-A.
           ADD  10.0   TO CXX-A END-ADD.
           MOVE CXX-A  TO CXX-RES.
           IF CXX-RES NOT = 11.0
              DISPLAY 'ERROR COMP-X + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0    TO CXX-A.
           SUBTRACT CXX-B FROM CXX-A END-SUBTRACT.
           MOVE CXX-A  TO CXX-RES.
           IF CXX-RES NOT = 1.0
              DISPLAY 'ERROR COMP-X - COMP-X'
              END-DISPLAY
           END-IF.
           MOVE 11.0   TO CXX-A.
           SUBTRACT 10.0 FROM CXX-A END-SUBTRACT.
           MOVE CXX-A  TO CXX-RES.
           IF CXX-RES NOT = 1.0
              DISPLAY 'ERROR COMP-X - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  D-B  TO D-A END-ADD.
           MOVE D-A  TO D-RES.
           IF D-RES NOT = 11.0
              DISPLAY 'ERROR DISPLAY + DISPLAY'
              END-DISPLAY
           END-IF.
           MOVE 1.0  TO D-A.
           ADD  10.0 TO D-A END-ADD.
           MOVE D-A  TO D-RES.
           IF D-RES NOT = 11.0
              DISPLAY 'ERROR DISPLAY + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0 TO D-A.
           SUBTRACT D-B FROM D-A END-SUBTRACT.
           MOVE D-A  TO D-RES.
           IF D-RES NOT = 1.0
              DISPLAY 'ERROR DISPLAY - DISPLAY'
              END-DISPLAY
           END-IF.
           MOVE 11.0 TO D-A.
           SUBTRACT 10.0 FROM D-A END-SUBTRACT.
           MOVE D-A  TO D-RES.
           IF D-RES NOT = 1.0
              DISPLAY 'ERROR DISPLAY - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  FD16-B  TO FD16-A END-ADD.
           MOVE FD16-A  TO FD16-RES.
           IF FD16-RES NOT = 11.0
              DISPLAY 'ERROR FLOAT-DECIMAL-16 + FLOAT-DECIMAL-16'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO FD16-A.
           ADD  10.0  TO FD16-A END-ADD.
           MOVE FD16-A  TO FD16-RES.
           IF FD16-RES NOT = 11.0
              DISPLAY 'ERROR FLOAT-DECIMAL-16 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO FD16-A.
           SUBTRACT FD16-B FROM FD16-A END-SUBTRACT.
           MOVE FD16-A  TO FD16-RES.
           IF FD16-RES NOT = 1.0
              DISPLAY 'ERROR FLOAT-DECIMAL-16 - FLOAT-DECIMAL-16'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO FD16-A.
           SUBTRACT 10.0 FROM FD16-A END-SUBTRACT.
           MOVE FD16-A  TO FD16-RES.
           IF FD16-RES NOT = 1.0
              DISPLAY 'ERROR FLOAT-DECIMAL-16 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  FD34-B  TO FD34-A END-ADD.
           MOVE FD34-A  TO FD34-RES.
           IF FD34-RES NOT = 11.0
              DISPLAY 'ERROR FLOAT-DECIMAL-34 + FLOAT-DECIMAL-34'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO FD34-A.
           ADD  10.0  TO FD34-A END-ADD.
           MOVE FD34-A  TO FD34-RES.
           IF FD34-RES NOT = 11.0
              DISPLAY 'ERROR FLOAT-DECIMAL-34 + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO FD34-A.
           SUBTRACT FD34-B FROM FD34-A END-SUBTRACT.
           MOVE FD34-A  TO FD34-RES.
           IF FD34-RES NOT = 1.0
              DISPLAY 'ERROR FLOAT-DECIMAL-34 - FLOAT-DECIMAL-34'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO FD34-A.
           SUBTRACT 10.0 FROM FD34-A END-SUBTRACT.
           MOVE FD34-A  TO FD34-RES.
           IF FD34-RES NOT = 1.0
              DISPLAY 'ERROR FLOAT-DECIMAL-34 - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  FL-B  TO FL-A END-ADD.
           MOVE FL-A  TO FL-RES.
           IF FL-RES NOT = 11.0
              DISPLAY 'ERROR FLOAT-LONG + FLOAT-LONG'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO FL-A.
           ADD  10.0  TO FL-A END-ADD.
           MOVE FL-A  TO FL-RES.
           IF FL-RES NOT = 11.0
              DISPLAY 'ERROR FLOAT-LONG + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO FL-A.
           SUBTRACT FL-B FROM FL-A END-SUBTRACT.
           MOVE FL-A  TO FL-RES.
           IF FL-RES NOT = 1.0
              DISPLAY 'ERROR FLOAT-LONG - FLOAT-LONG'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO FL-A.
           SUBTRACT 10.0 FROM FL-A END-SUBTRACT.
           MOVE FL-A  TO FL-RES.
           IF FL-RES NOT = 1.0
              DISPLAY 'ERROR FLOAT-LONG - NUM'
              END-DISPLAY
           END-IF.
      *
           ADD  FS-B  TO FS-A END-ADD.
           MOVE FS-A  TO FS-RES.
           IF FS-RES NOT = 11.0
              DISPLAY 'ERROR FLOAT-SHORT + FLOAT-SHORT'
              END-DISPLAY
           END-IF.
           MOVE 1.0   TO FS-A.
           ADD  10.0  TO FS-A END-ADD.
           MOVE FS-A  TO FS-RES.
           IF FS-RES NOT = 11.0
              DISPLAY 'ERROR FLOAT-SHORT + NUM'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO FS-A.
           SUBTRACT FS-B FROM FS-A END-SUBTRACT.
           MOVE FS-A  TO FS-RES.
           IF FS-RES NOT = 1.0
              DISPLAY 'ERROR FLOAT-SHORT - FLOAT-SHORT'
              END-DISPLAY
           END-IF.
           MOVE 11.0  TO FS-A.
           SUBTRACT 10.0 FROM FS-A END-SUBTRACT.
           MOVE FS-A  TO FS-RES.
           IF FS-RES NOT = 1.0
              DISPLAY 'ERROR FLOAT-SHORT - NUM'
              END-DISPLAY
           END-IF.
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:5636: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:5636"
( $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/run_misc.at:5636"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:5637: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:5637"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:5639: \$COMPILE -fnotrunc prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fnotrunc prog.cob" "run_misc.at:5639"
( $at_check_trace; $COMPILE -fnotrunc 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/run_misc.at:5639"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:5640: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:5640"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:5640"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_673
#AT_START_674
at_fn_group_banner 674 'run_misc.at:5645' \
  "C/C++ reserved words/predefined identifiers" "    " 4
at_xfail=no
(
  $as_echo "674. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
      *
      * Reserved Words in C (that aren't reserved in COBOL)
      * var names MUST BE IN LOWER CASE (!)
      *
       77  const                       PIC X VALUE "A".
       77  double                      PIC X VALUE "B".
       77  float                       PIC X VALUE "C".
       77  int                         PIC X VALUE "D".
       77  short                       PIC X VALUE "E".
       77  struct                      PIC X VALUE "F".
       77  break                       PIC X VALUE "G".
       77  long                        PIC X VALUE "H".
       77  switch                      PIC X VALUE "I".
       77  void                        PIC X VALUE "J".
       77  case                        PIC X VALUE "K".
       77  enum                        PIC X VALUE "L".
       77  goto                        PIC X VALUE "M".
       77  register                    PIC X VALUE "N".
       77  sizeof                      PIC X VALUE "O".
       77  volatile                    PIC X VALUE "P".
       77  char                        PIC X VALUE "Q".
       77  do                          PIC X VALUE "R".
       77  extern                      PIC X VALUE "S".
       77  static                      PIC X VALUE "T".
       77  union                       PIC X VALUE "U".
       77  while                       PIC X VALUE "V".
      *
      * More Reserved Words in C++
      * var names MUST BE IN LOWER CASE (!)
      *
       77  asm                         PIC X VALUE "W".
       77  dynamic_cast                PIC X VALUE "X".
       77  namespace                   PIC X VALUE "Y".
       77  reinterpret_cast            PIC X VALUE "Z".
       77  try                         PIC X VALUE "a".
       77  bool                        PIC X VALUE "b".
       77  explicit                    PIC X VALUE "c".
       77  new                         PIC X VALUE "d".
       77  static_cast                 PIC X VALUE "e".
       77  typeid                      PIC X VALUE "f".
       77  catch                       PIC X VALUE "g".
       77  operator                    PIC X VALUE "h".
       77  template                    PIC X VALUE "i".
       77  typename                    PIC X VALUE "j".
       77  friend                      PIC X VALUE "k".
       77  private                     PIC X VALUE "l".
       77  this                        PIC X VALUE "m".
       77  const_cast                  PIC X VALUE "n".
       77  inline                      PIC X VALUE "o".
       77  public                      PIC X VALUE "p".
       77  throw                       PIC X VALUE "q".
       77  virtual                     PIC X VALUE "r".
       77  mutable                     PIC X VALUE "s".
       77  protected                   PIC X VALUE "t".
       77  wchar_t                     PIC X VALUE "u".
      *
      * More Reserved Words in C++ (not essential)
      * var names MUST BE IN LOWER CASE (!)
      *
       77  bitand                      PIC X VALUE "v".
       77  compl                       PIC X VALUE "w".
       77  not_eq                      PIC X VALUE "x".
       77  or_eq                       PIC X VALUE "y".
       77  xor_eq                      PIC X VALUE "z".
       77  and_eq                      PIC X VALUE "0".
       77  bitor                       PIC X VALUE "1".
       77  xor                         PIC X VALUE "2".
      *
       PROCEDURE        DIVISION.
           CALL "callee" USING   const
                                 double
                                 float
                                 int
                                 short
                                 struct
                                 break
                                 long
                                 switch
                                 void
                                 case
                                 enum
                                 goto
                                 register
                                 sizeof
                                 volatile
                                 char
                                 do
                                 *>extern
                                 *>static
                                 union
                                 while
           END-CALL.
           CALL "callee2" USING  asm
                                 dynamic_cast
                                 namespace
                                 reinterpret_cast
                                 try
                                 bool
                                 explicit
                                 new
                                 static_cast
                                 typeid
                                 catch
                                 operator
                                 template
                                 typename
                                 friend
                                 private
                                 this
                                 const_cast
                                 inline
                                 public
                                 throw
                                 virtual
                                 mutable
                                 protected
                                 wchar_t
                                 bitand
                                 compl
                                 not_eq
                                 or_eq
                                 xor_eq
                                 and_eq
                                 bitor
                                 xor
           END-CALL.
           MOVE x'00' TO         const
                                 double
                                 float
                                 int
                                 short
                                 struct
                                 break
                                 long
                                 switch
                                 void
                                 case
                                 enum
                                 goto
                                 register
                                 sizeof
                                 volatile
                                 char
                                 do
                                 extern
                                 static
                                 union
                                 while
                                 asm
                                 dynamic_cast
                                 namespace
                                 reinterpret_cast
                                 try
                                 bool
                                 explicit
                                 new
                                 static_cast
                                 typeid
                                 catch
                                 operator
                                 template
                                 typename
                                 friend
                                 private
                                 this
                                 const_cast
                                 inline
                                 public
                                 throw
                                 virtual
                                 mutable
                                 protected
                                 wchar_t
                                 bitand
                                 compl
                                 not_eq
                                 or_eq
                                 xor_eq
                                 and_eq
                                 bitor
                                 xor
                                 .
           STOP RUN.
_ATEOF


cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       LINKAGE SECTION.
      *
      * Reserved Words in C (that aren't reserved in COBOL)
      * var names MUST BE IN LOWER CASE (!)
      *
       77  const                       PIC X.
       77  double                      PIC X.
       77  float                       PIC X.
       77  int                         PIC X.
       77  short                       PIC X.
       77  struct                      PIC X.
       77  break                       PIC X.
       77  long                        PIC X.
       77  switch                      PIC X.
       77  void                        PIC X.
       77  case                        PIC X.
       77  enum                        PIC X.
       77  goto                        PIC X.
       77  register                    PIC X.
       77  sizeof                      PIC X.
       77  volatile                    PIC X.
       77  char                        PIC X.
       77  do                          PIC X.
      *77  extern                      PIC X.
      *77  static                      PIC X.
       77  union                       PIC X.
       77  while                       PIC X.
       PROCEDURE        DIVISION USING
                                 const
                                 double
                                 float
                                 int
                                 short
                                 struct
                                 break
                                 long
                                 switch
                                 void
                                 case
                                 enum
                                 goto
                                 register
                                 sizeof
                                 volatile
                                 char
                                 do
                                *>extern
                                *>static
                                 union
                                 while
                                 .
           IF (const                       NOT = "A") OR
              (double                      NOT = "B") OR
              (float                       NOT = "C") OR
              (int                         NOT = "D") OR
              (short                       NOT = "E") OR
              (struct                      NOT = "F") OR
              (break                       NOT = "G") OR
              (long                        NOT = "H") OR
              (switch                      NOT = "I") OR
              (void                        NOT = "J") OR
              (case                        NOT = "K") OR
              (enum                        NOT = "L") OR
              (goto                        NOT = "M") OR
              (register                    NOT = "N") OR
              (sizeof                      NOT = "O") OR
              (volatile                    NOT = "P") OR
              (char                        NOT = "Q") OR
              (do                          NOT = "R") OR
            *>(extern                      NOT = "S") OR
            *>(static                      NOT = "T") OR
              (union                       NOT = "U") OR
              (while                       NOT = "V")
              DISPLAY "At least one var has wrong content!"
              END-DISPLAY
           END-IF.
           MOVE x'FF' TO         const
                                 double
                                 float
                                 int
                                 short
                                 struct
                                 break
                                 long
                                 switch
                                 void
                                 case
                                 enum
                                 goto
                                 register
                                 sizeof
                                 volatile
                                 char
                                 do
                               *>extern
                               *>static
                                 union
                                 while
                                 .
           EXIT PROGRAM.
_ATEOF


cat >callee2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2.
       DATA             DIVISION.
       LINKAGE SECTION.
      *
      * More Reserved Words in C++
      * var names MUST BE IN LOWER CASE (!)
      *
       77  asm                         PIC X.
       77  dynamic_cast                PIC X.
       77  namespace                   PIC X.
       77  reinterpret_cast            PIC X.
       77  try                         PIC X.
       77  bool                        PIC X.
       77  explicit                    PIC X.
       77  new                         PIC X.
       77  static_cast                 PIC X.
       77  typeid                      PIC X.
       77  catch                       PIC X.
       77  operator                    PIC X.
       77  template                    PIC X.
       77  typename                    PIC X.
       77  friend                      PIC X.
       77  private                     PIC X.
       77  this                        PIC X.
       77  const_cast                  PIC X.
       77  inline                      PIC X.
       77  public                      PIC X.
       77  throw                       PIC X.
       77  virtual                     PIC X.
       77  mutable                     PIC X.
       77  protected                   PIC X.
       77  wchar_t                     PIC X.
      *
      * More Reserved Words in C++ (not essential)
      *
       77  bitand                      PIC X.
       77  compl                       PIC X.
       77  not_eq                      PIC X.
       77  or_eq                       PIC X.
       77  xor_eq                      PIC X.
       77  and_eq                      PIC X.
       77  bitor                       PIC X.
       77  xor                         PIC X.
       PROCEDURE        DIVISION USING
                                 asm
                                 dynamic_cast
                                 namespace
                                 reinterpret_cast
                                 try
                                 bool
                                 explicit
                                 new
                                 static_cast
                                 typeid
                                 catch
                                 operator
                                 template
                                 typename
                                 friend
                                 private
                                 this
                                 const_cast
                                 inline
                                 public
                                 throw
                                 virtual
                                 mutable
                                 protected
                                 wchar_t
                                 bitand
                                 compl
                                 not_eq
                                 or_eq
                                 xor_eq
                                 and_eq
                                 bitor
                                 xor
                                 .
           IF (asm                         NOT = "W") OR
              (dynamic_cast                NOT = "X") OR
              (namespace                   NOT = "Y") OR
              (reinterpret_cast            NOT = "Z") OR
              (try                         NOT = "a") OR
              (bool                        NOT = "b") OR
              (explicit                    NOT = "c") OR
              (new                         NOT = "d") OR
              (static_cast                 NOT = "e") OR
              (typeid                      NOT = "f") OR
              (catch                       NOT = "g") OR
              (operator                    NOT = "h") OR
              (template                    NOT = "i") OR
              (typename                    NOT = "j") OR
              (friend                      NOT = "k") OR
              (private                     NOT = "l") OR
              (this                        NOT = "m") OR
              (const_cast                  NOT = "n") OR
              (inline                      NOT = "o") OR
              (public                      NOT = "p") OR
              (throw                       NOT = "q") OR
              (virtual                     NOT = "r") OR
              (mutable                     NOT = "s") OR
              (protected                   NOT = "t") OR
              (wchar_t                     NOT = "u") OR
              (bitand                      NOT = "v") OR
              (compl                       NOT = "w") OR
              (not_eq                      NOT = "x") OR
              (or_eq                       NOT = "y") OR
              (xor_eq                      NOT = "z") OR
              (and_eq                      NOT = "0") OR
              (bitor                       NOT = "1") OR
              (xor                         NOT = "2")
              DISPLAY "At least one var has wrong content!"
              END-DISPLAY
           END-IF.
           MOVE x'FF' TO         asm
                                 dynamic_cast
                                 namespace
                                 reinterpret_cast
                                 try
                                 bool
                                 explicit
                                 new
                                 static_cast
                                 typeid
                                 catch
                                 operator
                                 template
                                 typename
                                 friend
                                 private
                                 this
                                 const_cast
                                 inline
                                 public
                                 throw
                                 virtual
                                 mutable
                                 protected
                                 wchar_t
                                 bitand
                                 compl
                                 not_eq
                                 or_eq
                                 xor_eq
                                 and_eq
                                 bitor
                                 xor
                                 .
           EXIT PROGRAM.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6097: \$COMPILE_MODULE -fnot-reserved=double,float,new,volatile callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE -fnot-reserved=double,float,new,volatile callee.cob" "run_misc.at:6097"
( $at_check_trace; $COMPILE_MODULE -fnot-reserved=double,float,new,volatile 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/run_misc.at:6097"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6098: \$COMPILE_MODULE -fnot-reserved=double,float,new,volatile callee2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE -fnot-reserved=double,float,new,volatile callee2.cob" "run_misc.at:6098"
( $at_check_trace; $COMPILE_MODULE -fnot-reserved=double,float,new,volatile callee2.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/run_misc.at:6098"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6099: \$COMPILE -fnot-reserved=double,float,new,volatile -o prog caller.cob"
at_fn_check_prepare_dynamic "$COMPILE -fnot-reserved=double,float,new,volatile -o prog caller.cob" "run_misc.at:6099"
( $at_check_trace; $COMPILE -fnot-reserved=double,float,new,volatile -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/run_misc.at:6099"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6100: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:6100"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:6100"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_674
#AT_START_675
at_fn_group_banner 675 'run_misc.at:6105' \
  "ON EXCEPTION clause of DISPLAY" "                 " 4
at_xfail=no
(
  $as_echo "675. $at_setup_line: testing $at_desc ..."
  $at_traceon



{ set +x
$as_echo "$at_srcdir/run_misc.at:6108: test \"\$COB_HAS_CURSES\" = \"yes\" || exit 77"
at_fn_check_prepare_dynamic "test \"$COB_HAS_CURSES\" = \"yes\" || exit 77" "run_misc.at:6108"
( $at_check_trace; test "$COB_HAS_CURSES" = "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/run_misc.at:6108"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       PROCEDURE DIVISION.
           DISPLAY "hello" AT COLUMN 500
               ON EXCEPTION
                   GOBACK RETURNING 0
               NOT ON EXCEPTION
                   GOBACK RETURNING 1
           END-DISPLAY
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6124: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:6124"
( $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/run_misc.at:6124"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6125: COB_EXIT_WAIT=0 ./prog"
at_fn_check_prepare_trace "run_misc.at:6125"
( $at_check_trace; COB_EXIT_WAIT=0 ./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/run_misc.at:6125"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_675
#AT_START_676
at_fn_group_banner 676 'run_misc.at:6130' \
  "EC-SCREEN-LINE-NUMBER and -STARTING-COLUMN" "     " 4
at_xfail=no
(
  $as_echo "676. $at_setup_line: testing $at_desc ..."
  $at_traceon



{ set +x
$as_echo "$at_srcdir/run_misc.at:6133: test \"\$COB_HAS_CURSES\" = \"yes\" || exit 77"
at_fn_check_prepare_dynamic "test \"$COB_HAS_CURSES\" = \"yes\" || exit 77" "run_misc.at:6133"
( $at_check_trace; test "$COB_HAS_CURSES" = "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/run_misc.at:6133"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.

       DATA           DIVISION.
       SCREEN         SECTION.
       01  invalid-line.
           03  a      VALUE "a" LINE 99999999.
       01  invalid-col.
           03  c      VALUE "c" COLUMN 99999999.

       PROCEDURE      DIVISION.
           DISPLAY invalid-line END-DISPLAY
           IF FUNCTION EXCEPTION-STATUS = "EC-SCREEN-LINE-NUMBER"
               CONTINUE
           ELSE
               GOBACK RETURNING 1
           END-IF

           DISPLAY invalid-col END-DISPLAY
           IF FUNCTION EXCEPTION-STATUS = "EC-SCREEN-STARTING-COLUMN"
               CONTINUE
           ELSE
               GOBACK RETURNING 2
           END-IF

           GOBACK RETURNING 0
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6165: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:6165"
( $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/run_misc.at:6165"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6166: COB_EXIT_WAIT=0 ./prog"
at_fn_check_prepare_trace "run_misc.at:6166"
( $at_check_trace; COB_EXIT_WAIT=0 ./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/run_misc.at:6166"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_676
#AT_START_677
at_fn_group_banner 677 'run_misc.at:6171' \
  "LINE/COLUMN 0 exceptions" "                       " 4
at_xfail=no
(
  $as_echo "677. $at_setup_line: testing $at_desc ..."
  $at_traceon



{ set +x
$as_echo "$at_srcdir/run_misc.at:6174: test \"\$COB_HAS_CURSES\" = \"yes\" || exit 77"
at_fn_check_prepare_dynamic "test \"$COB_HAS_CURSES\" = \"yes\" || exit 77" "run_misc.at:6174"
( $at_check_trace; test "$COB_HAS_CURSES" = "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/run_misc.at:6174"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  zero-var PIC 9 VALUE 0.

       SCREEN SECTION.
       01  scr.
           03  VALUE "a".

       PROCEDURE DIVISION.
           DISPLAY scr AT LINE zero-var
           IF FUNCTION EXCEPTION-STATUS <> "EC-SCREEN-LINE-NUMBER"
               GOBACK RETURNING 1
           END-IF

           DISPLAY scr AT COLUMN zero-var
           IF FUNCTION EXCEPTION-STATUS <> "EC-SCREEN-STARTING-COLUMN"
               GOBACK RETURNING 2
           END-IF

           GOBACK RETURNING 0
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6203: \$COMPILE  -faccept-display-extensions=error prog.cob"
at_fn_check_prepare_dynamic "$COMPILE  -faccept-display-extensions=error prog.cob" "run_misc.at:6203"
( $at_check_trace; $COMPILE  -faccept-display-extensions=error 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/run_misc.at:6203"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6204: COB_EXIT_WAIT=0 ./prog"
at_fn_check_prepare_trace "run_misc.at:6204"
( $at_check_trace; COB_EXIT_WAIT=0 ./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/run_misc.at:6204"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_677
#AT_START_678
at_fn_group_banner 678 'run_misc.at:6209' \
  "SET LAST EXCEPTION TO OFF" "                      " 4
at_xfail=no
(
  $as_echo "678. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC 9.

       PROCEDURE DIVISION.
           COMPUTE x = 10
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-LOCATION)
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-LOCATION)
           SET LAST EXCEPTION TO OFF
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-LOCATION)
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6232: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:6232"
( $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/run_misc.at:6232"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6233: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:6233"
( $at_check_trace; $COBCRUN_DIRECT ./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-SIZE-OVERFLOW
prog; ; 10
EC-SIZE-OVERFLOW
prog; ; 10


" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6233"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_678
#AT_START_679
at_fn_group_banner 679 'run_misc.at:6245' \
  "void PROCEDURE" "                                 " 4
at_xfail=no
(
  $as_echo "679. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       PROCEDURE        DIVISION RETURNING OMITTED.
           MOVE 42 TO RETURN-CODE
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL "callee" RETURNING OMITTED
           END-CALL.
           DISPLAY RETURN-CODE WITH NO ADVANCING
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6267: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:6267"
( $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/run_misc.at:6267"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6268: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:6268"
( $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/run_misc.at:6268"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6269: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:6269"
( $at_check_trace; $COBCRUN_DIRECT ./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" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6269"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_679
#AT_START_680
at_fn_group_banner 680 'run_misc.at:6274' \
  "Figurative constants to numeric field" "          " 4
at_xfail=no
(
  $as_echo "680. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  NUM9    PIC 9(6).
       PROCEDURE DIVISION.
           MOVE SPACES TO NUM9
           DISPLAY "NUM9 value SPACES is " NUM9 "." UPON SYSOUT
           MOVE LOW-VALUES TO NUM9
           IF NUM9 = LOW-VALUES
              DISPLAY "9(6) tests OK for LOW-VALUES" UPON SYSOUT
           ELSE
              DISPLAY "9(6) Does NOT test OK for LOW-VALUES"
                 UPON SYSOUT
              IF NUM9 = ZERO
                 DISPLAY "9(6) tests as ZERO instead of LOW-VALUES"
                    UPON SYSOUT
              END-IF
           END-IF.
           MOVE HIGH-VALUES TO NUM9
           IF NUM9 = HIGH-VALUES
              DISPLAY "9(6) tests OK for HIGH-VALUES" UPON SYSOUT
           ELSE
              DISPLAY "9(6) Does NOT test OK for HIGH-VALUES"
                 UPON SYSOUT
              IF NUM9 = ZERO
                 DISPLAY "9(6) tests as ZERO instead of HIGH-VALUES"
                    UPON SYSOUT
              END-IF
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6311: \$COMPILE -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_misc.at:6311"
( $at_check_trace; $COMPILE -std=mf 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: source is non-numeric - substituting zero
prog.cob:10: warning: source is non-numeric - substituting zero
prog.cob:21: warning: source is non-numeric - substituting zero
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6311"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:6317: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:6317"
( $at_check_trace; $COBCRUN_DIRECT ./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 "NUM9 value SPACES is 000000.
9(6) Does NOT test OK for LOW-VALUES
9(6) tests as ZERO instead of LOW-VALUES
9(6) Does NOT test OK for HIGH-VALUES
9(6) tests as ZERO instead of HIGH-VALUES
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6317"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:6325: \$COMPILE -std=acu prog.cob -o aprog"
at_fn_check_prepare_dynamic "$COMPILE -std=acu prog.cob -o aprog" "run_misc.at:6325"
( $at_check_trace; $COMPILE -std=acu prog.cob -o aprog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6325"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:6327: \$COBCRUN_DIRECT ./aprog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./aprog" "run_misc.at:6327"
( $at_check_trace; $COBCRUN_DIRECT ./aprog
) >>"$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 "NUM9 value SPACES is       .
9(6) tests OK for LOW-VALUES
9(6) tests OK for HIGH-VALUES
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6327"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_680
#AT_START_681
at_fn_group_banner 681 'run_misc.at:6336' \
  "MF FIGURATIVE to NUMERIC" "                       " 4
at_xfail=no
(
  $as_echo "681. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: This test will NOT work on EBCDIC machines,
#        either add it explicit here and split into two or add
#        a pre-test and check the expected "native" result

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID. prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  MYFLD        PIC 9(4) VALUE 96.
       01  BIGFLT       COMP-1 VALUE 543.12345E10.
       PROCEDURE        DIVISION.
       MAIN-1.
           DISPLAY "Initial value"
           PERFORM SHOW-IT.
           DISPLAY "MOVE BIGFLT"
           MOVE BIGFLT TO MYFLD.
           PERFORM SHOW-IT.
           DISPLAY "MOVE SPACES"
           MOVE SPACES TO MYFLD.
           PERFORM SHOW-IT.
           DISPLAY "MOVE LOW-VALUES"
           MOVE LOW-VALUES TO MYFLD.
           PERFORM SHOW-IT.
           DISPLAY "MOVE HIGH-VALUES"
           MOVE HIGH-VALUES TO MYFLD.
           PERFORM SHOW-IT.
           DISPLAY "MOVE QUOTE"
           MOVE QUOTE TO MYFLD.
           PERFORM SHOW-IT.
           DISPLAY "MOVE ALL *"
           MOVE ALL '*' TO MYFLD.
           PERFORM SHOW-IT.
           DISPLAY "MOVE ALL 0"
           MOVE ALL '0' TO MYFLD.
           PERFORM SHOW-IT.
           DISPLAY "MOVE ALL 'A1'"
           MOVE ALL 'A1' TO MYFLD.
           PERFORM SHOW-IT.
           DISPLAY "MOVE ALL '21'"
           MOVE ALL '21' TO MYFLD.
           PERFORM SHOW-IT.
           DISPLAY "MOVE HIGH-VALUES TO (1:)"
           MOVE HIGH-VALUES TO MYFLD (1:).
           PERFORM SHOW-IT.

           DISPLAY "MOVE HIGH-VALUES TO BIGFLT"
           MOVE HIGH-VALUES TO BIGFLT.
           PERFORM SHOW-BIG.
           CALL "dump" USING BIGFLT.
           DISPLAY "MOVE QUOTE TO BIGFLT"
           MOVE QUOTE TO BIGFLT.
           PERFORM SHOW-BIG.
           CALL "dump" USING BIGFLT.
           DISPLAY "MOVE ALL * TO BIGFLT"
           MOVE ALL '*' TO BIGFLT.
           PERFORM SHOW-BIG.
      *>   Note: the next results are dependant on endianess
      *>         therefore no dump here
           DISPLAY "MOVE ALL '21' TO BIGFLT"
           MOVE ALL '21' TO BIGFLT.
           PERFORM SHOW-BIG.
           STOP RUN.
       SHOW-IT.
           CALL "dump" USING MYFLD.
       SHOW-BIG.
           DISPLAY "BIGFLT is " BIGFLT.
_ATEOF


cat >cmod.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (unsigned char *data)
{
  int i;
  for (i = 0; i < 4; i++)
    printf ("%02X", data[i]);
  puts (" .");
  return 0;
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6423: \$COMPILE -std=mf -fno-move-non-numeric-lit-to-numeric-is-zero prog.cob cmod.c"
at_fn_check_prepare_dynamic "$COMPILE -std=mf -fno-move-non-numeric-lit-to-numeric-is-zero prog.cob cmod.c" "run_misc.at:6423"
( $at_check_trace; $COMPILE -std=mf -fno-move-non-numeric-lit-to-numeric-is-zero prog.cob cmod.c
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob: in paragraph 'MAIN-1':
prog.cob:28: warning: numeric value is expected
prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
prog.cob:34: warning: numeric value is expected
prog.cob:6: note: 'MYFLD' defined here as PIC 9(4)
prog.cob:52: warning: numeric value is expected
prog.cob:7: note: 'BIGFLT' defined here as USAGE FLOAT
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6423"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:6433: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:6433"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Initial value
30303936 .
MOVE BIGFLT
38333034 .
MOVE SPACES
20202020 .
MOVE LOW-VALUES
00000000 .
MOVE HIGH-VALUES
FFFFFFFF .
MOVE QUOTE
22222222 .
MOVE ALL *
2A2A2A2A .
MOVE ALL 0
30303030 .
MOVE ALL 'A1'
41314131 .
MOVE ALL '21'
32313231 .
MOVE HIGH-VALUES TO (1:)
FFFFFFFF .
MOVE HIGH-VALUES TO BIGFLT
BIGFLT is NaN
FFFFFFFF .
MOVE QUOTE TO BIGFLT
BIGFLT is 2.1973164E-18
22222222 .
MOVE ALL * TO BIGFLT
BIGFLT is 5.4312347E+12
MOVE ALL '21' TO BIGFLT
BIGFLT is 2.1212121E+37
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6433"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_681
#AT_START_682
at_fn_group_banner 682 'run_misc.at:6471' \
  "CALL RETURNING" "                                 " 4
at_xfail=no
(
  $as_echo "682. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       PROCEDURE        DIVISION.
           MOVE 43 TO RETURN-CODE
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 my-display-return   PIC 99.
       77 my-binary-return    USAGE BINARY-LONG.
       PROCEDURE        DIVISION.
           CALL "callee" RETURNING my-display-return
           END-CALL
           IF RETURN-CODE NOT = 0
              DISPLAY '1 - unexpected RETURN-CODE: ' RETURN-CODE.
           IF my-display-return NOT = 43
              DISPLAY '1- unexpected RETURNING: ' my-display-return.
      *>
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6500: \$COMPILE -static caller.cob callee.cob -o prog"
at_fn_check_prepare_dynamic "$COMPILE -static caller.cob callee.cob -o prog" "run_misc.at:6500"
( $at_check_trace; $COMPILE -static caller.cob callee.cob -o 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/run_misc.at:6500"
$at_failed && at_fn_log_failure
$at_traceon; }

#AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
{ set +x
$as_echo "$at_srcdir/run_misc.at:6502: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:6502"
( $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/run_misc.at:6502"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6503: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:6503"
( $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/run_misc.at:6503"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6504: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:6504"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6504"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_682
#AT_START_683
at_fn_group_banner 683 'run_misc.at:6510' \
  "void PROCEDURE, NOTHING return" "                 " 4
at_xfail=no
(
  $as_echo "683. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       PROCEDURE        DIVISION RETURNING OMITTED.
           MOVE 43 TO RETURN-CODE
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           MOVE 42 TO RETURN-CODE
           CALL "callee" RETURNING NOTHING
           END-CALL.
           IF RETURN-CODE NOT = 42
              DISPLAY 'unexpected RETURN-CODE: ' RETURN-CODE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6534: \$COMPILE -static caller.cob callee.cob -o prog"
at_fn_check_prepare_dynamic "$COMPILE -static caller.cob callee.cob -o prog" "run_misc.at:6534"
( $at_check_trace; $COMPILE -static caller.cob callee.cob -o 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/run_misc.at:6534"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6535: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:6535"
( $at_check_trace; $COBCRUN_DIRECT ./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 42 $at_status "$at_srcdir/run_misc.at:6535"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6536: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_misc.at:6536"
( $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/run_misc.at:6536"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6537: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_misc.at:6537"
( $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/run_misc.at:6537"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6538: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_misc.at:6538"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 42 $at_status "$at_srcdir/run_misc.at:6538"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_683
#AT_START_684
at_fn_group_banner 684 'run_misc.at:6545' \
  "READY TRACE / RESET TRACE" "                      " 4
at_xfail=no
(
  $as_echo "684. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
      *
       PROCEDURE        DIVISION.
           READY TRACE
           MOVE 1 TO RETURN-CODE
           RESET TRACE
           CALL "callee1"
           END-CALL
           READY TRACE
           MOVE 2 TO RETURN-CODE
           CALL "callee1"
           END-CALL
           CALL "callee1"
           CANCEL "callee1"
           CALL "callrec"
           MOVE 0 TO RETURN-CODE
           STOP RUN.
_ATEOF


cat >callee1.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee1.
       PROCEDURE        DIVISION.
           ADD 1 TO RETURN-CODE
             NOT ON SIZE ERROR
               IF RETURN-CODE = 1
                 CONTINUE
               ELSE IF RETURN-CODE = 2
                 CONTINUE
               ELSE
                 CONTINUE
           .
           EVALUATE RETURN-CODE
           WHEN 1
             CONTINUE
           WHEN 2
           WHEN 3
             CONTINUE
           WHEN OTHER
             CONTINUE
           END-EVALUATE
           EVALUATE TRUE
           WHEN RETURN-CODE = 1
             CONTINUE
           WHEN RETURN-CODE = 2
           WHEN RETURN-CODE = 3
             CONTINUE
           WHEN OTHER
             CONTINUE
           END-EVALUATE
           CALL "callee2"  END-CALL
           CANCEL "callee2"  CALL "callee2b" END-CALL  CANCEL "callee2b"
           SUBTRACT 1 FROM RETURN-CODE END-SUBTRACT
           EXIT PROGRAM.
_ATEOF


cat >callee2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2.
       PROCEDURE        DIVISION.
           COMPUTE RETURN-CODE
                 = 1 + 1
              ON SIZE ERROR
                 MOVE -1 TO RETURN-CODE
              NOT ON SIZE ERROR
                 COMPUTE RETURN-CODE
                       = 1 + 1
                 END-COMPUTE
           END-COMPUTE.
           CALL "callee2c" END-CALL
           CANCEL "callee2c"
           MOVE 0 TO RETURN-CODE.
           EXIT PROGRAM.
_ATEOF


cat >preload.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2b.
       PROCEDURE        DIVISION.
       SOME-SEC SECTION.
       SOME-PAR.
           PERFORM OTHER-SEC
           MOVE 0 TO RETURN-CODE.
       ENTRY "LEAVE-ME".
       END-PAR.
           EXIT PROGRAM.
       OTHER-SEC SECTION.
           COMPUTE RETURN-CODE = 1 + 2 END-COMPUTE.
       EX. EXIT.
_ATEOF


cat >preload2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callrec IS RECURSIVE.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 filler        PIC 9 VALUE 0.
          88 first-call VALUE 0.
          88 called     VALUE 1.
       PROCEDURE        DIVISION.
       SOME-SEC SECTION.
           IF first-call
              SET called TO TRUE
              CALL 'callrec'
           END-IF
           GOBACK.
_ATEOF


cat >callee2c.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee2c.
       PROCEDURE        DIVISION.
       SOME-SEC SECTION.
       SOME-PAR.
           PERFORM OTHER-SEC
           MOVE 0 TO RETURN-CODE.
       END-PAR.
           EXIT PROGRAM.
       OTHER-SEC SECTION.
           COMPUTE RETURN-CODE = 1 + 2 END-COMPUTE.
       EX. EXIT.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6675: COB_OLD_TRACE=y \\
\$COBC -ftraceall callee1.cob"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6675"
( $at_check_trace; COB_OLD_TRACE=y \
$COBC -ftraceall callee1.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/run_misc.at:6675"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6677: COB_OLD_TRACE=y \\
\$COBC callee2.cob"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6677"
( $at_check_trace; COB_OLD_TRACE=y \
$COBC callee2.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/run_misc.at:6677"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6679: COB_OLD_TRACE=y \\
\$COBC -ftrace preload.cob"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6679"
( $at_check_trace; COB_OLD_TRACE=y \
$COBC -ftrace preload.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/run_misc.at:6679"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6681: COB_OLD_TRACE=y \\
\$COBC -ftraceall preload2.cob"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6681"
( $at_check_trace; COB_OLD_TRACE=y \
$COBC -ftraceall preload2.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/run_misc.at:6681"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6683: COB_OLD_TRACE=y \\
\$COBC -fsource-location callee2c.cob"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6683"
( $at_check_trace; COB_OLD_TRACE=y \
$COBC -fsource-location callee2c.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/run_misc.at:6683"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6685: COB_OLD_TRACE=y \\
\$COBC -x -o prog -ftraceall caller.cob"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:6685"
( $at_check_trace; COB_OLD_TRACE=y \
$COBC -x -o prog -ftraceall 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/run_misc.at:6685"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6687: COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD=\"preload\"\$PATHSEP\"preload2\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD=\"preload\"$PATHSEP\"preload2\" $COBCRUN_DIRECT ./prog" "run_misc.at:6687"
( $at_check_trace; COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD="preload"$PATHSEP"preload2" $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "Source :    'caller.cob'
Program-Id: caller           Statement: MOVE                   Line: 7
Program-Id: caller           Statement: RESET TRACE            Line: 8
Program-Id: caller           Statement: MOVE                   Line: 12
Program-Id: caller           Statement: CALL                   Line: 13
Source:     'callee1.cob'
Program-Id: callee1          Entry:     callee1                Line: 4
Program-Id: callee1          Section:   (None)                 Line: 5
Program-Id: callee1          Paragraph: (None)                 Line: 5
Program-Id: callee1          Statement: ADD                    Line: 5
Program-Id: callee1          Statement: IF                     Line: 7
Program-Id: callee1          Statement: IF                     Line: 9
Program-Id: callee1          Statement: CONTINUE               Line: 12
Program-Id: callee1          Statement: EVALUATE               Line: 14
Program-Id: callee1          Statement: WHEN                   Line: 15
Program-Id: callee1          Statement: CONTINUE               Line: 21
Program-Id: callee1          Statement: EVALUATE               Line: 23
Program-Id: callee1          Statement: WHEN                   Line: 24
Program-Id: callee1          Statement: WHEN                   Line: 27
Program-Id: callee1          Statement: CONTINUE               Line: 30
Program-Id: callee1          Statement: CALL                   Line: 32
Source :    'callee2c.cob'
Program-Id: callee2c         Statement: PERFORM                Line: 7
Program-Id: callee2c         Statement: COMPUTE                Line: 12
Program-Id: callee2c         Statement: EXIT                   Line: 13
Program-Id: callee2c         Statement: MOVE                   Line: 8
Program-Id: callee2c         Statement: EXIT PROGRAM           Line: 10
Source :    'callee1.cob'
Program-Id: callee1          Statement: CANCEL                 Line: 33
Program-Id: callee1          Statement: CALL                   Line: 33
Source:     'preload.cob'
Program-Id: callee2b         Entry:     callee2b               Line: 4
Program-Id: callee2b         Section:   SOME-SEC               Line: 5
Program-Id: callee2b         Paragraph: SOME-PAR               Line: 6
Program-Id: callee2b         Section:   OTHER-SEC              Line: 12
Program-Id: callee2b         Paragraph: (None)                 Line: 12
Program-Id: callee2b         Paragraph: EX                     Line: 14
Program-Id: callee2b         Entry:     LEAVE-ME               Line: 9
Program-Id: callee2b         Paragraph: END-PAR                Line: 10
Program-Id: callee2b         Exit:      callee2b
Source :    'callee1.cob'
Program-Id: callee1          Statement: CANCEL                 Line: 33
Program-Id: callee1          Statement: SUBTRACT               Line: 34
Program-Id: callee1          Statement: EXIT PROGRAM           Line: 35
Program-Id: callee1          Exit:      callee1
Source :    'caller.cob'
Program-Id: caller           Statement: CALL                   Line: 15
Source:     'callee1.cob'
Program-Id: callee1          Entry:     callee1                Line: 4
Program-Id: callee1          Section:   (None)                 Line: 5
Program-Id: callee1          Paragraph: (None)                 Line: 5
Program-Id: callee1          Statement: ADD                    Line: 5
Program-Id: callee1          Statement: IF                     Line: 7
Program-Id: callee1          Statement: IF                     Line: 9
Program-Id: callee1          Statement: CONTINUE               Line: 12
Program-Id: callee1          Statement: EVALUATE               Line: 14
Program-Id: callee1          Statement: WHEN                   Line: 15
Program-Id: callee1          Statement: CONTINUE               Line: 21
Program-Id: callee1          Statement: EVALUATE               Line: 23
Program-Id: callee1          Statement: WHEN                   Line: 24
Program-Id: callee1          Statement: WHEN                   Line: 27
Program-Id: callee1          Statement: CONTINUE               Line: 30
Program-Id: callee1          Statement: CALL                   Line: 32
Source :    'callee2c.cob'
Program-Id: callee2c         Statement: PERFORM                Line: 7
Program-Id: callee2c         Statement: COMPUTE                Line: 12
Program-Id: callee2c         Statement: EXIT                   Line: 13
Program-Id: callee2c         Statement: MOVE                   Line: 8
Program-Id: callee2c         Statement: EXIT PROGRAM           Line: 10
Source :    'callee1.cob'
Program-Id: callee1          Statement: CANCEL                 Line: 33
Program-Id: callee1          Statement: CALL                   Line: 33
Source:     'preload.cob'
Program-Id: callee2b         Entry:     callee2b               Line: 4
Program-Id: callee2b         Section:   SOME-SEC               Line: 5
Program-Id: callee2b         Paragraph: SOME-PAR               Line: 6
Program-Id: callee2b         Section:   OTHER-SEC              Line: 12
Program-Id: callee2b         Paragraph: (None)                 Line: 12
Program-Id: callee2b         Paragraph: EX                     Line: 14
Program-Id: callee2b         Entry:     LEAVE-ME               Line: 9
Program-Id: callee2b         Paragraph: END-PAR                Line: 10
Program-Id: callee2b         Exit:      callee2b
Source :    'callee1.cob'
Program-Id: callee1          Statement: CANCEL                 Line: 33
Program-Id: callee1          Statement: SUBTRACT               Line: 34
Program-Id: callee1          Statement: EXIT PROGRAM           Line: 35
Program-Id: callee1          Exit:      callee1
Source :    'caller.cob'
Program-Id: caller           Statement: CANCEL                 Line: 16
Program-Id: caller           Statement: CALL                   Line: 17
Source:     'preload2.cob'
Program-Id: callrec          Entry:     callrec                Line: 9
Program-Id: callrec          Section:   SOME-SEC               Line: 10
Program-Id: callrec          Paragraph: (None)                 Line: 10
Program-Id: callrec          Statement: IF                     Line: 11
Program-Id: callrec          Statement: SET                    Line: 12
Program-Id: callrec          Statement: CALL                   Line: 13
Program-Id: callrec          Entry:     callrec                Line: 9
Program-Id: callrec          Section:   SOME-SEC               Line: 10
Program-Id: callrec          Paragraph: (None)                 Line: 10
Program-Id: callrec          Statement: IF                     Line: 11
Program-Id: callrec          Statement: GOBACK                 Line: 15
Program-Id: callrec          Exit:      callrec
Program-Id: callrec          Statement: GOBACK                 Line: 15
Program-Id: callrec          Exit:      callrec
Source :    'caller.cob'
Program-Id: caller           Statement: MOVE                   Line: 18
Program-Id: caller           Statement: STOP RUN               Line: 19
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6687"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:6798: \$COBC -ftraceall callee1.cob"
at_fn_check_prepare_dynamic "$COBC -ftraceall callee1.cob" "run_misc.at:6798"
( $at_check_trace; $COBC -ftraceall callee1.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/run_misc.at:6798"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6799: \$COBC callee2.cob"
at_fn_check_prepare_dynamic "$COBC callee2.cob" "run_misc.at:6799"
( $at_check_trace; $COBC callee2.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/run_misc.at:6799"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6800: \$COBC -ftrace preload.cob"
at_fn_check_prepare_dynamic "$COBC -ftrace preload.cob" "run_misc.at:6800"
( $at_check_trace; $COBC -ftrace preload.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/run_misc.at:6800"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6801: \$COBC -ftraceall preload2.cob"
at_fn_check_prepare_dynamic "$COBC -ftraceall preload2.cob" "run_misc.at:6801"
( $at_check_trace; $COBC -ftraceall preload2.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/run_misc.at:6801"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6802: \$COBC -fsource-location callee2c.cob"
at_fn_check_prepare_dynamic "$COBC -fsource-location callee2c.cob" "run_misc.at:6802"
( $at_check_trace; $COBC -fsource-location callee2c.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/run_misc.at:6802"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6803: \$COBC -x -o prog -ftraceall caller.cob"
at_fn_check_prepare_dynamic "$COBC -x -o prog -ftraceall caller.cob" "run_misc.at:6803"
( $at_check_trace; $COBC -x -o prog -ftraceall 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/run_misc.at:6803"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:6804: COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD=\"preload\"\$PATHSEP\"preload2\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD=\"preload\"$PATHSEP\"preload2\" $COBCRUN_DIRECT ./prog" "run_misc.at:6804"
( $at_check_trace; COB_PHYSICAL_CANCEL=1 COB_PRE_LOAD="preload"$PATHSEP"preload2" $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "Source: 'caller.cob'
Program-Id:  caller
Program-Id:  caller                      MOVE                            Line:      7
Program-Id:  caller                      RESET TRACE                     Line:      8
Program-Id:  caller                      MOVE                            Line:     12
Program-Id:  caller                      CALL                            Line:     13
Source: 'callee1.cob'
Program-Id:  callee1
Program-Id:  callee1              Entry: callee1                         Line:      4
Program-Id:  callee1                     ADD                             Line:      5
Program-Id:  callee1                     IF                              Line:      7
Program-Id:  callee1                     IF                              Line:      9
Program-Id:  callee1                     CONTINUE                        Line:     12
Program-Id:  callee1                     EVALUATE                        Line:     14
Program-Id:  callee1                     WHEN                            Line:     15
Program-Id:  callee1                     CONTINUE                        Line:     21
Program-Id:  callee1                     EVALUATE                        Line:     23
Program-Id:  callee1                     WHEN                            Line:     24
Program-Id:  callee1                     WHEN                            Line:     27
Program-Id:  callee1                     CONTINUE                        Line:     30
Program-Id:  callee1                     CALL                            Line:     32
Program-Id:  callee1                     CANCEL                          Line:     33
Program-Id:  callee1                     CALL                            Line:     33
Source: 'preload.cob'
Program-Id:  callee2b
Program-Id:  callee2b             Entry: callee2b                        Line:      4
Program-Id:  callee2b           Section: SOME-SEC                        Line:      5
Program-Id:  callee2b         Paragraph: SOME-PAR                        Line:      6
Program-Id:  callee2b           Section: OTHER-SEC                       Line:     12
Program-Id:  callee2b         Paragraph: EX                              Line:     14
Program-Id:  callee2b             Entry: LEAVE-ME                        Line:     14
Program-Id:  callee2b         Paragraph: END-PAR                         Line:     10
Program-Id:  callee2b              Exit: callee2b                        Line:     10
Source: 'callee1.cob'
Program-Id:  callee1
Program-Id:  callee1                     CANCEL                          Line:     33
Program-Id:  callee1                     SUBTRACT                        Line:     34
Program-Id:  callee1                     EXIT PROGRAM                    Line:     35
Program-Id:  callee1               Exit: callee1                         Line:     35
Source: 'caller.cob'
Program-Id:  caller
Program-Id:  caller                      CALL                            Line:     15
Source: 'callee1.cob'
Program-Id:  callee1
Program-Id:  callee1              Entry: callee1                         Line:      4
Program-Id:  callee1                     ADD                             Line:      5
Program-Id:  callee1                     IF                              Line:      7
Program-Id:  callee1                     IF                              Line:      9
Program-Id:  callee1                     CONTINUE                        Line:     12
Program-Id:  callee1                     EVALUATE                        Line:     14
Program-Id:  callee1                     WHEN                            Line:     15
Program-Id:  callee1                     CONTINUE                        Line:     21
Program-Id:  callee1                     EVALUATE                        Line:     23
Program-Id:  callee1                     WHEN                            Line:     24
Program-Id:  callee1                     WHEN                            Line:     27
Program-Id:  callee1                     CONTINUE                        Line:     30
Program-Id:  callee1                     CALL                            Line:     32
Program-Id:  callee1                     CANCEL                          Line:     33
Program-Id:  callee1                     CALL                            Line:     33
Source: 'preload.cob'
Program-Id:  callee2b
Program-Id:  callee2b             Entry: callee2b                        Line:      4
Program-Id:  callee2b           Section: SOME-SEC                        Line:      5
Program-Id:  callee2b         Paragraph: SOME-PAR                        Line:      6
Program-Id:  callee2b           Section: OTHER-SEC                       Line:     12
Program-Id:  callee2b         Paragraph: EX                              Line:     14
Program-Id:  callee2b             Entry: LEAVE-ME                        Line:     14
Program-Id:  callee2b         Paragraph: END-PAR                         Line:     10
Program-Id:  callee2b              Exit: callee2b                        Line:     10
Source: 'callee1.cob'
Program-Id:  callee1
Program-Id:  callee1                     CANCEL                          Line:     33
Program-Id:  callee1                     SUBTRACT                        Line:     34
Program-Id:  callee1                     EXIT PROGRAM                    Line:     35
Program-Id:  callee1               Exit: callee1                         Line:     35
Source: 'caller.cob'
Program-Id:  caller
Program-Id:  caller                      CANCEL                          Line:     16
Program-Id:  caller                      CALL                            Line:     17
Source: 'preload2.cob'
Program-Id:  callrec
Program-Id:  callrec              Entry: callrec                         Line:      9
Program-Id:  callrec            Section: SOME-SEC                        Line:     10
Program-Id:  callrec                     IF                              Line:     11
Program-Id:  callrec                     SET                             Line:     12
Program-Id:  callrec                     CALL                            Line:     13
Program-Id:  callrec              Entry: callrec                         Line:      9
Program-Id:  callrec            Section: SOME-SEC                        Line:     10
Program-Id:  callrec                     IF                              Line:     11
Program-Id:  callrec                     GOBACK                          Line:     15
Program-Id:  callrec               Exit: callrec                         Line:     15
Program-Id:  callrec                     GOBACK                          Line:     15
Program-Id:  callrec               Exit: callrec                         Line:     15
Source: 'caller.cob'
Program-Id:  caller
Program-Id:  caller                      MOVE                            Line:     18
Program-Id:  caller                      STOP RUN                        Line:     19
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:6804"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_684
#AT_START_685
at_fn_group_banner 685 'run_misc.at:6907' \
  "Trace feature with subroutine" "                  " 4
at_xfail=no
(
  $as_echo "685. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: check if the one above is enough and either
#        remove this test or exchange by a non-IDX version
$as_echo "run_misc.at:6912" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_misc.at:6912"

cat >callsub.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. callsub.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 NUM-A     PIC 9(3) VALUE 399.
       01 NUM-B     PIC 9(3) VALUE 211.
       01 RSLT      PIC 9(5)V99.

       LINKAGE SECTION.
       01  n PIC 99.

       PROCEDURE DIVISION USING n.
       MAIN-10.
           ADD 1 TO n.
           COMPUTE RSLT = ((NUM-A / (100.55 + -0.550))
                         -  (NUM-B / (10.11 * 10 - 1.1)))
                             * (220 / 2.2) * n.
       END PROGRAM callsub.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:6936: \$COMPILE_MODULE callsub.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callsub.cob" "run_misc.at:6936"
( $at_check_trace; $COMPILE_MODULE callsub.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/run_misc.at:6936"
$at_failed && at_fn_log_failure
$at_traceon; }



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT OPTIONAL TSPFILE
           ASSIGN TO "testisam"
           ORGANIZATION INDEXED ACCESS DYNAMIC
           RECORD KEY IS CM-CUST-NUM
           ALTERNATE RECORD KEY IS CM-TELEPHONE WITH DUPLICATES
           ALTERNATE RECORD KEY IS CM-DISK WITH DUPLICATES
           FILE STATUS IS CUST-STAT.

           SELECT TSTFILE
           ASSIGN TO "testisam"
           ORGANIZATION INDEXED ACCESS DYNAMIC
           RECORD KEY IS TS-CUST-NUM
           ALTERNATE RECORD KEY IS TS-TELEPHONE WITH DUPLICATES
           ALTERNATE RECORD KEY IS TS-DISK WITH DUPLICATES
           FILE STATUS IS CUST-STAT.

           SELECT FLATFILE
           ASSIGN EXTERNAL RELFIX
           ORGANIZATION RELATIVE
           ACCESS IS RANDOM RELATIVE KEY IS REC-NUM
           FILE STATUS IS CUST-STAT.

       DATA  DIVISION.
       FILE SECTION.
       FD  TSPFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSPFL-RECORD.
           05  TSPFL-REC.
           10  CM-CUST-NUM.
             15  CM-CUST-PRE                   PICTURE X(3).
             15  CM-CUST-NNN                   PICTURE X(5).
           10  CM-STATUS                       PICTURE X.
           10  CM-COMPANY                      PICTURE X(25).
           10  CM-ADDRESS-1                    PICTURE X(25).
           10  CM-ADDRESS-2                    PICTURE X(25).
           10  CM-ADDRESS-3                    PICTURE X(25).
           10  CM-TELEPHONE                    PICTURE 9(10).
           10  CM-DP-MGR                       PICTURE X(25).
           10  CM-MACHINE                      PICTURE X(8).
           10  CM-MEMORY                       PICTURE X(4).
           10  CM-DISK                         PICTURE X(8).
           10  CM-TAPE                         PICTURE X(8).
           10  CM-NO-TERMINALS                 PICTURE 9(5).

       FD  TSTFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSTFL-RECORD.
           05  TSTFL-REC.
           10  TS-CUST-NUM                     PICTURE X(8).
           10  TS-STATUS                       PICTURE X.
           10  TS-COMPANY                      PICTURE X(25).
           10  TS-ADDRESS-1                    PICTURE X(25).
           10  TS-ADDRESS-2                    PICTURE X(25).
           10  TS-ADDRESS-3                    PICTURE X(25).
           10  TS-TELEPHONE                    PICTURE 9(10).
           10  TS-DP-MGR                       PICTURE X(25).
           10  TS-MACHINE                      PICTURE X(8).
           10  TS-MEMORY                       PICTURE X(4).
           10  TS-DISK                         PICTURE X(8).
           10  TS-TAPE                         PICTURE X(8).

       FD  FLATFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSP2-RECORD.
           10  C2-CUST-NUM                     PICTURE X(8).
           10  C2-COMPANY                      PICTURE X(25).
           10  C2-DISK                         PICTURE X(8).
           10  C2-NO-TERMINALS                 PICTURE 9(4) COMP-4.
           10  C2-PK-DATE                      PICTURE S9(14) COMP-3.

       WORKING-STORAGE SECTION.

       01  CUST-STAT.
           05  FILLER PICTURE XX.
       77  MAX-SUB           VALUE  16         PICTURE 9(5) COMP SYNC.
       77  CALL-NUM          VALUE  00         PICTURE 99.

       01  TEST-DATA.

         02  DATA-CUST-NUM-TBL.

           05  FILLER PIC X(8) VALUE "ALP00000".
           05  FILLER PIC X(8) VALUE "BET00000".
           05  FILLER PIC X(8) VALUE "GAM00000".
           05  FILLER PIC X(8) VALUE "DEL00000".
           05  FILLER PIC X(8) VALUE "EPS00000".
           05  FILLER PIC X(8) VALUE "FOR00000".
           05  FILLER PIC X(8) VALUE "GIB00000".
           05  FILLER PIC X(8) VALUE "H&J00000".
           05  FILLER PIC X(8) VALUE "INC00000".
           05  FILLER PIC X(8) VALUE "JOH00000".
           05  FILLER PIC X(8) VALUE "KON00000".
           05  FILLER PIC X(8) VALUE "LEW00000".
           05  FILLER PIC X(8) VALUE "MOR00000".
           05  FILLER PIC X(8) VALUE "NEW00000".
           05  FILLER PIC X(8) VALUE "OLD00000".
           05  FILLER PIC X(8) VALUE "PRE00000".

         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
                                       PIC X(8) OCCURS 16.
         02  DATA-COMPANY-TBL.

           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
           05  FILLER PIC X(25) VALUE "GIBRALTER LIFE INSURANCE ".
           05  FILLER PIC X(25) VALUE "H & J PLUMBING SUPPLIES  ".
           05  FILLER PIC X(25) VALUE "INCREMENTAL BACKUP CORP. ".
           05  FILLER PIC X(25) VALUE "JOHNSON BOATING SUPPLIES ".
           05  FILLER PIC X(25) VALUE "KONFLAB PLASTIC PRODUCTS.".
           05  FILLER PIC X(25) VALUE "LEWISTON GRAPHICS LTD.   ".
           05  FILLER PIC X(25) VALUE "MORNINGSIDE CARPENTRY.   ".
           05  FILLER PIC X(25) VALUE "NEW WAVE SURF SHOPS INC. ".
           05  FILLER PIC X(25) VALUE "OLD TYME PIZZA MFG. CO.  ".
           05  FILLER PIC X(25) VALUE "PRESTIGE OFFICE FURNITURE".

         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
                                       PIC X(25) OCCURS 16.
         02  DATA-ADDRESS-1-TBL.

           05  FILLER PIC X(25) VALUE "123 MAIN STREET          ".
           05  FILLER PIC X(25) VALUE "1090 2ND AVE. WEST       ".
           05  FILLER PIC X(25) VALUE "1401 JEFFERSON BLVD.     ".
           05  FILLER PIC X(25) VALUE "1620 ARIZONA WAY         ".
           05  FILLER PIC X(25) VALUE "1184 EAST FIRST STREET   ".
           05  FILLER PIC X(25) VALUE "114 JOHN F. KENNEDY AVE. ".
           05  FILLER PIC X(25) VALUE "650 LIBERTY CRESCENT     ".
           05  FILLER PIC X(25) VALUE "77 SUNSET BLVD.          ".
           05  FILLER PIC X(25) VALUE "10908 SANTA MONICA BLVD. ".
           05  FILLER PIC X(25) VALUE "1134 PARIS ROAD          ".
           05  FILLER PIC X(25) VALUE "808 NORTHWEST MAIN ST.   ".
           05  FILLER PIC X(25) VALUE "9904 QUEEN STREET        ".
           05  FILLER PIC X(25) VALUE "1709 DUNDAS CRESCENT W.  ".
           05  FILLER PIC X(25) VALUE "3240 MARIS AVENUE        ".
           05  FILLER PIC X(25) VALUE "1705 WISCONSIN ROAD      ".
           05  FILLER PIC X(25) VALUE "114A MAPLE GROVE         ".

         02  DATA-ADDRESS-1 REDEFINES DATA-ADDRESS-1-TBL
                                       PIC X(25) OCCURS 16.
         02  DATA-ADDRESS-2-TBL.

           05  FILLER PIC X(10) VALUE "NEW YORK  ".
           05  FILLER PIC X(10) VALUE "ATLANTA   ".
           05  FILLER PIC X(10) VALUE "WASHINGTON".
           05  FILLER PIC X(10) VALUE "TORONTO   ".
           05  FILLER PIC X(10) VALUE "CALGARY   ".
           05  FILLER PIC X(10) VALUE "SAN DIEGO ".
           05  FILLER PIC X(10) VALUE "LOS RIOS  ".
           05  FILLER PIC X(10) VALUE "MADISON   ".
           05  FILLER PIC X(10) VALUE "WILBUR    ".
           05  FILLER PIC X(10) VALUE "TOPEKA    ".
           05  FILLER PIC X(10) VALUE "SEATTLE   ".
           05  FILLER PIC X(10) VALUE "NEW JERSEY".
           05  FILLER PIC X(10) VALUE "FORT WAYNE".
           05  FILLER PIC X(10) VALUE "COLUMBUS  ".
           05  FILLER PIC X(10) VALUE "RICHMOND  ".
           05  FILLER PIC X(10) VALUE "WHITEPLAIN".

         02  DATA-ADDRESS-2 REDEFINES DATA-ADDRESS-2-TBL
                                       PIC X(10) OCCURS 16.
         02  DATA-ADDRESS-3-TBL.

           05  FILLER PIC X(10) VALUE "N.Y.      ".
           05  FILLER PIC X(10) VALUE "GEORGIA   ".
           05  FILLER PIC X(10) VALUE "D.C.      ".
           05  FILLER PIC X(10) VALUE "CANADA    ".
           05  FILLER PIC X(10) VALUE "CANADA    ".
           05  FILLER PIC X(10) VALUE "CALIFORNIA".
           05  FILLER PIC X(10) VALUE "NEW MEXICO".
           05  FILLER PIC X(10) VALUE "WISCONSIN ".
           05  FILLER PIC X(10) VALUE "DELAWARE  ".
           05  FILLER PIC X(10) VALUE "KANSAS    ".
           05  FILLER PIC X(10) VALUE "WASHINGTON".
           05  FILLER PIC X(10) VALUE "N.J.      ".
           05  FILLER PIC X(10) VALUE "COLORADO  ".
           05  FILLER PIC X(10) VALUE "OHIO      ".
           05  FILLER PIC X(10) VALUE "VIRGINIA  ".
           05  FILLER PIC X(10) VALUE "N.Y.      ".

         02  DATA-ADDRESS-3 REDEFINES DATA-ADDRESS-3-TBL
                                       PIC X(10) OCCURS 16.
         02  DATA-TELEPHONE-TBL.

           05  FILLER PIC 9(10) VALUE 3131234432.
           05  FILLER PIC 9(10) VALUE 4082938498.
           05  FILLER PIC 9(10) VALUE 8372487274.
           05  FILLER PIC 9(10) VALUE 4169898509.
           05  FILLER PIC 9(10) VALUE 5292398745.
           05  FILLER PIC 9(10) VALUE 8009329492.
           05  FILLER PIC 9(10) VALUE 6456445643.
           05  FILLER PIC 9(10) VALUE 6546456333.
           05  FILLER PIC 9(10) VALUE 3455445444.
           05  FILLER PIC 9(10) VALUE 6456445643.
           05  FILLER PIC 9(10) VALUE 7456434355.
           05  FILLER PIC 9(10) VALUE 6554456433.
           05  FILLER PIC 9(10) VALUE 4169898509.
           05  FILLER PIC 9(10) VALUE 7534587453.
           05  FILLER PIC 9(10) VALUE 8787458374.
           05  FILLER PIC 9(10) VALUE 4169898509.

         02  DATA-TELEPHONE REDEFINES DATA-TELEPHONE-TBL
                                       PIC 9(10) OCCURS 16.
         02  DATA-DP-MGR-TBL.

           05  FILLER PIC X(20) VALUE "MR. DAVE HARRIS     ".
           05  FILLER PIC X(20) VALUE "MS. JANICE SILCOX   ".
           05  FILLER PIC X(20) VALUE "MR. ALLAN JONES     ".
           05  FILLER PIC X(20) VALUE "MR. PETER MACKAY    ".
           05  FILLER PIC X(20) VALUE "MRS. DONNA BREWER   ".
           05  FILLER PIC X(20) VALUE "MR. MICHAEL SMYTHE  ".
           05  FILLER PIC X(20) VALUE "MR. D.A. MORRISON   ".
           05  FILLER PIC X(20) VALUE "MR. BRIAN PATTERSON ".
           05  FILLER PIC X(20) VALUE "MR. DARRYL TOWNSEND ".
           05  FILLER PIC X(20) VALUE "MS. VALERIE HARPER  ".
           05  FILLER PIC X(20) VALUE "MR. FRED MILLER     ".
           05  FILLER PIC X(20) VALUE "MR. DONALD FISCHER  ".
           05  FILLER PIC X(20) VALUE "MR. STEVEN YOURDIN  ".
           05  FILLER PIC X(20) VALUE "MS. Goldie Hawn     ".
           05  FILLER PIC X(20) VALUE "MS. ALICE WINSTON   ".
           05  FILLER PIC X(20) VALUE "MR. THOMAS JEFFERSON".

         02  DATA-DP-MGR    REDEFINES DATA-DP-MGR-TBL
                                       PIC X(20) OCCURS 16.
         02  DATA-MACHINE-TBL.

           05  FILLER PIC X(8) VALUE "UNI-9030".
           05  FILLER PIC X(8) VALUE "UNI-9040".
           05  FILLER PIC X(8) VALUE "UNI-80/3".
           05  FILLER PIC X(8) VALUE "UNI-80/5".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-9040".
           05  FILLER PIC X(8) VALUE "UNI-9040".

         02  DATA-MACHINE   REDEFINES DATA-MACHINE-TBL
                                       PIC X(8) OCCURS 16.
         02  DATA-NO-TERMINALS-TBL.

           05  FILLER PIC 9(3) COMP-3 VALUE 85.
           05  FILLER PIC 9(3) COMP-3 VALUE 34.
           05  FILLER PIC 9(3) COMP-3 VALUE 75.
           05  FILLER PIC 9(3) COMP-3 VALUE 45.
           05  FILLER PIC 9(3) COMP-3 VALUE 90.
           05  FILLER PIC 9(3) COMP-3 VALUE 107.
           05  FILLER PIC 9(3) COMP-3 VALUE 67.
           05  FILLER PIC 9(3) COMP-3 VALUE 32.
           05  FILLER PIC 9(3) COMP-3 VALUE 16.
           05  FILLER PIC 9(3) COMP-3 VALUE 34.
           05  FILLER PIC 9(3) COMP-3 VALUE 128.
           05  FILLER PIC 9(3) COMP-3 VALUE 64.
           05  FILLER PIC 9(3) COMP-3 VALUE 110.
           05  FILLER PIC 9(3) COMP-3 VALUE 324.
           05  FILLER PIC 9(3) COMP-3 VALUE 124.
           05  FILLER PIC 9(3) COMP-3 VALUE 86.

         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
                                       PIC 9(3) COMP-3 OCCURS 16.

       01  WORK-AREA.
           05  REC-NUM                         PICTURE 9(6) VALUE 0.
           05  REC-MAX                         PICTURE 9(6) VALUE 10.
           05  SUB                             PICTURE 9(4) COMP SYNC.
               88  ODD-RECORD                  VALUE 1 3 5 7 9 10 11.

           05  TSPFL-KEY                       PICTURE X(8).

       PROCEDURE DIVISION.

       MAINFILE.
           OPEN OUTPUT TSPFILE
           CLOSE TSPFILE.

           OPEN I-O TSPFILE
           MOVE '99' TO CUST-STAT
           READ  TSPFILE NEXT RECORD WITH NO LOCK
           IF CUST-STAT NOT = "10"
               DISPLAY "Error " CUST-STAT " on read of empty file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           MOVE LOW-VALUES                     TO TSPFL-RECORD.
           START TSPFILE KEY GREATER THAN CM-CUST-NUM
           IF CUST-STAT NOT = "23"
               DISPLAY "Error " CUST-STAT " starting empty file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           READ  TSPFILE NEXT RECORD WITH NO LOCK
           IF CUST-STAT NOT = "46"
               DISPLAY "Error " CUST-STAT " start/read of empty file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           DISPLAY "OK: Operations on empty file"
           CLOSE TSPFILE.

           PERFORM LOADFILE.
           PERFORM LISTFILE.



          *> check that multiple empty lines are handled correctly







           STOP RUN.

       LOADFILE.
           DISPLAY "Loading sample data file."
                            UPON CONSOLE.

           OPEN OUTPUT TSPFILE
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT
               " opening 'testisam' file" UPON CONSOLE
               STOP RUN
           END-IF.

           PERFORM 1000-LOAD-RECORD
                        VARYING SUB FROM 1 BY 1
                          UNTIL SUB > MAX-SUB.

           DISPLAY "Sample data file load complete."
                            UPON CONSOLE.
           CLOSE TSPFILE.

      *---------------------------------------------------------------*
      *         LOAD A RECORD FROM DATA TABLES                        *
      *---------------------------------------------------------------*

       1000-LOAD-RECORD.

           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
           MOVE CM-CUST-NUM                  TO TSPFL-KEY.
           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
           MOVE DATA-ADDRESS-1     (SUB)     TO CM-ADDRESS-1.
           MOVE DATA-ADDRESS-2     (SUB)     TO CM-ADDRESS-2.
           MOVE DATA-ADDRESS-3     (SUB)     TO CM-ADDRESS-3.
           MOVE DATA-TELEPHONE     (SUB)     TO CM-TELEPHONE.
           MOVE DATA-DP-MGR        (SUB)     TO CM-DP-MGR.
           MOVE DATA-MACHINE       (SUB)     TO CM-MACHINE.
           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.

           IF  ODD-RECORD
               MOVE "8417"                   TO CM-DISK
               MOVE "1600 BPI"               TO CM-TAPE
               MOVE "1MEG"                   TO CM-MEMORY
           ELSE
               MOVE "8470"                   TO CM-DISK
               MOVE "6250 BPI"               TO CM-TAPE
               MOVE "3MEG"                   TO CM-MEMORY.

           WRITE TSPFL-RECORD.
           IF CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Load - Key: " TSPFL-KEY ", Status: " CUST-STAT
                                 UPON CONSOLE.

       LISTFILE.
           DISPLAY "LIST SAMPLE FILE" UPON CONSOLE.
           OPEN INPUT TSTFILE
           MOVE SPACES                       TO TSTFL-RECORD.
           MOVE "PRE00000" TO CM-CUST-NUM.
           START TSTFILE KEY GREATER THAN OR EQUAL TO TS-CUST-NUM
           READ  TSTFILE NEXT RECORD
           READ  TSTFILE NEXT RECORD
           CLOSE TSTFILE.

           MOVE ZERO TO REC-NUM
           OPEN INPUT TSPFILE
           IF CUST-STAT NOT = "00"
               DISPLAY "ERROR " CUST-STAT " OPENING INPUT FILE"
                                             UPON CONSOLE
               STOP RUN
           END-IF.
           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE "PRE00000" TO CM-CUST-NUM.
           START TSPFILE KEY GREATER THAN OR EQUAL TO CM-CUST-NUM
           READ  TSPFILE NEXT RECORD
           READ  TSPFILE NEXT RECORD

           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE "DEL00000" TO CM-CUST-NUM.
           START TSPFILE KEY GREATER THAN CM-CUST-NUM
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " starting file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           READ  TSPFILE NEXT RECORD WITH NO LOCK
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on 1st read of file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           PERFORM UNTIL CUST-STAT NOT = "00"
                      OR REC-NUM > REC-MAX
               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK "."
                         UPON CONSOLE
               CALL "callsub" USING CALL-NUM
               READ TSPFILE NEXT RECORD
                    AT END
                        MOVE "99" TO CUST-STAT
                END-READ
                ADD 1 TO REC-NUM
           END-PERFORM
           IF CUST-STAT = "99"
               DISPLAY "Hit End of File: " CALL-NUM UPON CONSOLE
           ELSE
               DISPLAY "Stop read after: " CALL-NUM UPON CONSOLE
           END-IF.

           DISPLAY "LIST SAMPLE FILE DESCENDING" UPON CONSOLE.
           MOVE ZERO TO REC-NUM
           START TSPFILE KEY LESS THAN CM-CUST-NUM
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " starting file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           READ  TSPFILE PREVIOUS RECORD WITH NO LOCK
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on 1st read of file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           PERFORM UNTIL CUST-STAT NOT = "00"
                      OR REC-NUM > REC-MAX
               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK "."
                         UPON CONSOLE
               READ TSPFILE PREVIOUS RECORD
                    AT END
                        MOVE "99" TO CUST-STAT
                END-READ
                ADD 1 TO REC-NUM
           END-PERFORM.

           CLOSE TSPFILE.

           OPEN I-O TSPFILE.
           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
           MOVE 'X'                          TO CM-CUST-NUM (5:1).
           READ TSPFILE KEY IS CM-CUST-NUM
           IF  CUST-STAT NOT = "23"
               DISPLAY "Error " CUST-STAT " instead of 23."
                                UPON CONSOLE
           END-IF.
           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (2)       TO CM-COMPANY.
           READ TSPFILE KEY IS CM-CUST-NUM
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on primary read ."
                                UPON CONSOLE
           ELSE
               DISPLAY "Got: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK "."
                         UPON CONSOLE
           END-IF.
           READ TSPFILE NEXT RECORD
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on next read"
                                UPON CONSOLE
           ELSE
               DISPLAY "Nxt: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK "."
                         UPON CONSOLE
           END-IF.
           MOVE DATA-TELEPHONE     (7)       TO CM-TELEPHONE.
           MOVE DATA-MACHINE       (7)       TO CM-MACHINE.
           READ TSPFILE KEY IS CM-TELEPHONE
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " instead of 23"
                                UPON CONSOLE
           ELSE
               DISPLAY "Ky2: " CM-CUST-NUM " is " CM-COMPANY
                        " Mach=" CM-MACHINE "."
                         UPON CONSOLE
           END-IF.
           WRITE TSPFL-RECORD
           IF  CUST-STAT NOT = "22"
               DISPLAY "Error " CUST-STAT " instead of 22"
                                UPON CONSOLE
           ELSE
               DISPLAY "  Write: " CM-CUST-NUM " got 22 as expected"
                         UPON CONSOLE
           END-IF.
           MOVE DATA-CUST-NUM      (3)       TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (3)       TO CM-COMPANY.
           READ TSPFILE KEY IS CM-CUST-NUM
           DISPLAY "   Read: " CM-CUST-NUM " got "
                         CUST-STAT " as expected "
                         CM-NO-TERMINALS " terminals"
                         UPON CONSOLE.
           ADD 5 TO CM-NO-TERMINALS
           REWRITE TSPFL-RECORD
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " instead of 00"
                                UPON CONSOLE
           ELSE

               DISPLAY "ReWrite: " CM-CUST-NUM " got "
                       CUST-STAT " as expected "
                       CM-NO-TERMINALS " terminals"
                       UPON CONSOLE
           END-IF.
           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (2)       TO CM-COMPANY.
           READ TSPFILE KEY IS CM-CUST-NUM
           DISPLAY "   Read: " CM-CUST-NUM " got "
                         CUST-STAT " as expected "
                         CM-NO-TERMINALS " terminals"
                         UPON CONSOLE.
           MOVE DATA-CUST-NUM      (3)       TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (3)       TO CM-COMPANY.
           REWRITE TSPFL-RECORD
           IF  CUST-STAT NOT = "02"
           AND CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " instead of 00/02"
                                UPON CONSOLE
           ELSE
               DISPLAY "ReWrite: " CM-CUST-NUM " got "
                       "00/02 as expected"
                        UPON CONSOLE
           END-IF
           MOVE DATA-CUST-NUM      (6)       TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (6)       TO CM-COMPANY.
           READ TSPFILE KEY IS CM-CUST-NUM
           MOVE DATA-TELEPHONE     (7)       TO CM-TELEPHONE.
           MOVE DATA-MACHINE       (7)       TO CM-MACHINE.
           REWRITE TSPFL-RECORD
           IF  CUST-STAT NOT = "02"
           AND CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " instead of 00/02"
                                UPON CONSOLE
           ELSE
               DISPLAY "ReWrite: " CM-CUST-NUM " got "
                       "00/02 as expected"
                       UPON CONSOLE
           END-IF
           DELETE TSPFILE
           CLOSE TSPFILE.

       LOADFLAT.
           OPEN OUTPUT FLATFILE.
           PERFORM FLAT-RECORD
                        VARYING SUB FROM 1 BY 1
                          UNTIL SUB > MAX-SUB
                             OR SUB > 5.
           CLOSE FLATFILE.
           OPEN INPUT FLATFILE.
           MOVE 3 TO REC-NUM
           READ FLATFILE
           MOVE 999 TO REC-NUM
           READ FLATFILE
           CLOSE FLATFILE.

       FLAT-RECORD.

           MOVE SPACES                       TO TSP2-RECORD.
           MOVE SUB                          TO REC-NUM.
           MOVE DATA-CUST-NUM      (SUB)     TO C2-CUST-NUM.
           MOVE DATA-COMPANY       (SUB)     TO C2-COMPANY.
           MOVE DATA-NO-TERMINALS  (SUB)     TO C2-NO-TERMINALS.
           MOVE 20070319                     TO C2-PK-DATE.
           IF  ODD-RECORD
               MOVE "8417"                   TO C2-DISK
           ELSE
               MOVE "8470"                   TO C2-DISK.
           WRITE TSP2-RECORD.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:7541: \$COMPILE -ftraceall prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -ftraceall prog.cob" "run_misc.at:7541"
( $at_check_trace; $COMPILE -ftraceall 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/run_misc.at:7541"
$at_failed && at_fn_log_failure
$at_traceon; }


# first run without runtime tracing
{ set +x
$as_echo "$at_srcdir/run_misc.at:7544: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:7544"
( $at_check_trace; $COBCRUN_DIRECT ./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: Operations on empty file
Loading sample data file.
Sample data file load complete.
LIST SAMPLE FILE
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
Stop read after: 11
LIST SAMPLE FILE DESCENDING
Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=8470    .
Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6.
  Write: GIB00000 got 22 as expected
   Read: GAM00000 got 00 as expected 00075 terminals
ReWrite: GAM00000 got 00 as expected 00080 terminals
   Read: BET00000 got 00 as expected 00034 terminals
ReWrite: GAM00000 got 00/02 as expected
ReWrite: FOR00000 got 00/02 as expected
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:7544"
$at_failed && at_fn_log_failure
$at_traceon; }


# not merged yet:
#export COB_TRACE_IO=Y
#export IO_TSPFILE=trace
#export IO_TSTFILE=no-trace

{ set +x
$as_echo "$at_srcdir/run_misc.at:7589: COB_TRACE_FILE=trace.txt \\
COB_SET_TRACE=Y \\
COB_TRACE_FORMAT=\"Line: %L %S\" \\
\$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:7589"
( $at_check_trace; COB_TRACE_FILE=trace.txt \
COB_SET_TRACE=Y \
COB_TRACE_FORMAT="Line: %L %S" \
$COBCRUN_DIRECT ./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: Operations on empty file
Loading sample data file.
Sample data file load complete.
LIST SAMPLE FILE
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
Stop read after: 11
LIST SAMPLE FILE DESCENDING
Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=8470    .
Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6.
  Write: GIB00000 got 22 as expected
   Read: GAM00000 got 00 as expected 00075 terminals
ReWrite: GAM00000 got 00 as expected 00080 terminals
   Read: BET00000 got 00 as expected 00034 terminals
ReWrite: GAM00000 got 00/02 as expected
ReWrite: FOR00000 got 00/02 as expected
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:7589"
$at_failed && at_fn_log_failure
$at_traceon; }





# variant with file trace:
#AT_DATA([reference],
#[Source: 'prog.cob'
#Program-Id:  prog
#Line:    292     Entry: prog
#Line:    292 Paragraph: MAINFILE
#Line:    293            OPEN
#           OPEN OUTPUT TSPFILE -> 'testisam' Status: 00
#Line:    294            CLOSE
#           CLOSE TSPFILE Status: 00
#Line:    296            OPEN
#           OPEN I_O TSPFILE -> 'testisam' Status: 00
#Line:    297            MOVE
#Line:    298            READ
#           READ Sequential TSPFILE Status: 10
#Line:    299            IF
#Line:    304            MOVE
#Line:    305            START
#           START TSPFILE Status: 23
#           Key : ALL LOW-VALUES
#Line:    306            IF
#Line:    311            READ
#           READ Sequential TSPFILE Status: 46
#Line:    312            IF
#Line:    317            DISPLAY
#Line:    318            CLOSE
#           CLOSE TSPFILE Status: 00
#Line:    320            PERFORM
#Line:    335 Paragraph: LOADFILE
#Line:    336            DISPLAY
#Line:    339            OPEN
#           OPEN OUTPUT TSPFILE -> 'testisam' Status: 00
#Line:    340            IF
#Line:    346            PERFORM
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    373            MOVE
#Line:    374            MOVE
#Line:    375            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 00
#        Record : 'ALP00000 ALPHA ELECTRICAL CO. LTD.123 MAIN STREET          NEW YORK             '
#                 '    N.Y.                     3131234432MR. DAVE HARRIS          UNI-90301MEG8417'
#                 '    1600 BPI00085'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    377            MOVE
#Line:    378            MOVE
#Line:    379            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 00
#        Record : 'BET00000 BETA SHOE MFG. INC.      1090 2ND AVE. WEST       ATLANTA              '
#                 '    GEORGIA                  4082938498MS. JANICE SILCOX        UNI-90403MEG8470'
#                 '    6250 BPI00034'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    373            MOVE
#Line:    374            MOVE
#Line:    375            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1401 JEFFERSON BLVD.     WASHINGTON           '
#                 '    D.C.                     8372487274MR. ALLAN JONES          UNI-80/31MEG8417'
#                 '    1600 BPI00075'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    377            MOVE
#Line:    378            MOVE
#Line:    379            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'DEL00000 DELTA LUGGAGE REPAIRS    1620 ARIZONA WAY         TORONTO              '
#                 '    CANADA                   4169898509MR. PETER MACKAY         UNI-80/53MEG8470'
#                 '    6250 BPI00045'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    373            MOVE
#Line:    374            MOVE
#Line:    375            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'EPS00000 EPSILON EQUIPMENT SUPPLY 1184 EAST FIRST STREET   CALGARY              '
#                 '    CANADA                   5292398745MRS. DONNA BREWER        UNI-80/61MEG8417'
#                 '    1600 BPI00090'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    377            MOVE
#Line:    378            MOVE
#Line:    379            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
#                 '    CALIFORNIA               8009329492MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
#                 '    6250 BPI00107'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    373            MOVE
#Line:    374            MOVE
#Line:    375            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'GIB00000 GIBRALTER LIFE INSURANCE 650 LIBERTY CRESCENT     LOS RIOS             '
#                 '    NEW MEXICO               6456445643MR. D.A. MORRISON        UNI-80/61MEG8417'
#                 '    1600 BPI00067'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    377            MOVE
#Line:    378            MOVE
#Line:    379            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'H&J00000 H & J PLUMBING SUPPLIES  77 SUNSET BLVD.          MADISON              '
#                 '    WISCONSIN                6546456333MR. BRIAN PATTERSON      UNI-80/83MEG8470'
#                 '    6250 BPI00032'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    373            MOVE
#Line:    374            MOVE
#Line:    375            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'INC00000 INCREMENTAL BACKUP CORP. 10908 SANTA MONICA BLVD. WILBUR               '
#                 '    DELAWARE                 3455445444MR. DARRYL TOWNSEND      UNI-80/81MEG8417'
#                 '    1600 BPI00016'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    373            MOVE
#Line:    374            MOVE
#Line:    375            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'JOH00000 JOHNSON BOATING SUPPLIES 1134 PARIS ROAD          TOPEKA               '
#                 '    KANSAS                   6456445643MS. VALERIE HARPER       UNI-80/81MEG8417'
#                 '    1600 BPI00034'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    373            MOVE
#Line:    374            MOVE
#Line:    375            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'KON00000 KONFLAB PLASTIC PRODUCTS.808 NORTHWEST MAIN ST.   SEATTLE              '
#                 '    WASHINGTON               7456434355MR. FRED MILLER          UNI-80/81MEG8417'
#                 '    1600 BPI00128'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    377            MOVE
#Line:    378            MOVE
#Line:    379            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'LEW00000 LEWISTON GRAPHICS LTD.   9904 QUEEN STREET        NEW JERSEY           '
#                 '    N.J.                     6554456433MR. DONALD FISCHER       UNI-80/83MEG8470'
#                 '    6250 BPI00064'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    377            MOVE
#Line:    378            MOVE
#Line:    379            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'MOR00000 MORNINGSIDE CARPENTRY.   1709 DUNDAS CRESCENT W.  FORT WAYNE           '
#                 '    COLORADO                 4169898509MR. STEVEN YOURDIN       UNI-80/83MEG8470'
#                 '    6250 BPI00110'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    377            MOVE
#Line:    378            MOVE
#Line:    379            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'NEW00000 NEW WAVE SURF SHOPS INC. 3240 MARIS AVENUE        COLUMBUS             '
#                 '    OHIO                     7534587453MS. Goldie Hawn          UNI-80/83MEG8470'
#                 '    6250 BPI00324'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    377            MOVE
#Line:    378            MOVE
#Line:    379            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'OLD00000 OLD TYME PIZZA MFG. CO.  1705 WISCONSIN ROAD      RICHMOND             '
#                 '    VIRGINIA                 8787458374MS. ALICE WINSTON        UNI-90403MEG8470'
#                 '    6250 BPI00124'
#Line:    382            IF
#Line:    358 Paragraph: 1000-LOAD-RECORD
#Line:    360            MOVE
#Line:    361            MOVE
#Line:    362            MOVE
#Line:    363            MOVE
#Line:    364            MOVE
#Line:    365            MOVE
#Line:    366            MOVE
#Line:    367            MOVE
#Line:    368            MOVE
#Line:    369            MOVE
#Line:    370            MOVE
#Line:    372            IF
#Line:    377            MOVE
#Line:    378            MOVE
#Line:    379            MOVE
#Line:    381            WRITE
#           WRITE TSPFILE Status: 02
#        Record : 'PRE00000 PRESTIGE OFFICE FURNITURE114A MAPLE GROVE         WHITEPLAIN           '
#                 '    N.Y.                     4169898509MR. THOMAS JEFFERSON     UNI-90403MEG8470'
#                 '    6250 BPI00086'
#Line:    382            IF
#Line:    350            DISPLAY
#Line:    352            CLOSE
#           CLOSE TSPFILE Status: 00
#Line:    321            PERFORM
#Line:    387 Paragraph: LISTFILE
#Line:    388            DISPLAY
#Line:    389            OPEN
#Line:    390            MOVE
#Line:    391            MOVE
#Line:    392            START
#Line:    393            READ
#Line:    394            READ
#Line:    395            CLOSE
#Line:    397            MOVE
#Line:    398            OPEN
#           OPEN INPUT TSPFILE -> 'testisam' Status: 00
#Line:    399            IF
#Line:    404            MOVE
#Line:    405            MOVE
#Line:    406            START
#           START TSPFILE Status: 00
#           Key : 'PRE00000'
#Line:    407            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'PRE00000 PRESTIGE OFFICE FURNITURE114A MAPLE GROVE         WHITEPLAIN           '
#                 '    N.Y.                     4169898509MR. THOMAS JEFFERSON     UNI-90403MEG8470'
#                 '    6250 BPI00086'
#Line:    408            READ
#           READ Sequential TSPFILE Status: 10
#Line:    410            MOVE
#Line:    411            MOVE
#Line:    412            START
#           START TSPFILE Status: 00
#           Key : 'DEL00000'
#Line:    413            IF
#Line:    418            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'EPS00000 EPSILON EQUIPMENT SUPPLY 1184 EAST FIRST STREET   CALGARY              '
#                 '    CANADA                   5292398745MRS. DONNA BREWER        UNI-80/61MEG8417'
#                 '    1600 BPI00090'
#Line:    419            IF
#Line:    424            PERFORM
#Line:    426            DISPLAY
#Line:    429            CALL
#Line:    430            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
#                 '    CALIFORNIA               8009329492MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
#                 '    6250 BPI00107'
#Line:    434            ADD
#Line:    426            DISPLAY
#Line:    429            CALL
#Line:    430            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1401 JEFFERSON BLVD.     WASHINGTON           '
#                 '    D.C.                     8372487274MR. ALLAN JONES          UNI-80/31MEG8417'
#                 '    1600 BPI00075'
#Line:    434            ADD
#Line:    426            DISPLAY
#Line:    429            CALL
#Line:    430            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'GIB00000 GIBRALTER LIFE INSURANCE 650 LIBERTY CRESCENT     LOS RIOS             '
#                 '    NEW MEXICO               6456445643MR. D.A. MORRISON        UNI-80/61MEG8417'
#                 '    1600 BPI00067'
#Line:    434            ADD
#Line:    426            DISPLAY
#Line:    429            CALL
#Line:    430            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'H&J00000 H & J PLUMBING SUPPLIES  77 SUNSET BLVD.          MADISON              '
#                 '    WISCONSIN                6546456333MR. BRIAN PATTERSON      UNI-80/83MEG8470'
#                 '    6250 BPI00032'
#Line:    434            ADD
#Line:    426            DISPLAY
#Line:    429            CALL
#Line:    430            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'INC00000 INCREMENTAL BACKUP CORP. 10908 SANTA MONICA BLVD. WILBUR               '
#                 '    DELAWARE                 3455445444MR. DARRYL TOWNSEND      UNI-80/81MEG8417'
#                 '    1600 BPI00016'
#Line:    434            ADD
#Line:    426            DISPLAY
#Line:    429            CALL
#Line:    430            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'JOH00000 JOHNSON BOATING SUPPLIES 1134 PARIS ROAD          TOPEKA               '
#                 '    KANSAS                   6456445643MS. VALERIE HARPER       UNI-80/81MEG8417'
#                 '    1600 BPI00034'
#Line:    434            ADD
#Line:    426            DISPLAY
#Line:    429            CALL
#Line:    430            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'KON00000 KONFLAB PLASTIC PRODUCTS.808 NORTHWEST MAIN ST.   SEATTLE              '
#                 '    WASHINGTON               7456434355MR. FRED MILLER          UNI-80/81MEG8417'
#                 '    1600 BPI00128'
#Line:    434            ADD
#Line:    426            DISPLAY
#Line:    429            CALL
#Line:    430            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'LEW00000 LEWISTON GRAPHICS LTD.   9904 QUEEN STREET        NEW JERSEY           '
#                 '    N.J.                     6554456433MR. DONALD FISCHER       UNI-80/83MEG8470'
#                 '    6250 BPI00064'
#Line:    434            ADD
#Line:    426            DISPLAY
#Line:    429            CALL
#Line:    430            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'MOR00000 MORNINGSIDE CARPENTRY.   1709 DUNDAS CRESCENT W.  FORT WAYNE           '
#                 '    COLORADO                 4169898509MR. STEVEN YOURDIN       UNI-80/83MEG8470'
#                 '    6250 BPI00110'
#Line:    434            ADD
#Line:    426            DISPLAY
#Line:    429            CALL
#Line:    430            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'NEW00000 NEW WAVE SURF SHOPS INC. 3240 MARIS AVENUE        COLUMBUS             '
#                 '    OHIO                     7534587453MS. Goldie Hawn          UNI-80/83MEG8470'
#                 '    6250 BPI00324'
#Line:    434            ADD
#Line:    426            DISPLAY
#Line:    429            CALL
#Line:    430            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'OLD00000 OLD TYME PIZZA MFG. CO.  1705 WISCONSIN ROAD      RICHMOND             '
#                 '    VIRGINIA                 8787458374MS. ALICE WINSTON        UNI-90403MEG8470'
#                 '    6250 BPI00124'
#Line:    434            ADD
#Line:    436            IF
#Line:    439            DISPLAY
#Line:    442            DISPLAY
#Line:    443            MOVE
#Line:    444            START
#           START TSPFILE Status: 00
#           Key : 'OLD00000'
#Line:    445            IF
#Line:    450            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'NEW00000 NEW WAVE SURF SHOPS INC. 3240 MARIS AVENUE        COLUMBUS             '
#                 '    OHIO                     7534587453MS. Goldie Hawn          UNI-80/83MEG8470'
#                 '    6250 BPI00324'
#Line:    451            IF
#Line:    456            PERFORM
#Line:    458            DISPLAY
#Line:    461            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'MOR00000 MORNINGSIDE CARPENTRY.   1709 DUNDAS CRESCENT W.  FORT WAYNE           '
#                 '    COLORADO                 4169898509MR. STEVEN YOURDIN       UNI-80/83MEG8470'
#                 '    6250 BPI00110'
#Line:    465            ADD
#Line:    458            DISPLAY
#Line:    461            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'LEW00000 LEWISTON GRAPHICS LTD.   9904 QUEEN STREET        NEW JERSEY           '
#                 '    N.J.                     6554456433MR. DONALD FISCHER       UNI-80/83MEG8470'
#                 '    6250 BPI00064'
#Line:    465            ADD
#Line:    458            DISPLAY
#Line:    461            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'KON00000 KONFLAB PLASTIC PRODUCTS.808 NORTHWEST MAIN ST.   SEATTLE              '
#                 '    WASHINGTON               7456434355MR. FRED MILLER          UNI-80/81MEG8417'
#                 '    1600 BPI00128'
#Line:    465            ADD
#Line:    458            DISPLAY
#Line:    461            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'JOH00000 JOHNSON BOATING SUPPLIES 1134 PARIS ROAD          TOPEKA               '
#                 '    KANSAS                   6456445643MS. VALERIE HARPER       UNI-80/81MEG8417'
#                 '    1600 BPI00034'
#Line:    465            ADD
#Line:    458            DISPLAY
#Line:    461            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'INC00000 INCREMENTAL BACKUP CORP. 10908 SANTA MONICA BLVD. WILBUR               '
#                 '    DELAWARE                 3455445444MR. DARRYL TOWNSEND      UNI-80/81MEG8417'
#                 '    1600 BPI00016'
#Line:    465            ADD
#Line:    458            DISPLAY
#Line:    461            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'H&J00000 H & J PLUMBING SUPPLIES  77 SUNSET BLVD.          MADISON              '
#                 '    WISCONSIN                6546456333MR. BRIAN PATTERSON      UNI-80/83MEG8470'
#                 '    6250 BPI00032'
#Line:    465            ADD
#Line:    458            DISPLAY
#Line:    461            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'GIB00000 GIBRALTER LIFE INSURANCE 650 LIBERTY CRESCENT     LOS RIOS             '
#                 '    NEW MEXICO               6456445643MR. D.A. MORRISON        UNI-80/61MEG8417'
#                 '    1600 BPI00067'
#Line:    465            ADD
#Line:    458            DISPLAY
#Line:    461            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1401 JEFFERSON BLVD.     WASHINGTON           '
#                 '    D.C.                     8372487274MR. ALLAN JONES          UNI-80/31MEG8417'
#                 '    1600 BPI00075'
#Line:    465            ADD
#Line:    458            DISPLAY
#Line:    461            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
#                 '    CALIFORNIA               8009329492MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
#                 '    6250 BPI00107'
#Line:    465            ADD
#Line:    458            DISPLAY
#Line:    461            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'EPS00000 EPSILON EQUIPMENT SUPPLY 1184 EAST FIRST STREET   CALGARY              '
#                 '    CANADA                   5292398745MRS. DONNA BREWER        UNI-80/61MEG8417'
#                 '    1600 BPI00090'
#Line:    465            ADD
#Line:    458            DISPLAY
#Line:    461            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'DEL00000 DELTA LUGGAGE REPAIRS    1620 ARIZONA WAY         TORONTO              '
#                 '    CANADA                   4169898509MR. PETER MACKAY         UNI-80/53MEG8470'
#                 '    6250 BPI00045'
#Line:    465            ADD
#Line:    468            CLOSE
#           CLOSE TSPFILE Status: 00
#Line:    470            OPEN
#           OPEN I_O TSPFILE -> 'testisam' Status: 00
#Line:    471            MOVE
#Line:    472            MOVE
#Line:    473            MOVE
#Line:    474            READ
#           READ TSPFILE Status: 23
#           Key : 'BET0X000'
#Line:    475            IF
#Line:    479            MOVE
#Line:    480            MOVE
#Line:    481            READ
#           READ TSPFILE Status: 00
#        Record : 'BET00000 BETA SHOE MFG. INC.      1090 2ND AVE. WEST       ATLANTA              '
#                 '    GEORGIA                  4082938498MS. JANICE SILCOX        UNI-90403MEG8470'
#                 '    6250 BPI00034'
#           Key : 'BET00000'
#Line:    482            IF
#Line:    486            DISPLAY
#Line:    490            READ
#           READ Sequential TSPFILE Status: 00
#        Record : 'DEL00000 DELTA LUGGAGE REPAIRS    1620 ARIZONA WAY         TORONTO              '
#                 '    CANADA                   4169898509MR. PETER MACKAY         UNI-80/53MEG8470'
#                 '    6250 BPI00045'
#Line:    491            IF
#Line:    495            DISPLAY
#Line:    499            MOVE
#Line:    500            MOVE
#Line:    501            READ
#           READ TSPFILE Status: 00
#        Record : 'GIB00000 GIBRALTER LIFE INSURANCE 650 LIBERTY CRESCENT     LOS RIOS             '
#                 '    NEW MEXICO               6456445643MR. D.A. MORRISON        UNI-80/61MEG8417'
#                 '    1600 BPI00067'
#           Key :  6456445643
#Line:    502            IF
#Line:    506            DISPLAY
#Line:    510            WRITE
#           WRITE TSPFILE Status: 22
#        Record : 'GIB00000 GIBRALTER LIFE INSURANCE 650 LIBERTY CRESCENT     LOS RIOS             '
#                 '    NEW MEXICO               6456445643MR. D.A. MORRISON        UNI-80/61MEG8417'
#                 '    1600 BPI00067'
#Line:    511            IF
#Line:    515            DISPLAY
#Line:    518            MOVE
#Line:    519            MOVE
#Line:    520            READ
#           READ TSPFILE Status: 00
#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1401 JEFFERSON BLVD.     WASHINGTON           '
#                 '    D.C.                     8372487274MR. ALLAN JONES          UNI-80/31MEG8417'
#                 '    1600 BPI00075'
#           Key : 'GAM00000'
#Line:    521            DISPLAY
#Line:    525            ADD
#Line:    526            REWRITE
#           REWRITE TSPFILE Status: 00
#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1401 JEFFERSON BLVD.     WASHINGTON           '
#                 '    D.C.                     8372487274MR. ALLAN JONES          UNI-80/31MEG8417'
#                 '    1600 BPI00080'
#Line:    527            IF
#Line:    532            DISPLAY
#Line:    537            MOVE
#Line:    538            MOVE
#Line:    539            READ
#           READ TSPFILE Status: 00
#        Record : 'BET00000 BETA SHOE MFG. INC.      1090 2ND AVE. WEST       ATLANTA              '
#                 '    GEORGIA                  4082938498MS. JANICE SILCOX        UNI-90403MEG8470'
#                 '    6250 BPI00034'
#           Key : 'BET00000'
#Line:    540            DISPLAY
#Line:    544            MOVE
#Line:    545            MOVE
#Line:    546            REWRITE
#           REWRITE TSPFILE Status: 02
#        Record : 'GAM00000 GAMMA X-RAY TECHNOLOGY   1090 2ND AVE. WEST       ATLANTA              '
#                 '    GEORGIA                  4082938498MS. JANICE SILCOX        UNI-90403MEG8470'
#                 '    6250 BPI00034'
#Line:    547            IF
#Line:    552            DISPLAY
#Line:    556            MOVE
#Line:    557            MOVE
#Line:    558            READ
#           READ TSPFILE Status: 00
#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
#                 '    CALIFORNIA               8009329492MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
#                 '    6250 BPI00107'
#           Key : 'FOR00000'
#Line:    559            MOVE
#Line:    560            MOVE
#Line:    561            REWRITE
#           REWRITE TSPFILE Status: 02
#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
#                 '    CALIFORNIA               6456445643MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
#                 '    6250 BPI00107'
#Line:    562            IF
#Line:    567            DISPLAY
#Line:    571            DELETE
#           DELETE TSPFILE Status: 00
#        Record : 'FOR00000 FORTUNE COOKIE COMPANY   114 JOHN F. KENNEDY AVE. SAN DIEGO            '
#                 '    CALIFORNIA               6456445643MR. MICHAEL SMYTHE       UNI-80/63MEG8470'
#                 '    6250 BPI00107'
#Line:    572            CLOSE
#           CLOSE TSPFILE Status: 00
#Line:    333            STOP RUN
#])

# variant without file trace


cat >reference <<'_ATEOF'
Source: 'prog.cob'
Program-Id:  prog
Line:    290     Entry: prog
Line:    292 Paragraph: MAINFILE
Line:    293            OPEN
Line:    294            CLOSE
Line:    296            OPEN
Line:    297            MOVE
Line:    298            READ
Line:    299            IF
Line:    304            MOVE
Line:    305            START
Line:    306            IF
Line:    311            READ
Line:    312            IF
Line:    317            DISPLAY
Line:    318            CLOSE
Line:    320            PERFORM
Line:    335 Paragraph: LOADFILE
Line:    336            DISPLAY
Line:    339            OPEN
Line:    340            IF
Line:    346            PERFORM
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    373            MOVE
Line:    374            MOVE
Line:    375            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    377            MOVE
Line:    378            MOVE
Line:    379            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    373            MOVE
Line:    374            MOVE
Line:    375            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    377            MOVE
Line:    378            MOVE
Line:    379            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    373            MOVE
Line:    374            MOVE
Line:    375            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    377            MOVE
Line:    378            MOVE
Line:    379            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    373            MOVE
Line:    374            MOVE
Line:    375            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    377            MOVE
Line:    378            MOVE
Line:    379            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    373            MOVE
Line:    374            MOVE
Line:    375            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    373            MOVE
Line:    374            MOVE
Line:    375            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    373            MOVE
Line:    374            MOVE
Line:    375            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    377            MOVE
Line:    378            MOVE
Line:    379            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    377            MOVE
Line:    378            MOVE
Line:    379            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    377            MOVE
Line:    378            MOVE
Line:    379            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    377            MOVE
Line:    378            MOVE
Line:    379            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    358 Paragraph: 1000-LOAD-RECORD
Line:    360            MOVE
Line:    361            MOVE
Line:    362            MOVE
Line:    363            MOVE
Line:    364            MOVE
Line:    365            MOVE
Line:    366            MOVE
Line:    367            MOVE
Line:    368            MOVE
Line:    369            MOVE
Line:    370            MOVE
Line:    372            IF
Line:    377            MOVE
Line:    378            MOVE
Line:    379            MOVE
Line:    381            WRITE
Line:    382            IF
Line:    350            DISPLAY
Line:    352            CLOSE
Line:    321            PERFORM
Line:    387 Paragraph: LISTFILE
Line:    388            DISPLAY
Line:    389            OPEN
Line:    390            MOVE
Line:    391            MOVE
Line:    392            START
Line:    393            READ
Line:    394            READ
Line:    395            CLOSE
Line:    397            MOVE
Line:    398            OPEN
Line:    399            IF
Line:    404            MOVE
Line:    405            MOVE
Line:    406            START
Line:    407            READ
Line:    408            READ
Line:    410            MOVE
Line:    411            MOVE
Line:    412            START
Line:    413            IF
Line:    418            READ
Line:    419            IF
Line:    424            PERFORM
Line:    426            DISPLAY
Line:    429            CALL
Line:    430            READ
Line:    434            ADD
Line:    426            DISPLAY
Line:    429            CALL
Line:    430            READ
Line:    434            ADD
Line:    426            DISPLAY
Line:    429            CALL
Line:    430            READ
Line:    434            ADD
Line:    426            DISPLAY
Line:    429            CALL
Line:    430            READ
Line:    434            ADD
Line:    426            DISPLAY
Line:    429            CALL
Line:    430            READ
Line:    434            ADD
Line:    426            DISPLAY
Line:    429            CALL
Line:    430            READ
Line:    434            ADD
Line:    426            DISPLAY
Line:    429            CALL
Line:    430            READ
Line:    434            ADD
Line:    426            DISPLAY
Line:    429            CALL
Line:    430            READ
Line:    434            ADD
Line:    426            DISPLAY
Line:    429            CALL
Line:    430            READ
Line:    434            ADD
Line:    426            DISPLAY
Line:    429            CALL
Line:    430            READ
Line:    434            ADD
Line:    426            DISPLAY
Line:    429            CALL
Line:    430            READ
Line:    434            ADD
Line:    436            IF
Line:    439            DISPLAY
Line:    442            DISPLAY
Line:    443            MOVE
Line:    444            START
Line:    445            IF
Line:    450            READ
Line:    451            IF
Line:    456            PERFORM
Line:    458            DISPLAY
Line:    461            READ
Line:    465            ADD
Line:    458            DISPLAY
Line:    461            READ
Line:    465            ADD
Line:    458            DISPLAY
Line:    461            READ
Line:    465            ADD
Line:    458            DISPLAY
Line:    461            READ
Line:    465            ADD
Line:    458            DISPLAY
Line:    461            READ
Line:    465            ADD
Line:    458            DISPLAY
Line:    461            READ
Line:    465            ADD
Line:    458            DISPLAY
Line:    461            READ
Line:    465            ADD
Line:    458            DISPLAY
Line:    461            READ
Line:    465            ADD
Line:    458            DISPLAY
Line:    461            READ
Line:    465            ADD
Line:    458            DISPLAY
Line:    461            READ
Line:    465            ADD
Line:    458            DISPLAY
Line:    461            READ
Line:    465            ADD
Line:    468            CLOSE
Line:    470            OPEN
Line:    471            MOVE
Line:    472            MOVE
Line:    473            MOVE
Line:    474            READ
Line:    475            IF
Line:    479            MOVE
Line:    480            MOVE
Line:    481            READ
Line:    482            IF
Line:    486            DISPLAY
Line:    490            READ
Line:    491            IF
Line:    495            DISPLAY
Line:    499            MOVE
Line:    500            MOVE
Line:    501            READ
Line:    502            IF
Line:    506            DISPLAY
Line:    510            WRITE
Line:    511            IF
Line:    515            DISPLAY
Line:    518            MOVE
Line:    519            MOVE
Line:    520            READ
Line:    521            DISPLAY
Line:    525            ADD
Line:    526            REWRITE
Line:    527            IF
Line:    532            DISPLAY
Line:    537            MOVE
Line:    538            MOVE
Line:    539            READ
Line:    540            DISPLAY
Line:    544            MOVE
Line:    545            MOVE
Line:    546            REWRITE
Line:    547            IF
Line:    552            DISPLAY
Line:    556            MOVE
Line:    557            MOVE
Line:    558            READ
Line:    559            MOVE
Line:    560            MOVE
Line:    561            REWRITE
Line:    562            IF
Line:    567            DISPLAY
Line:    571            DELETE
Line:    572            CLOSE
Line:    333            STOP RUN
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:8831: diff reference trace.txt"
at_fn_check_prepare_trace "run_misc.at:8831"
( $at_check_trace; diff reference trace.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:8831"
$at_failed && at_fn_log_failure  \
"./trace.txt"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:8833: \$COMPILE -ftrace prog.cob -o prog_s"
at_fn_check_prepare_dynamic "$COMPILE -ftrace prog.cob -o prog_s" "run_misc.at:8833"
( $at_check_trace; $COMPILE -ftrace prog.cob -o prog_s
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:8833"
$at_failed && at_fn_log_failure  \
"./trace.txt"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:8835: COB_TRACE_FILE=+trace_append.txt \\
COB_SET_TRACE=Y \\
COB_TRACE_FORMAT=\"%S and now ... %L\" \\
\$COBCRUN_DIRECT ./prog_s"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:8835"
( $at_check_trace; COB_TRACE_FILE=+trace_append.txt \
COB_SET_TRACE=Y \
COB_TRACE_FORMAT="%S and now ... %L" \
$COBCRUN_DIRECT ./prog_s
) >>"$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: Operations on empty file
Loading sample data file.
Sample data file load complete.
LIST SAMPLE FILE
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
Stop read after: 11
LIST SAMPLE FILE DESCENDING
Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=8470    .
Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6.
  Write: GIB00000 got 22 as expected
   Read: GAM00000 got 00 as expected 00075 terminals
ReWrite: GAM00000 got 00 as expected 00080 terminals
   Read: BET00000 got 00 as expected 00034 terminals
ReWrite: GAM00000 got 00/02 as expected
ReWrite: FOR00000 got 00/02 as expected
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:8835"
$at_failed && at_fn_log_failure  \
"./trace.txt"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:8878: COB_TRACE_FILE=+trace_append.txt \\
COB_SET_TRACE=Y \\
COB_TRACE_FORMAT=\"%S - %L\"\\
\$COBCRUN_DIRECT ./prog_s"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:8878"
( $at_check_trace; COB_TRACE_FILE=+trace_append.txt \
COB_SET_TRACE=Y \
COB_TRACE_FORMAT="%S - %L"\
$COBCRUN_DIRECT ./prog_s
) >>"$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: Operations on empty file
Loading sample data file.
Sample data file load complete.
LIST SAMPLE FILE
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
Stop read after: 11
LIST SAMPLE FILE DESCENDING
Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=8470    .
Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6.
  Write: GIB00000 got 22 as expected
   Read: GAM00000 got 00 as expected 00075 terminals
ReWrite: GAM00000 got 00 as expected 00080 terminals
   Read: BET00000 got 00 as expected 00034 terminals
ReWrite: GAM00000 got 00/02 as expected
ReWrite: FOR00000 got 00/02 as expected
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:8878"
$at_failed && at_fn_log_failure  \
"./trace.txt"
$at_traceon; }



cat >reference_append <<'_ATEOF'
Source: 'prog.cob'
Program-Id:  prog
    Entry: prog                            and now ...    290
Paragraph: MAINFILE                        and now ...    292
Paragraph: LOADFILE                        and now ...    335
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: 1000-LOAD-RECORD                and now ...    358
Paragraph: LISTFILE                        and now ...    387
Source: 'prog.cob'
Program-Id:  prog
    Entry: prog                            -    290
Paragraph: MAINFILE                        -    292
Paragraph: LOADFILE                        -    335
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: 1000-LOAD-RECORD                -    358
Paragraph: LISTFILE                        -    387
_ATEOF




{ set +x
$as_echo "$at_srcdir/run_misc.at:8971: diff reference_append trace_append.txt"
at_fn_check_prepare_trace "run_misc.at:8971"
( $at_check_trace; diff reference_append trace_append.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:8971"
$at_failed && at_fn_log_failure  \
"./trace.txt" \
"./trace_append.txt"
$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_685
#AT_START_686
at_fn_group_banner 686 'run_misc.at:8976' \
  "stack and dump feature" "                         " 4
at_xfail=no
(
  $as_echo "686. $at_setup_line: testing $at_desc ..."
  $at_traceon

#AT_KEYWORDS([Dump])

cat >./cpyabrt <<'_ATEOF'

            MOVE "Quick brown fox jumped over the dog"
              TO TSTTAILX (1:40).
            MOVE CM-COMPANY TO TSTTAILX (42:20).
      *     DISPLAY ':' X ':'.
      *     DISPLAY CM-COMPANY.
      *     DISPLAY '>' CM-COMPANY '<'.
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT FLATFILE ASSIGN EXTERNAL RELFIX
           ORGANIZATION RELATIVE
           ACCESS IS SEQUENTIAL RELATIVE KEY IS REC-NUM
           FILE STATUS IS CUST-STAT.

       DATA  DIVISION.
       FILE SECTION.
       FD  FLATFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSPFL-RECORD.
           10  CM-CUST-NUM                     PICTURE X(8).
           10  CM-COMPANY                      PICTURE X(25).
           10  CM-DISK                         PICTURE X(8).
           10  CM-NO-TERMINALS                 PICTURE 9(4).

       WORKING-STORAGE SECTION.
       77  MAX-SUB           VALUE  6          PICTURE 9(4) COMP SYNC.
       77  CUST-STAT                           PICTURE X(2).
       77  REC-NUM           VALUE  1          PICTURE 9(4).
       01  BIN                      PIC 9(9) BINARY VALUE 0.

       01  TEST-DATA.
         02  DATA-CUST-NUM-TBL.
           05  FILLER PIC X(8) VALUE "ALP00000".
           05  FILLER PIC X(8) VALUE "BET00000".
           05  FILLER PIC X(8) VALUE "DEL00000".
           05  FILLER PIC X(8) VALUE "EPS00000".
           05  FILLER PIC X(8) VALUE "FOR00000".
           05  FILLER PIC X(8) VALUE "GAM00000".

         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
                                       PIC X(8) OCCURS 6.
         02  DATA-COMPANY-TBL.
           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
                                       PIC X(25) OCCURS 6.
         02  DATA-ADDRESS-2-TBL.
           05  FILLER PIC X(10) VALUE "ATLANTA   ".
           05  FILLER PIC X(10) VALUE "CALGARY   ".
           05  FILLER PIC X(10) VALUE "NEW YORK  ".
           05  FILLER PIC X(10) VALUE "TORONTO   ".
           05  FILLER PIC X(10) VALUE "WASHINGTON".
           05  FILLER PIC X(10) VALUE "WHITEPLAIN".
         02  DATA-ADDRESS   REDEFINES DATA-ADDRESS-2-TBL
                                       PIC X(10) OCCURS 6.

         02  DATA-NO-TERMINALS-TBL.
           05  FILLER PIC 9(3) COMP-3 VALUE 10.
           05  FILLER PIC 9(3) COMP-3 VALUE 13.
           05  FILLER PIC 9(3) COMP-3 VALUE 75.
           05  FILLER PIC 9(3) COMP-3 VALUE 10.
           05  FILLER PIC 9(3) COMP-3 VALUE 90.
           05  FILLER PIC 9(3) COMP-3 VALUE 254.
         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
                                       PIC 9(3) COMP-3 OCCURS 6.
       01  WORK-AREA IS EXTERNAL.
           05  SUB                             PICTURE 9(4) COMP SYNC.
               88  ODD-RECORD                  VALUE 1 3 5.
       01  SUMS-NON-STD-OCCURS PIC S9(15)V9(03) OCCURS 8 VALUE -42.345.

       PROCEDURE DIVISION.

           PERFORM LOADFILE.

           OPEN INPUT FLATFILE.
           READ FLATFILE.

       MAIN-100.
           PERFORM CALL-SUB-1.
           PERFORM CALL-SUB-2.
           PERFORM CALL-IT-OMIT.
           STOP RUN.

       LOADFILE.
           OPEN OUTPUT FLATFILE.

           PERFORM LOAD-RECORD
                        VARYING SUB FROM 1 BY 1
                          UNTIL SUB > MAX-SUB.

           CLOSE FLATFILE.

       LOAD-RECORD.

           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.
           IF  ODD-RECORD
               MOVE "8417"                   TO CM-DISK
           ELSE
               MOVE "8470"                   TO CM-DISK.
           WRITE TSPFL-RECORD.

       CALL-SUB-1 SECTION.
           CALL "sub1" USING bin, TSPFL-RECORD.

       CALL-SUB-2 SECTION.
           MOVE 4096 TO bin, SUMS-NON-STD-OCCURS (2)
           CALL "sub2" USING bin, TSPFL-RECORD.

       CALL-IT-OMIT SECTION.
           MOVE 5440 TO bin, SUMS-NON-STD-OCCURS (3)
           CALL "sub2" USING bin, TSPFL-RECORD.

           END PROGRAM prog.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. sub1.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  ZRO PIC 9(9) BINARY VALUE 0.
       01  HEXV PIC X  COMP-X.
       01  HEXC REDEFINES HEXV PIC X.

       01 TEST-BASED BASED.
          05 TEST-BASED-SUB PIC X(00000100000).

       01 TEST-ALLOCED BASED.
          05 TEST-ALLOCED-SUB1 PIC X(010).
          05 TEST-ALLOCED-SUB2 PIC 9(006).

       01  IDX PIC 9(9) BINARY VALUE 0.
       01  TSTREC.
         05  TSTDEP  PIC XXX.
         05  TSTX OCCURS 4 TIMES.
           15  TSTG-1 PIC 99.
           15  TSTX-2 PIC XX OCCURS 4 TIMES.
         05  TSTTAIL1  PIC 99.
         05  TSTCOMP3  PIC 9(5) COMP-3.
         05  TSTLONG   PIC X(100).
         05  TSTHEX    PIC X(100).
         05  TSTHEX2   PIC X(60).
         05  TSTTAILX  PIC X(80).

       LINKAGE SECTION.
       01  X  PIC 9(9) BINARY.
       01  TSPFL-RECORD.
           10  CM-CUST-NUM                     PICTURE X(8).
           10  CM-COMPANY                      PICTURE X(25).
           10  CM-DISK                         PICTURE X(8).
           10  CM-NO-TERMINALS                 PICTURE 9(4).

       PROCEDURE DIVISION USING X, TSPFL-RECORD.
       MAIN-1 SECTION.
            MOVE ALL "X" TO TSTREC.
            MOVE 1 TO TSTG-1 (1).
            MOVE 2 TO TSTG-1 (2).
            MOVE 3 TO TSTG-1 (3).
            MOVE 'A' TO TSTX-2 (1,1).
            MOVE 'B' TO TSTX-2 (2,1).
            MOVE 'C' TO TSTX-2 (3,1).
            MOVE 'xx' TO TSTX-2 (1,4).
            MOVE 'yy' TO TSTX-2 (2,4).
            MOVE 'zz' TO TSTX-2 (3,4).
            MOVE SPACES TO TSTX-2 (1,3).
            MOVE HIGH-VALUES TO TSTX (4).
            MOVE LOW-VALUES TO TSTX-2 (2,3).
            MOVE HIGH-VALUES TO TSTX-2 (3,3).
            MOVE "Quick brown fox jumped over the dog"
              TO TSTLONG, TSTLONG (50:36).
            MOVE "Quicker grey fox jumped the cougar"
              TO TSTHEX (1:35).
       MAIN-2.
            MOVE 17 TO HEXV.
            MOVE HEXC TO TSTHEX (39:1).
            MOVE HEXC TO TSTTAIL1 (2:1).
            MOVE 7 TO HEXV.
            MOVE HEXC TO TSTHEX (47:1).
            MOVE 13 TO HEXV.
            MOVE HEXC TO TSTHEX (59:1).
            MOVE 0 TO HEXV.
            MOVE HEXC TO TSTHEX2 (39:1), TSTHEX2 (10:1).
            MOVE 9 TO HEXV.
            MOVE HEXC TO TSTHEX2 (47:1).
            MOVE '\' TO TSTHEX2 (32:1).
            MOVE 13 TO HEXV.
            MOVE HEXC TO TSTHEX2 (59:1).
            MOVE 'A' TO TSTHEX2 (54:1).
            MOVE LOW-VALUES TO TSTTAILX
            ADD 1 TO X.
            DISPLAY "X is " X.
            ALLOCATE TEST-ALLOCED INITIALIZED.
            COPY cpyabrt.
            IF ADDRESS OF TEST-BASED NOT = NULL
              DISPLAY TEST-BASED-SUB
            END-IF.
            GOBACK.
       END PROGRAM sub1.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. sub2.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  ZRO PIC 9(9) BINARY VALUE 0.
       01  HEXV PIC X  COMP-X.
       01  HEXC REDEFINES HEXV PIC X.

       01  IDX PIC 9(9) BINARY VALUE 0.
       01  TSTREC.
         05  TSTDEP  PIC XXX.
         05  TSTX OCCURS 4 TIMES.
           15  TSTG-1 PIC 99.
           15  TSTX-2 PIC XX OCCURS 4 TIMES.
         05  TSTTAIL1  PIC 99.
         05  TSTCOMP3  PIC 9(5) COMP-3.
         05  TSTLONG   PIC X(100).
         05  TSTHEX    PIC X(100).
         05  TSTHEX2   PIC X(60).
         05  TSTTAILX  PIC X(80).

       01  BASED-RECORD BASED.
           10  B-NUM              PICTURE 9(4) VALUE 123.
           10  B-DISK             PICTURE X(8) VALUE "marvdisc".
           10  B-NO-TERMINALS     PICTURE 9(4).
       77  BASED-NEVER-SET        PIC     X    BASED.

       LINKAGE SECTION.
       01  X  PIC 9(9) BINARY.
       01  TSPFL-RECORD.
           10  CM-CUST-NUM        PICTURE X(8).
           10  CM-COMPANY         PICTURE X(25).
           10  CM-DISK            PICTURE X(8).
           10  CM-NO-TERMINALS    PICTURE 9(4).
       77  DYNAMIC-NUM            PICTURE 9(4).

       PROCEDURE DIVISION USING X, TSPFL-RECORD.

           IF ADDRESS OF BASED-RECORD = NULL
              ALLOCATE BASED-RECORD INITIALIZED
           ELSE
              SET ADDRESS OF DYNAMIC-NUM TO ADDRESS OF BASED-RECORD
              ADD 1 TO B-NUM
           END-IF

           IF X = 5440
               CALL "sub1" USING X, OMITTED.
           MOVE ALL "X" TO TSTREC.
           MOVE 1 TO TSTG-1 (1).
           MOVE 2 TO TSTG-1 (2).
           MOVE 3 TO TSTG-1 (3).
           MOVE 'A' TO TSTX-2 (1,1).
           MOVE 'B' TO TSTX-2 (2,1).
           MOVE 'C' TO TSTX-2 (3,1).
           MOVE 'xx' TO TSTX-2 (1,4).
           MOVE 'yy' TO TSTX-2 (2,4).
           MOVE 'zz' TO TSTX-2 (3,4).
           MOVE SPACES TO TSTX-2 (1,3).
           MOVE HIGH-VALUES TO TSTX (4).
           MOVE LOW-VALUES TO TSTX-2 (2,3).
           MOVE HIGH-VALUES TO TSTX-2 (3,3).
           MOVE "Quick brown fox jumped over the dog"
             TO TSTLONG, TSTLONG (50:36).
           MOVE "Quicker grey fox jumped the cougar"
             TO TSTHEX (1:35).
           MOVE 17 TO HEXV.
           MOVE HEXC TO TSTHEX (39:1).
           MOVE HEXC TO TSTTAIL1 (2:1).
           MOVE 7 TO HEXV.
           MOVE HEXC TO TSTHEX (47:1).
           MOVE 13 TO HEXV.
           MOVE HEXC TO TSTHEX (59:1).
           MOVE 0 TO HEXV.
           MOVE HEXC TO TSTHEX2 (39:1), TSTHEX2 (10:1).
           MOVE 9 TO HEXV.
           MOVE HEXC TO TSTHEX2 (47:1).
           MOVE '\' TO TSTHEX2 (32:1).
           MOVE 13 TO HEXV.
           MOVE HEXC TO TSTHEX2 (59:1).
           MOVE 'A' TO TSTHEX2 (54:1).
           MOVE LOW-VALUES TO TSTTAILX.
      *
           COPY cpyabrt.
       END PROGRAM sub2.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:9278: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:9278"
( $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/run_misc.at:9278"
$at_failed && at_fn_log_failure
$at_traceon; }




# also checking that a dump file without anything to dump does not do anything
{ set +x
$as_echo "$at_srcdir/run_misc.at:9283: COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \\
\$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9283"
( $at_check_trace; COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \
$COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')

 Last statement of sub1 was at line 4 of cpyabrt
 Last statement of sub2 was at line 251 of prog.cob
 Last statement of prog was at line 118 of prog.cob
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "X is 000000001
X is 000005441
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9283"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9296: \$COMPILE -fdump=ALL -fno-dump prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdump=ALL -fno-dump prog.cob" "run_misc.at:9296"
( $at_check_trace; $COMPILE -fdump=ALL -fno-dump 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/run_misc.at:9296"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }


# also checking that a dump file without anything to dump does not do anything
{ set +x
$as_echo "$at_srcdir/run_misc.at:9299: COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \\
\$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9299"
( $at_check_trace; COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \
$COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')

 Last statement of sub1 was at line 4 of cpyabrt
 Last statement of sub2 was at line 251 of prog.cob
 Last statement of prog was at line 118 of prog.cob
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "X is 000000001
X is 000005441
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9299"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9312: \$COMPILE -fdump=ALL prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdump=ALL prog.cob" "run_misc.at:9312"
( $at_check_trace; $COMPILE -fdump=ALL 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/run_misc.at:9312"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9314: COB_DUMP_FILE=tstdump.dump \\
\$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9314"
( $at_check_trace; COB_DUMP_FILE=tstdump.dump \
$COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')

dump written to tstdump.dump
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "X is 000000001
X is 000005441
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9314"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }


cat >reference_tmpl <<'_ATEOF'

Module dump due to LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller

 Last statement of sub1 was at line 4 of cpyabrt
 Last statement of sub2 was at line 251 of prog.cob
 Last statement of prog was at line 118 of prog.cob

Dump Program-Id sub1 from prog.cob compiled MMM DD YYYY HH:MM:SS

WORKING-STORAGE
**********************
01        ZRO                             000000000
01        HEXV                            13
01        TEST-BASED.                    <NULL> address
01        TEST-ALLOCED.
  05      TEST-ALLOCED-SUB1              ALL SPACES
  05      TEST-ALLOCED-SUB2               000000
01        IDX                             000000000
01        TSTREC.
  05      TSTDEP                         'XXX'
  05      TSTX (1).
       15 TSTG-1 (1)                      01
       15 TSTX-2 (1,1)                   'A'
       15 TSTX-2 (1,2)                   'XX'
       15 TSTX-2 (1,3)                   ALL SPACES
       15 TSTX-2 (1,4)                   'xx'
  05      TSTX (2).
       15 TSTG-1 (2)                      02
       15 TSTX-2 (2,1)                   'B'
       15 TSTX-2 (2,2)                   'XX'
       15 TSTX-2 (2,3)                   ALL LOW-VALUES
       15 TSTX-2 (2,4)                   'yy'
  05      TSTX (3).
       15 TSTG-1 (3)                      03
       15 TSTX-2 (3,1)                   'C'
       15 TSTX-2 (3,2)                   'XX'
       15 TSTX-2 (3,3)                   ALL HIGH-VALUES
       15 TSTX-2 (3,4)                   'zz'
  05      TSTX (4).
       15 TSTG-1 (4)                     ALL HIGH-VALUES
       15 TSTX-2 (4,1)                   ALL HIGH-VALUES
       15 TSTX-2 (4,2..4) same as (1)
  05      TSTTAIL1                        X  _
                                     1 x 5811
  05      TSTCOMP3                        58585
  05      TSTLONG                        'Quick brown fox jumped over the dog              Quick br'
                                      57:'own fox jumped over the dog'
  05      TSTHEX                          Q u i c  k e r    g r e y    f o x    j u m  p e d  _
                                     1 x 51756963 6B657220 67726579 20666F78 206A756D 70656420
                                          t h e    c o u g  a r   X  X X   X  X X X X  X X   X
                                    25 x 74686520 636F7567 61722058 58581158 58585858 58580758
                                          X X X X  X X X X  X X   X  X X X X  X X X X  X X X X
                                    49 x 58585858 58585858 58580D58 58585858 58585858 58585858
                                          X X X X  X X X X  X X X X  X X X X  X X X X  X X X X
                                    73 x 58585858 58585858 58585858 58585858 58585858 58585858
                                          X X X X
                                    97 x 58585858
  05      TSTHEX2                        XXXXXXXXX\0XXXXXXXXXXXXXXXXXXXXX\\XXXXXX\0XXXXXXX\tXXXXXX
                                    54 : AXXXX\rX
  05      TSTTAILX                       'Quick brown fox jumped over the dog     '
                                  trailing LOW-VALUES

LINKAGE
**********************
01        X                               000005441
01        TSPFL-RECORD.                  <NULL> address

END OF DUMP - sub1
**********************

Dump Program-Id sub2 from prog.cob compiled MMM DD YYYY HH:MM:SS

WORKING-STORAGE
**********************
01        ZRO                             000000000
01        HEXV                            13
01        IDX                             000000000
01        TSTREC.
  05      TSTDEP                         'XXX'
  05      TSTX (1).
       15 TSTG-1 (1)                      01
       15 TSTX-2 (1,1)                   'A'
       15 TSTX-2 (1,2)                   'XX'
       15 TSTX-2 (1,3)                   ALL SPACES
       15 TSTX-2 (1,4)                   'xx'
  05      TSTX (2).
       15 TSTG-1 (2)                      02
       15 TSTX-2 (2,1)                   'B'
       15 TSTX-2 (2,2)                   'XX'
       15 TSTX-2 (2,3)                   ALL LOW-VALUES
       15 TSTX-2 (2,4)                   'yy'
  05      TSTX (3).
       15 TSTG-1 (3)                      03
       15 TSTX-2 (3,1)                   'C'
       15 TSTX-2 (3,2)                   'XX'
       15 TSTX-2 (3,3)                   ALL HIGH-VALUES
       15 TSTX-2 (3,4)                   'zz'
  05      TSTX (4).
       15 TSTG-1 (4)                     ALL HIGH-VALUES
       15 TSTX-2 (4,1)                   ALL HIGH-VALUES
       15 TSTX-2 (4,2..4) same as (1)
  05      TSTTAIL1                        X  _
                                     1 x 5811
  05      TSTCOMP3                        58585
  05      TSTLONG                        'Quick brown fox jumped over the dog              Quick br'
                                      57:'own fox jumped over the dog'
  05      TSTHEX                          Q u i c  k e r    g r e y    f o x    j u m  p e d  _
                                     1 x 51756963 6B657220 67726579 20666F78 206A756D 70656420
                                          t h e    c o u g  a r   X  X X   X  X X X X  X X   X
                                    25 x 74686520 636F7567 61722058 58581158 58585858 58580758
                                          X X X X  X X X X  X X   X  X X X X  X X X X  X X X X
                                    49 x 58585858 58585858 58580D58 58585858 58585858 58585858
                                          X X X X  X X X X  X X X X  X X X X  X X X X  X X X X
                                    73 x 58585858 58585858 58585858 58585858 58585858 58585858
                                          X X X X
                                    97 x 58585858
  05      TSTHEX2                        XXXXXXXXX\0XXXXXXXXXXXXXXXXXXXXX\\XXXXXX\0XXXXXXX\tXXXXXX
                                    54 : AXXXX\rX
  05      TSTTAILX                       Quick brown fox jumped over the dog     \0ALPHA ELECTRICA
                                    57 : L CO.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
01        BASED-RECORD.
     10   B-NUM                           0124
     10   B-DISK                         'marvdisc'
     10   B-NO-TERMINALS                  0000
77        BASED-NEVER-SET                <NULL> address

LINKAGE
**********************
01        X                               000005441
01        TSPFL-RECORD.
     10   CM-CUST-NUM                    'ALP00000'
     10   CM-COMPANY                     'ALPHA ELECTRICAL CO. LTD.'
     10   CM-DISK                        '8417'
     10   CM-NO-TERMINALS                 0010
77        DYNAMIC-NUM                     0124

END OF DUMP - sub2
**********************

Dump Program-Id prog from prog.cob compiled MMM DD YYYY HH:MM:SS

FD FLATFILE
**********************
   File is OPEN
   FILE STATUS  '00'
01        TSPFL-RECORD.
     10   CM-CUST-NUM                    'ALP00000'
     10   CM-COMPANY                     'ALPHA ELECTRICAL CO. LTD.'
     10   CM-DISK                        '8417'
     10   CM-NO-TERMINALS                 0010

WORKING-STORAGE
**********************
77        MAX-SUB                         0006
77        CUST-STAT                      ALL ZEROES
77        REC-NUM                         0001
01        BIN                             000005441
01        TEST-DATA.
 02       DATA-CUST-NUM-TBL.
  05      FILLER                         'ALP00000'
  05      FILLER                         'BET00000'
  05      FILLER                         'DEL00000'
  05      FILLER                         'EPS00000'
  05      FILLER                         'FOR00000'
  05      FILLER                         'GAM00000'
 02       DATA-COMPANY-TBL.
  05      FILLER                         'ALPHA ELECTRICAL CO. LTD.'
  05      FILLER                         'BETA SHOE MFG. INC.'
  05      FILLER                         'DELTA LUGGAGE REPAIRS'
  05      FILLER                         'EPSILON EQUIPMENT SUPPLY'
  05      FILLER                         'FORTUNE COOKIE COMPANY'
  05      FILLER                         'GAMMA X-RAY TECHNOLOGY'
 02       DATA-ADDRESS-2-TBL.
  05      FILLER                         'ATLANTA'
  05      FILLER                         'CALGARY'
  05      FILLER                         'NEW YORK'
  05      FILLER                         'TORONTO'
  05      FILLER                         'WASHINGTON'
  05      FILLER                         'WHITEPLAIN'
 02       DATA-NO-TERMINALS-TBL.
  05      FILLER                          010
  05      FILLER                          013
  05      FILLER                          075
  05      FILLER                          010
  05      FILLER                          090
  05      FILLER                          254
01        WORK-AREA.
  05      SUB                             0007
01        SUMS-NON-STD-OCCURS (1)         -000000000000042.345
01        SUMS-NON-STD-OCCURS (2)         +000000000004096.000
01        SUMS-NON-STD-OCCURS (3)         +000000000005440.000
01        SUMS-NON-STD-OCCURS (4)         -000000000000042.345
01        SUMS-NON-STD-OCCURS (5..8) same as (4)

END OF DUMP - prog
**********************

_ATEOF


# AT_DATA workaround via sed:
{ set +x
$as_echo "$at_srcdir/run_misc.at:9525: \$SED -e 's/_\$//' reference_tmpl > reference"
at_fn_check_prepare_dynamic "$SED -e 's/_$//' reference_tmpl > reference" "run_misc.at:9525"
( $at_check_trace; $SED -e 's/_$//' reference_tmpl > reference
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9525"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:9526: \$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \\
tstdump.dump > tstdump.sed"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9526"
( $at_check_trace; $SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
tstdump.dump > tstdump.sed
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9526"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9529: diff reference tstdump.sed"
at_fn_check_prepare_trace "run_misc.at:9529"
( $at_check_trace; diff reference tstdump.sed
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9529"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }


# using both
{ set +x
$as_echo "$at_srcdir/run_misc.at:9532: COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \\
\$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9532"
( $at_check_trace; COB_STACKTRACE=1 COB_DUMP_FILE=tstdump.dump \
$COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')

 Last statement of sub1 was at line 4 of cpyabrt
 Last statement of sub2 was at line 251 of prog.cob
 Last statement of prog was at line 118 of prog.cob

dump written to tstdump.dump
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "X is 000000001
X is 000005441
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9532"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9547: \$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \\
tstdump.dump > tstdump.sed"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9547"
( $at_check_trace; $SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
tstdump.dump > tstdump.sed
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9547"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9550: diff reference tstdump.sed"
at_fn_check_prepare_trace "run_misc.at:9550"
( $at_check_trace; diff reference tstdump.sed
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9550"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9552: \$COMPILE -fdump=FD,LS prog.cob -o prog_fdls"
at_fn_check_prepare_dynamic "$COMPILE -fdump=FD,LS prog.cob -o prog_fdls" "run_misc.at:9552"
( $at_check_trace; $COMPILE -fdump=FD,LS prog.cob -o prog_fdls
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9552"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9554: COB_DUMP_FILE=tstdump_fdls.dump \\
\$COBCRUN_DIRECT ./prog_fdls"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9554"
( $at_check_trace; COB_DUMP_FILE=tstdump_fdls.dump \
$COBCRUN_DIRECT ./prog_fdls
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')

dump written to tstdump_fdls.dump
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "X is 000000001
X is 000005441
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9554"
$at_failed && at_fn_log_failure  \
"./tstdump.dump"
$at_traceon; }





cat >reference_fdls_tmpl <<'_ATEOF'

Module dump due to LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller

 Last statement of sub1 was at line 4 of cpyabrt
 Last statement of sub2 was at line 251 of prog.cob
 Last statement of prog was at line 118 of prog.cob

Dump Program-Id sub1 from prog.cob compiled MMM DD YYYY HH:MM:SS

LINKAGE
**********************
01        X                               000005441
01        TSPFL-RECORD.                  <NULL> address

END OF DUMP - sub1
**********************

Dump Program-Id sub2 from prog.cob compiled MMM DD YYYY HH:MM:SS

LINKAGE
**********************
01        X                               000005441
01        TSPFL-RECORD.
     10   CM-CUST-NUM                    'ALP00000'
     10   CM-COMPANY                     'ALPHA ELECTRICAL CO. LTD.'
     10   CM-DISK                        '8417'
     10   CM-NO-TERMINALS                 0010
77        DYNAMIC-NUM                     0124

END OF DUMP - sub2
**********************

Dump Program-Id prog from prog.cob compiled MMM DD YYYY HH:MM:SS

FD FLATFILE
**********************
   File is OPEN
   FILE STATUS  '00'
01        TSPFL-RECORD.
     10   CM-CUST-NUM                    'ALP00000'
     10   CM-COMPANY                     'ALPHA ELECTRICAL CO. LTD.'
     10   CM-DISK                        '8417'
     10   CM-NO-TERMINALS                 0010

END OF DUMP - prog
**********************

_ATEOF


# AT_DATA workaround via sed:
{ set +x
$as_echo "$at_srcdir/run_misc.at:9618: \$SED -e 's/_\$//' reference_fdls_tmpl > reference"
at_fn_check_prepare_dynamic "$SED -e 's/_$//' reference_fdls_tmpl > reference" "run_misc.at:9618"
( $at_check_trace; $SED -e 's/_$//' reference_fdls_tmpl > reference
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9618"
$at_failed && at_fn_log_failure  \
"./tstdump.dump" \
"./tstdump_fdls.dump"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:9619: \$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \\
tstdump_fdls.dump > tstdump.sed"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9619"
( $at_check_trace; $SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
tstdump_fdls.dump > tstdump.sed
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9619"
$at_failed && at_fn_log_failure  \
"./tstdump.dump" \
"./tstdump_fdls.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9622: diff reference tstdump.sed"
at_fn_check_prepare_trace "run_misc.at:9622"
( $at_check_trace; diff reference tstdump.sed
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9622"
$at_failed && at_fn_log_failure  \
"./tstdump.dump" \
"./tstdump_fdls.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9624: \$COMPILE -fdump=ALL -fno-dump=LO,WS,SC prog.cob -o prog_allfdls"
at_fn_check_prepare_dynamic "$COMPILE -fdump=ALL -fno-dump=LO,WS,SC prog.cob -o prog_allfdls" "run_misc.at:9624"
( $at_check_trace; $COMPILE -fdump=ALL -fno-dump=LO,WS,SC prog.cob -o prog_allfdls
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9624"
$at_failed && at_fn_log_failure  \
"./tstdump.dump" \
"./tstdump_fdls.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9626: COB_DUMP_FILE=tstdump_allfdls.dump \\
\$COBCRUN_DIRECT ./prog_allfdls"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9626"
( $at_check_trace; COB_DUMP_FILE=tstdump_allfdls.dump \
$COBCRUN_DIRECT ./prog_allfdls
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')

dump written to tstdump_allfdls.dump
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "X is 000000001
X is 000005441
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9626"
$at_failed && at_fn_log_failure  \
"./tstdump.dump" \
"./tstdump_fdls.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9637: \$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \\
tstdump_allfdls.dump > tstdump.sed"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9637"
( $at_check_trace; $SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
tstdump_allfdls.dump > tstdump.sed
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9637"
$at_failed && at_fn_log_failure  \
"./tstdump.dump" \
"./tstdump_fdls.dump"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9640: diff reference tstdump.sed"
at_fn_check_prepare_trace "run_misc.at:9640"
( $at_check_trace; diff reference tstdump.sed
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9640"
$at_failed && at_fn_log_failure  \
"./tstdump.dump" \
"./tstdump_fdls.dump"
$at_traceon; }


# CHECKME @ Ron: The result is likely wrong, please verify later
#AT_CHECK([$COMPILE -fdump=LS prog.cob -fsticky-linkage -o prog_ls_sticky], [0], [], [])
#
#AT_CHECK([COB_DUMP_FILE=tstdump_ls_sticky.dump \
#$COBCRUN_DIRECT ./prog_ls_sticky], [1],
#[X is 000000001
#X is 000005441
#],
#[libcob: cpyabrt:4: error: LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
#libcob: cpyabrt:4: warning: implicit CLOSE of FLATFILE ('RELFIX')
#
#dump written to tstdump_ls_sticky.dump
#])
#
#
#AT_CAPTURE_FILE(./tstdump_ls_sticky.dump)
#
#AT_DATA([reference_ls_sticky_tmpl], [
#Module dump due to LINKAGE item 'TSPFL-RECORD' (accessed by 'CM-COMPANY') not passed by caller
#
# Last statement of sub1 was at line 4 of cpyabrt
# Last statement of sub2 was at line 251 of prog.cob
# Last statement of prog was at line 118 of prog.cob
#
#Dump Program-Id sub1 from prog.cob compiled MMM DD YYYY HH:MM:SS
#
#LINKAGE
#**********************
#01        X                               000005441
#01        TSPFL-RECORD.                  <NULL> address
#
#Dump Program-Id sub2 from prog.cob compiled MMM DD YYYY HH:MM:SS
#
#LINKAGE
#**********************
#01        X                               000005441
#01        TSPFL-RECORD.
#     10   CM-CUST-NUM                    'ALP00000'
#     10   CM-COMPANY                     'ALPHA ELECTRICAL CO. LTD.'
#     10   CM-DISK                        '8417'
#     10   CM-NO-TERMINALS                 0010
#77        DYNAMIC-NUM                     0124
#
#Dump Program-Id prog from prog.cob compiled MMM DD YYYY HH:MM:SS
#
#])
#
## AT_DATA workaround via sed:
#AT_CHECK([$SED -e 's/_$//' reference_ls_sticky_tmpl > reference], [0], [], [])
#AT_CHECK([$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
#tstdump_ls_sticky.dump > tstdump.sed], [0], [], [])
#
#AT_CHECK([diff reference tstdump.sed], [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_686
#AT_START_687
at_fn_group_banner 687 'run_misc.at:9699' \
  "Test dump feature (2)" "                          " 4
at_xfail=no
(
  $as_echo "687. $at_setup_line: testing $at_desc ..."
  $at_traceon

#AT_KEYWORDS([Dump])

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID. prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  P2           USAGE POINTER.

       01 TAB-ADR-COUNT            PIC S9(4)      VALUE 8.

       01 TAB-ADR OCCURS 0 TO 1000 TIMES
            DEPENDING ON TAB-ADR-COUNT
            INDEXED BY TAB-ADR-IND.
          05 TAB-ADR-ELEMENT.
              10 TAB-ADR-PRGM         PIC X(8).
              10 TAB-ADR-ID           PIC X(2).
              10 TAB-ADR-ADR-64       PIC S9(16) COMP-5.
              10 TAB-ADR-LAST-ADR-64  PIC S9(16) COMP-5.

       01  GRP-X BASED.
           05   FILLER  PIC X(3).
           05   FLD-X   OCCURS 10 TIMES.
             10 FLD-X-Y   PIC 9999 VALUE 2020.
             10 FLD-X-M   PIC 99 VALUE 11.
             10 FLD-X-X   PIC X(128) VALUE "This is something ".
           05   FILLER  PIC X(3).

       01  GRP-1.
           05   FILLER  PIC X(3).
           05   FLD-1   OCCURS 10 TIMES.
             10 FLD-1-Y   PIC 9999 VALUE 2020.
             10 FLD-1-M   PIC 99 VALUE 11.
             10 FLD-1-X   PIC X(128) VALUE "This is something ".
           05   FILLER  PIC X(3).

       01  GRP-2.
           05   FILLER  PIC X(3).
           05   FLD-2   PIC X(42) VALUE ALL "ABCD ".
           05   FILLER  PIC X(3).
       01  GRP-2A.
           05   FILLER  PIC X(2).
           05   FLD-2A  PIC X(8) VALUE ALL "ABC".
           05   FILLER  PIC X(1200) VALUE "X".
       01  GRP-3.
           05   FILLER  PIC X(3).
           05   FLD-3   OCCURS 3 TIMES.
                15   FLD-3-2 PIC XXX VALUE "ABC".
                15   FLD-3-3 PIC 99  VALUE ZERO.
                15           OCCURS 4 VALUE ALL "D99".
                     25   FLD-3O-1 PIC X.
                     25   FLD-3O-2 PIC 99.
                15   FLD-3-4 PIC XX  VALUE ALL "X".
           05   FILLER  PIC X(3).

       77  C5    PIC 9(03)  VALUE 6.
       01  GRP-5.
           05   FILLER  PIC X(3).
           05   FLD-5.
              10   FLD-5-1 OCCURS 0 TO 9 TIMES
                        DEPENDING ON C5.
                15   FLD-5-2 PIC XXX VALUE "Mon".
                15   FLD-5-3 PIC 99  VALUE 49.
                15   FLD-5-4 PIC XX  VALUE "ey".

       LINKAGE SECTION.
       01  A-TABLE.
           03  prefix.
               05  n    PIC 9(03)  VALUE 123.
           03  table-data value all "ABCDE".
            04  rows    OCCURS 0 TO UNBOUNDED TIMES
                        DEPENDING ON n.
               05 col1  PIC X.
               05 col2  PIC X(02).

       PROCEDURE DIVISION.
           MOVE ALL "*" TO GRP-2
           INITIALIZE FLD-2 ALL TO VALUE
           DISPLAY "GRP-2:" GRP-2.
      *
           MOVE ALL "*" TO GRP-3
           INITIALIZE GRP-3 NUMERIC TO VALUE
           INITIALIZE FLD-3 (1) ALL TO VALUE
           INITIALIZE FLD-3 (2) ALL TO VALUE
           INITIALIZE FLD-3 (3) ALL TO VALUE
           INITIALIZE FLD-3O-1 (3,2), FLD-3O-2 (3,2)
           DISPLAY "GRP-3:" GRP-3.
      *
           MOVE 7       TO c5
           MOVE ALL "*" TO GRP-5
           INITIALIZE FLD-5 ALL TO VALUE
           DISPLAY "GRP-5:" GRP-5.
      *
           MOVE SPACES  TO GRP-2A
           MOVE "Peek"  TO GRP-2A (510:4)
           MOVE "Boo"   TO GRP-2A (910:3)
           MOVE X"FE99" TO GRP-2A (910:2)
           MOVE "You"   TO GRP-2A (1010:3)
           MOVE "$$"    TO FLD-5-4 (5)
           MOVE "Something else!" TO FLD-1-X (5).
      *
           SET P2 TO NULL
           SET ADDRESS OF A-TABLE TO NULL
           MOVE ALL ZEROES TO A-TABLE (1: (LENGTH OF A-TABLE)).
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:9808: \$COMPILE -fdump=ALL prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdump=ALL prog.cob" "run_misc.at:9808"
( $at_check_trace; $COMPILE -fdump=ALL 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/run_misc.at:9808"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9810: export COB_DUMP_FILE=dumpall.txt
\$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9810"
( $at_check_trace; export COB_DUMP_FILE=dumpall.txt
$COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:102: error: BASED/LINKAGE item 'A-TABLE' has NULL address

dump written to dumpall.txt
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "GRP-2:***ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD AB***
GRP-3:***ABC00D99D99D99D99XXABC00D99D99D99D99XXABC00D99 00D99D99XX***
GRP-5:***Mon49eyMon49eyMon49eyMon49eyMon49eyMon49eyMon49ey
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:9810"
$at_failed && at_fn_log_failure
$at_traceon; }




cat >reference_tmpl <<'_ATEOF'

Module dump due to BASED/LINKAGE item 'A-TABLE' has NULL address

 Last statement of prog was at line 102 of prog.cob

Dump Program-Id prog from prog.cob compiled MMM DD YYYY HH:MM:SS

WORKING-STORAGE
**********************
01        P2                              0x0000000000000000
01        TAB-ADR-COUNT                   +0008
   INDEX  TAB-ADR-IND                     +000000001
01        TAB-ADR (1).
  05      TAB-ADR-ELEMENT (1).
     10   TAB-ADR-PRGM (1)               ALL SPACES
     10   TAB-ADR-ID (1)                 ALL SPACES
     10   TAB-ADR-ADR-64 (1)              +00000000000000000000
     10   TAB-ADR-LAST-ADR-64 (1)         +00000000000000000000
01        TAB-ADR (2..8) same as (1)
01        GRP-X.                         <NULL> address
01        GRP-1.
  05      FILLER                         ALL SPACES
  05      FLD-1 (1).
     10   FLD-1-Y (1)                     2020
     10   FLD-1-M (1)                     11
     10   FLD-1-X (1)                    'This is something'
  05      FLD-1 (2..4) same as (1)
  05      FLD-1 (5).
     10   FLD-1-Y (5)                     2020
     10   FLD-1-M (5)                     11
     10   FLD-1-X (5)                    'Something else!'
  05      FLD-1 (6).
     10   FLD-1-Y (6)                     2020
     10   FLD-1-M (6)                     11
     10   FLD-1-X (6)                    'This is something'
  05      FLD-1 (7..10) same as (6)
  05      FILLER                         ALL SPACES
01        GRP-2.
  05      FILLER                         '***'
  05      FLD-2                          'ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD AB'
  05      FILLER                         '***'
01        GRP-2A.
  05      FILLER                         ALL SPACES
  05      FLD-2A                         ALL SPACES
  05      FILLER                                                                              _
                                     1 x 20202020 20202020 20202020 20202020 20202020 20202020
                                         --- 25 thru 492 same as above ---
                                                         P  e e k                             _
                                   493 x 20202020 20202050 65656B20 20202020 20202020 20202020
                                                                                              _
                                   517 x 20202020 20202020 20202020 20202020 20202020 20202020
                                         --- 541 thru 878 same as above ---
                                                                                             _
                                   879 x 2020 20202020 20202020 20202020 20202020 202020FE 99
                                          o                                                  _
                                   902 x 6F2020 20202020 20202020 20202020 20202020 20202020 _
                                                                                              _
                                   925 x 20202020 20202020 20202020 20202020 20202020 20202020_
                                         --- 949 thru 974 same as above ---
                                                                                             _
                                   975 x 2020 20202020 20202020 20202020 20202020 20202020 20
                                              Y  o u                                         _
                                   998 x 202059 6F752020 20202020 20202020 20202020 20202020 _
                                                                                              _
                                  1021 x 20202020 20202020 20202020 20202020 20202020 20202020
                                         --- 1045 thru 1174 same as above ---
                                                                                             _
                                  1175 x 2020 20202020 20202020 20202020 20202020 20202020 20
                                               _
                                  1198 x 202020
01        GRP-3.
  05      FILLER                         '***'
  05      FLD-3 (1).
       15 FLD-3-2 (1)                    'ABC'
       15 FLD-3-3 (1)                     00
       15 FILLER (1,1).
       25 FLD-3O-1 (1,1)                 'D'
       25 FLD-3O-2 (1,1)                  99
       15 FILLER (1,2..4) same as (1)
       15 FLD-3-4 (1)                    'XX'
  05      FLD-3 (2) same as (1)
  05      FLD-3 (3).
       15 FLD-3-2 (3)                    'ABC'
       15 FLD-3-3 (3)                     00
       15 FILLER (3,1).
       25 FLD-3O-1 (3,1)                 'D'
       25 FLD-3O-2 (3,1)                  99
       15 FILLER (3,2).
       25 FLD-3O-1 (3,2)                 ALL SPACES
       25 FLD-3O-2 (3,2)                  00
       15 FILLER (3,3).
       25 FLD-3O-1 (3,3)                 'D'
       25 FLD-3O-2 (3,3)                  99
       15 FILLER (3,4) same as (3)
       15 FLD-3-4 (3)                    'XX'
  05      FILLER                         '***'
77        C5                              007
01        GRP-5.
  05      FILLER                         '***'
  05      FLD-5.
     10   FLD-5-1 (1).
       15 FLD-5-2 (1)                    'Mon'
       15 FLD-5-3 (1)                     49
       15 FLD-5-4 (1)                    'ey'
     10   FLD-5-1 (2..4) same as (1)
     10   FLD-5-1 (5).
       15 FLD-5-2 (5)                    'Mon'
       15 FLD-5-3 (5)                     49
       15 FLD-5-4 (5)                    '$$'
     10   FLD-5-1 (6).
       15 FLD-5-2 (6)                    'Mon'
       15 FLD-5-3 (6)                     49
       15 FLD-5-4 (6)                    'ey'
     10   FLD-5-1 (7) same as (6)

LINKAGE
**********************
01        A-TABLE.                       <NULL> address

END OF DUMP - prog
**********************

_ATEOF


# AT_DATA workaround via sed:
{ set +x
$as_echo "$at_srcdir/run_misc.at:9948: \$SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \\
dumpall.txt > dumpall.sed"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:9948"
( $at_check_trace; $SED -e 's/compiled ... .. .... ..:..:../compiled MMM DD YYYY HH:MM:SS/g' \
dumpall.txt > dumpall.sed
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9948"
$at_failed && at_fn_log_failure  \
"./dumpall.txt"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9951: test \"\$COB_HAS_64_BIT_POINTER\" = \"yes\""
at_fn_check_prepare_dynamic "test \"$COB_HAS_64_BIT_POINTER\" = \"yes\"" "run_misc.at:9951"
( $at_check_trace; test "$COB_HAS_64_BIT_POINTER" = "yes"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9951"
if $at_failed; then :
  # Previous test "failed" --> 32 bit
  { set +x
$as_echo "$at_srcdir/run_misc.at:9953: \$SED -e 's/_\$//; s/0x0000000000000000/0x00000000/' reference_tmpl > reference"
at_fn_check_prepare_dynamic "$SED -e 's/_$//; s/0x0000000000000000/0x00000000/' reference_tmpl > reference" "run_misc.at:9953"
( $at_check_trace; $SED -e 's/_$//; s/0x0000000000000000/0x00000000/' reference_tmpl > reference
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9953"
$at_failed && at_fn_log_failure  \
"./dumpall.txt"
$at_traceon; }


else
  # Previous test "passed" --> 64 bit
  { set +x
$as_echo "$at_srcdir/run_misc.at:9956: \$SED -e 's/_\$//' reference_tmpl > reference"
at_fn_check_prepare_dynamic "$SED -e 's/_$//' reference_tmpl > reference" "run_misc.at:9956"
( $at_check_trace; $SED -e 's/_$//' reference_tmpl > reference
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9956"
$at_failed && at_fn_log_failure  \
"./dumpall.txt"
$at_traceon; }


fi
$at_failed && at_fn_log_failure  \
"./dumpall.txt"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:9959: diff reference dumpall.sed"
at_fn_check_prepare_trace "run_misc.at:9959"
( $at_check_trace; diff reference dumpall.sed
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:9959"
$at_failed && at_fn_log_failure  \
"./dumpall.txt"
$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_687
#AT_START_688
at_fn_group_banner 688 'run_misc.at:9964' \
  "CALL with program prototypes" "                   " 4
at_xfail=no
(
  $as_echo "688. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       PROCEDURE DIVISION.
           CALL "c"
           .
       END PROGRAM prog.


       IDENTIFICATION DIVISION.
       PROGRAM-ID. a AS "blah?Sdk".

       PROCEDURE DIVISION.
           DISPLAY "Hello!"
           .
       END PROGRAM a.


       IDENTIFICATION DIVISION.
       PROGRAM-ID. b.

       PROCEDURE DIVISION.
           DISPLAY "Hello again!"
           .
       END PROGRAM b.


       IDENTIFICATION DIVISION.
       PROGRAM-ID. c.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           PROGRAM d AS "blah?Sdk"
           PROGRAM b
           .

       PROCEDURE DIVISION.
           CALL d
           CALL b
           .
       END PROGRAM c.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:10012: \$COMPILE -o prog prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -o prog prog.cob" "run_misc.at:10012"
( $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/run_misc.at:10012"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:10013: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10013"
( $at_check_trace; $COBCRUN_DIRECT ./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!
Hello again!
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10013"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_688
#AT_START_689
at_fn_group_banner 689 'run_misc.at:10020' \
  "REDEFINES values on FILLER and INITIALIZE" "      " 4
at_xfail=no
(
  $as_echo "689. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  TSRDF.
           05  WS-ASK-ID-DATE                PIC X(10) VALUE ALL '*'.
           05  WS-ASK-ID-DATE-R              REDEFINES WS-ASK-ID-DATE.
               10  WS-ASK-ID-DATE-YYYY       PIC 9(4) VALUE 2017.
               10  FILLER                    PIC X VALUE '-'.
               10  WS-ASK-ID-DATE-MM         PIC 9(2).
               10  FILLER                    PIC X VALUE '-'.
               10  WS-ASK-ID-DATE-DD         PIC 9(2).
       PROCEDURE DIVISION.
           MOVE 2015 TO WS-ASK-ID-DATE-YYYY
           MOVE 08 TO WS-ASK-ID-DATE-MM
           MOVE 21 TO WS-ASK-ID-DATE-DD
           DISPLAY "The date is " WS-ASK-ID-DATE " Compiled".

           INITIALIZE WS-ASK-ID-DATE-R.
           MOVE 08 TO WS-ASK-ID-DATE-MM
           MOVE 21 TO WS-ASK-ID-DATE-DD
           DISPLAY "The date is " WS-ASK-ID-DATE " INITIALIZE".

           INITIALIZE WS-ASK-ID-DATE-R WITH FILLER.
           MOVE 08 TO WS-ASK-ID-DATE-MM
           MOVE 21 TO WS-ASK-ID-DATE-DD
           DISPLAY "The date is " WS-ASK-ID-DATE " WITH FILLER".

           INITIALIZE WS-ASK-ID-DATE-R WITH FILLER ALL TO VALUE.
           MOVE 08 TO WS-ASK-ID-DATE-MM
           MOVE 21 TO WS-ASK-ID-DATE-DD
           DISPLAY "The date is " WS-ASK-ID-DATE " ALL TO VALUE".
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:10059: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:10059"
( $at_check_trace; $COMPILE 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: initial VALUE clause ignored for REDEFINES item 'WS-ASK-ID-DATE-YYYY'
prog.cob:10: warning: initial VALUE clause ignored for REDEFINES item 'FILLER'
prog.cob:12: warning: initial VALUE clause ignored for REDEFINES item 'FILLER'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10059"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:10065: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10065"
( $at_check_trace; $COBCRUN_DIRECT ./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 "The date is 2015*08*21 Compiled
The date is 0000*08*21 INITIALIZE
The date is 0000 08 21 WITH FILLER
The date is 2017-08-21 ALL TO VALUE
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10065"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_689
#AT_START_690
at_fn_group_banner 690 'run_misc.at:10075' \
  "PICTURE with constant-name" "                     " 4
at_xfail=no
(
  $as_echo "690. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  foo-bar     CONSTANT 8.
       01  x           PIC 9(foo-bar)9(foo-bar).

       PROCEDURE DIVISION.
           IF FUNCTION LENGTH (x) <> 16
               DISPLAY FUNCTION LENGTH (x)
           END-IF
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:10095: \$COMPILE_ONLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY prog.cob" "run_misc.at:10095"
( $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: warning: expression '16' NOT EQUAL '16' is always FALSE
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10095"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:10098: \$COMPILE -fno-constant-folding prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fno-constant-folding prog.cob" "run_misc.at:10098"
( $at_check_trace; $COMPILE -fno-constant-folding 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/run_misc.at:10098"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:10099: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10099"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:10099"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_690
#AT_START_691
at_fn_group_banner 691 'run_misc.at:10103' \
  "Quote marks in comment paragraphs" "              " 4
at_xfail=no
(
  $as_echo "691. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.
       DATE-written.  hello'".
      *> Written is intentionally lowercase.
      *> extra " to fix syntax highlighting
       PROCEDURE      DIVISION.
           DISPLAY "Hello, world!"
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:10117: \$COMPILE -o prog prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -o prog prog.cob" "run_misc.at:10117"
( $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:4: warning: DATE-WRITTEN is obsolete in GnuCOBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10117"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:10120: \$COMPILE -free -o prog prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -free -o prog prog.cob" "run_misc.at:10120"
( $at_check_trace; $COMPILE -free -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:3: warning: DATE-WRITTEN is obsolete in GnuCOBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10120"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:10123: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10123"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10123"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_691
#AT_START_692
at_fn_group_banner 692 'run_misc.at:10129' \
  "Numeric MOVE with/without -fbinary-truncate" "    " 4
at_xfail=no
(
  $as_echo "692. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC 9(4) COMP.

       PROCEDURE       DIVISION.
           MOVE 30000 TO x
           PERFORM check-x-val

           COMPUTE x = 30000
           PERFORM check-x-val

           MOVE ZERO TO x
           ADD 30000 TO x
           PERFORM check-x-val

           GOBACK
           .
       check-x-val     SECTION.
           EVALUATE x
               WHEN >= 10000
                   DISPLAY "x >= 10000"

               WHEN ZERO
                   DISPLAY "x IS ZERO"

               WHEN OTHER
                   CONTINUE
           END-EVALUATE
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:10168: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:10168"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: value size exceeds data size
prog.cob:10: note: value is 30000
prog.cob:7: note: 'x' defined here as PIC 9(4)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10168"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:10173: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10173"
( $at_check_trace; $COBCRUN_DIRECT ./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 IS ZERO
x IS ZERO
x IS ZERO
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10173"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:10179: \$COMPILE -fno-binary-truncate prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fno-binary-truncate prog.cob" "run_misc.at:10179"
( $at_check_trace; $COMPILE -fno-binary-truncate 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/run_misc.at:10179"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:10180: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10180"
( $at_check_trace; $COBCRUN_DIRECT ./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 >= 10000
x >= 10000
x >= 10000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10180"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_692
#AT_START_693
at_fn_group_banner 693 'run_misc.at:10189' \
  "Alphanumeric MOVE with truncation" "              " 4
at_xfail=no
(
  $as_echo "693. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x-left  PIC X(03).
       01  x-right PIC X(03) JUSTIFIED RIGHT.

       PROCEDURE DIVISION.
           MOVE '1234' TO x-left, x-right
           IF x-left  not = '123'
           OR x-right not = '234'
              DISPLAY 'error with "1234":'
              END-DISPLAY
              DISPLAY x-left
              END-DISPLAY
              DISPLAY x-right
              END-DISPLAY
           END-IF
           MOVE '   3' TO x-left, x-right
           IF x-left  not = spaces
           OR x-right not = '  3'
              DISPLAY 'error with "   3":'
              END-DISPLAY
              DISPLAY x-left
              END-DISPLAY
              DISPLAY x-right
              END-DISPLAY
           END-IF
           MOVE '3   ' TO x-left, x-right
           IF x-left  not = '3'
           OR x-right not = spaces
              DISPLAY 'error with "3   ":'
              END-DISPLAY
              DISPLAY x-left
              END-DISPLAY
              DISPLAY x-right
              END-DISPLAY
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:10235: \$COMPILE -Wno-truncate prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -Wno-truncate prog.cob" "run_misc.at:10235"
( $at_check_trace; $COMPILE -Wno-truncate 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/run_misc.at:10235"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:10236: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10236"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:10236"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_693
#AT_START_694
at_fn_group_banner 694 'run_misc.at:10240' \
  "PROGRAM-ID / CALL literal/variable with spaces" " " 4
at_xfail=no
(
  $as_echo "694. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  MYRTN  PIC X(9) VALUE " SUB  ".

       PROCEDURE DIVISION.
           CALL " SUB " USING 'X'.
           MOVE x'00' TO MYRTN (6:1).
           CALL MYRTN   USING 'Y'.
           CALL "SUB"   USING 'Z'.
           CALL "S U B" USING 'A'.
           MOVE " S U B" TO MYRTN.
           CALL MYRTN   USING 'B'.
           STOP RUN.
       END PROGRAM prog.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. "SUB ".

       DATA DIVISION.
       LINKAGE SECTION.
       01  x  PIC X.

       PROCEDURE DIVISION USING x.
            DISPLAY "SUB GOT " X
            END-DISPLAY.
       END PROGRAM " SUB".

       IDENTIFICATION DIVISION.
       PROGRAM-ID. "S U B".

       DATA DIVISION.
       LINKAGE SECTION.
       01  x  PIC X.

       PROCEDURE DIVISION USING x.
            DISPLAY "S U B  GOT " X
            END-DISPLAY.
       END PROGRAM "S U B".
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:10287: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:10287"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: ' SUB ' literal includes leading spaces which are omitted
prog.cob:10: warning: ' SUB ' literal includes trailing spaces which are omitted
prog.cob:21: warning: 'SUB ' literal includes trailing spaces which are omitted
prog.cob:30: warning: ' SUB' literal includes leading spaces which are omitted
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10287"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:10294: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10294"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:12: warning: ' SUB' literal includes leading spaces which are omitted
libcob: prog.cob:16: warning: ' S U B' literal includes leading spaces which are omitted
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "SUB GOT X
SUB GOT Y
SUB GOT Z
S U B  GOT A
S U B  GOT B
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10294"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_694
#AT_START_695
at_fn_group_banner 695 'run_misc.at:10308' \
  "C API Test (param based)" "                       " 4
at_xfail=no
(
  $as_echo "695. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  BINFLD5     PIC  9(5) COMP-5  VALUE  1280.
       01  BINFLD5S    PIC S9(5) BINARY  VALUE  1024.
       01  BINFLD9     PIC  9(9) BINARY  VALUE  2560.
       01  COMP3       PIC  9(8) COMP-3  VALUE  4096.
       01  COMP3V99    PIC S9(7)V99 COMP-3  VALUE  12.50.
       01  PIC9        PIC S9(8) DISPLAY VALUE  8192.
       01  NE          PIC Z(4)9.99-.
       01  CHRX        PIC  X(9)         VALUE 'Hello'.
      *01  CHRN        PIC  N(9)         VALUE N'Hello'.
       01  GRPX.
           05  FILLER  PIC  X(9)         VALUE 'Hello'.
           05  FILLER  PIC  X(9)         VALUE 'World'.
       PROCEDURE DIVISION.
           MOVE -512.77 TO NE.
           CALL "CAPI" USING 2560 BY VALUE 16.
           CALL "CAPI" USING BINFLD5, NE.
           CALL "CAPI" USING BINFLD5S.
           CALL "CAPI" USING BINFLD9.
           MOVE  512.77 TO NE.
           CALL "CAPI" USING COMP3, NE.
           CALL "CAPI" USING PIC9 BINFLD5S CHRX GRPX.
           CALL "CAPI" USING COMP3, NE, CHRX.
           CALL "CAPI" USING BINFLD5, NE.
           MOVE "Hello!" TO CHRX.
           CALL "CAPI" USING BY VALUE BINFLD5, CHRX.
           CALL "CAPI" USING BY VALUE BINFLD5, CHRX.
           CALL "CAPI" USING LENGTH OF GRPX.
           CALL "CAPI" USING BY VALUE GRPX LENGTH OF GRPX.
           CALL "CAPI" USING "Fred Fish", COMP3.
           CALL "CAPI" USING COMP3V99.
      *    CALL "CAPI" USING CHRN.
           CALL "CAPI" .
           DISPLAY "COMP3    is now " COMP3 ";".
           DISPLAY "COMP4    is now " BINFLD5 ";".
           DISPLAY "BINFLD5S is now " BINFLD5S ";".
           DISPLAY "CHRX     is now " CHRX ";".
           DISPLAY "NE       is now " NE ";".
           STOP RUN.
_ATEOF


cat >cmod.c <<'_ATEOF'

#include <stdio.h>
#include <string.h>
#include <libcob.h>

static char *
getType (int type, int byvalue)
{
   static char wrk[24];
   switch (type) {
#if 1
   case COB_TYPE_GROUP:           return "Group";
   case COB_TYPE_NUMERIC_COMP5:
       /* fall through as the test will have different results
          on big endian systems otherwise
        return "COMP-5"; */
        COB_UNUSED (byvalue);
   case COB_TYPE_NUMERIC_BINARY:  return "BINARY";
   case COB_TYPE_NUMERIC_PACKED:  return "COMP-3";
   case COB_TYPE_NUMERIC_FLOAT:   return "COMP-1";
   case COB_TYPE_NUMERIC_DOUBLE:  return "COMP-2";
   case COB_TYPE_NUMERIC_DISPLAY: return "DISPLAY";
   case COB_TYPE_ALPHANUMERIC:    return "X";
   case COB_TYPE_NUMERIC_EDITED:  return "EDITED";
   case COB_TYPE_NATIONAL:        return "N";
#else
   case COB_TYPE_GROUP:           return "Group";
   case COB_TYPE_NUMERIC_COMP5:
        return byvalue == 2 ? "COMP-4" : "COMP-5";
   case COB_TYPE_NUMERIC_BINARY:  return "COMP-4";
   case COB_TYPE_NUMERIC_PACKED:  return "COMP-3";
   case COB_TYPE_NUMERIC_FLOAT:   return "COMP-1";
   case COB_TYPE_NUMERIC_DOUBLE:  return "COMP-2";
   case COB_TYPE_NUMERIC_DISPLAY: return "DISPLAY";
   case COB_TYPE_ALPHANUMERIC:    return "X";
   case COB_TYPE_NUMERIC_EDITED:  return "EDITED";
   case COB_TYPE_NATIONAL:        return "N";
#endif
   }
   sprintf (wrk,"Type %04X",type);
   return wrk;
}

COB_EXT_EXPORT int
CAPI (void *p1, ...)
{
   int      k,nargs,type,digits,scale,size,sign,byvalue;
   cob_s64_t   val;
   char     *str, wrk[80],pic[24];

   nargs = cob_get_num_params();
   printf ("CAPI called with %d parameters\n",nargs);
   for (k=1; k <= nargs; k++) {
      type   = cob_get_param_type (k);
      digits = cob_get_param_digits (k);
      scale  = cob_get_param_scale (k);
      size   = cob_get_param_size (k);
      sign   = cob_get_param_sign (k);
      byvalue = cob_get_param_constant(k);
      printf (" %d: %-8s ", k, getType (type, byvalue));
      if (byvalue) {
         printf ("BY VALUE     ");
      } else {
         printf ("BY REFERENCE ");
      }
      if (type == COB_TYPE_ALPHANUMERIC) {
         sprintf (pic, "X(%d)", size);
         str = cob_get_picx_param (k, NULL, 0);
         printf ("%-11s '%s'", pic, str);
         cob_free ((void*)str);
         cob_put_picx_param (k, "Bye!");
      } else if (type == COB_TYPE_NATIONAL) {
         sprintf (pic, "N(%d)", size); /* FIXME */
         printf ("exchange of national data is not supported yet");
      } else if (type == COB_TYPE_GROUP) {
         sprintf (pic, "(%d)", size);
         str = cob_get_grp_param (k, NULL, 0);
         printf ("%-11s '%.*s'", pic, size, str);
         cob_free ((void*)str);
         memset (wrk,' ',sizeof(wrk));
         memcpy (wrk,"Bye-Bye Birdie!",15);
         cob_put_grp_param (k, wrk, sizeof(wrk));
      } else if (type == COB_TYPE_NUMERIC_EDITED) {
         if (scale > 0) {
            sprintf (pic,"%s9(%d)V9(%d)",sign?"S":"",digits-scale,scale);
         } else {
            sprintf (pic,"%s9(%d)",sign?"S":"",digits-scale);
         }
         val = cob_get_s64_param (k);
         printf ("%-11s %lld ",pic,val);
         val = val + 130;
         val = -val;
         cob_put_s64_param (k, val);
         cob_get_grp_param (k, wrk, sizeof(wrk));
         printf (" to %.*s",size,wrk);
      } else {
         if(scale > 0) {
            sprintf (pic,"%s9(%d)V9(%d)",sign?"S":"",digits-scale,scale);
         } else {
            sprintf (pic,"%s9(%d)",sign?"S":"",digits-scale);
         }
         val = cob_get_s64_param (k);
         printf ("%-11s %lld", pic, val);
         cob_put_s64_param (k, val + 3);
      }
      printf (";\n");
      fflush (stdout);
   }
   if (nargs > 2) {
      cob_put_s64_param (7, val + 3);
   }
   return 0;
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:10472: \$COMPILE -Wno-unfinished prog.cob cmod.c"
at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished prog.cob cmod.c" "run_misc.at:10472"
( $at_check_trace; $COMPILE -Wno-unfinished prog.cob cmod.c
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:31: warning: BY CONTENT assumed for alphanumeric item 'CHRX'
prog.cob:32: warning: BY CONTENT assumed for alphanumeric item 'CHRX'
prog.cob:34: warning: BY CONTENT assumed for alphanumeric item 'GRPX'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10472"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:10478: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10478"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:21: warning: cob_put_s64_param: attempt to over-write constant parameter 1 with 2563
libcob: prog.cob:21: warning: cob_put_s64_param: attempt to over-write constant parameter 2 with 19
libcob: prog.cob:27: warning: cob_put_s64_param: parameter 7 is not within range of 4
libcob: prog.cob:28: warning: cob_put_s64_param: parameter 7 is not within range of 3
libcob: prog.cob:31: warning: cob_put_picx_param: attempt to over-write constant parameter 2 with 'Bye!'
libcob: prog.cob:32: warning: cob_put_picx_param: attempt to over-write constant parameter 2 with 'Bye!'
libcob: prog.cob:33: warning: cob_put_s64_param: attempt to over-write constant parameter 1 with 21
libcob: prog.cob:34: warning: cob_put_grp_param: attempt to over-write constant parameter 1
libcob: prog.cob:34: warning: cob_put_s64_param: attempt to over-write constant parameter 2 with 21
libcob: prog.cob:35: warning: cob_put_picx_param: attempt to over-write constant parameter 1 with 'Bye!'
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "CAPI called with 2 parameters
 1: BINARY   BY VALUE     S9(9)       2560;
 2: DISPLAY  BY VALUE     9(2)        16;
CAPI called with 2 parameters
 1: BINARY   BY REFERENCE 9(5)        1280;
 2: EDITED   BY REFERENCE S9(5)V9(2)  -51277  to   511.47 ;
CAPI called with 1 parameters
 1: BINARY   BY REFERENCE S9(5)       1024;
CAPI called with 1 parameters
 1: BINARY   BY REFERENCE 9(9)        2560;
CAPI called with 2 parameters
 1: COMP-3   BY REFERENCE 9(8)        4096;
 2: EDITED   BY REFERENCE S9(5)V9(2)  51277  to   514.07-;
CAPI called with 4 parameters
 1: DISPLAY  BY REFERENCE S9(8)       8192;
 2: BINARY   BY REFERENCE S9(5)       1027;
 3: X        BY REFERENCE X(9)        'Hello';
 4: Group    BY REFERENCE (18)        'Hello    World    ';
CAPI called with 3 parameters
 1: COMP-3   BY REFERENCE 9(8)        4099;
 2: EDITED   BY REFERENCE S9(5)V9(2)  -51407  to   512.77 ;
 3: X        BY REFERENCE X(9)        'Bye!';
CAPI called with 2 parameters
 1: BINARY   BY REFERENCE 9(5)        1283;
 2: EDITED   BY REFERENCE S9(5)V9(2)  51277  to   514.07-;
CAPI called with 2 parameters
 1: BINARY   BY REFERENCE 9(5)        1286;
 2: X        BY VALUE     X(9)        'Hello!';
CAPI called with 2 parameters
 1: BINARY   BY REFERENCE 9(5)        1289;
 2: X        BY VALUE     X(9)        'Hello!';
CAPI called with 1 parameters
 1: BINARY   BY VALUE     S9(9)       18;
CAPI called with 2 parameters
 1: Group    BY VALUE     (18)        'Bye-Bye Birdie!   ';
 2: DISPLAY  BY VALUE     9(2)        18;
CAPI called with 2 parameters
 1: X        BY VALUE     X(9)        'Fred Fish';
 2: COMP-3   BY REFERENCE 9(8)        4102;
CAPI called with 1 parameters
 1: COMP-3   BY REFERENCE S9(7)V9(2)  1250;
CAPI called with 0 parameters
COMP3    is now 00004105;
COMP4    is now 0000001292;
BINFLD5S is now +01030;
CHRX     is now Hello!   ;
NE       is now   514.07-;
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10478"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_695
#AT_START_696
at_fn_group_banner 696 'run_misc.at:10542' \
  "C API Test (field based)" "                       " 4
at_xfail=no
(
  $as_echo "696. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  BINFLD5     PIC  9(5) COMP-5  VALUE  1280.
       01  BINFLD5S    PIC S9(5) BINARY  VALUE  1024.
       01  BINFLD9     PIC  9(9) BINARY  VALUE  2560.
       01  COMP3       PIC  9(8) COMP-3  VALUE  4096.
       01  COMP3V99    PIC S9(7)V99 COMP-3  VALUE  12.50.
       01  PIC9        PIC S9(8) DISPLAY VALUE  8192.
       01  NE          PIC Z(4)9.99-.
       01  CHRX        PIC  X(9)         VALUE 'Hello'.
      *01  CHRN        PIC  N(9)         VALUE N'Hello'.
       01  GRPX.
           05  FILLER  PIC  X(9)         VALUE 'Hello'.
           05  FILLER  PIC  X(9)         VALUE 'World'.
       PROCEDURE DIVISION.
           MOVE -512.77 TO NE.
           CALL "CAPI" USING 2560 BY VALUE 16.
           CALL "CAPI" USING BINFLD5, NE.
           CALL "CAPI" USING BINFLD5S.
           CALL "CAPI" USING BINFLD9.
           MOVE  512.77 TO NE.
           CALL "CAPI" USING COMP3, NE.
           CALL "CAPI" USING PIC9 BINFLD5S CHRX GRPX.
           CALL "CAPI" USING COMP3, NE, CHRX.
           CALL "CAPI" USING BINFLD5, NE.
           MOVE "Hello!" TO CHRX.
           CALL "CAPI" USING BY VALUE BINFLD5, CHRX.
           CALL "CAPI" USING BY VALUE BINFLD5, CHRX.
           CALL "CAPI" USING LENGTH OF GRPX.
           CALL "CAPI" USING BY VALUE GRPX LENGTH OF GRPX.
           CALL "CAPI" USING "Fred Fish", COMP3.
           CALL "CAPI" USING COMP3V99.
      *    CALL "CAPI" USING CHRN.
           CALL "CAPI" .
           DISPLAY "COMP3    is now " COMP3 ";".
           DISPLAY "COMP4    is now " BINFLD5 ";".
           DISPLAY "BINFLD5S is now " BINFLD5S ";".
           DISPLAY "CHRX     is now " CHRX ";".
           DISPLAY "NE       is now " NE ";".
           STOP RUN.
_ATEOF


cat >cmod.c <<'_ATEOF'

#include <stdio.h>
#include <string.h>
#include <libcob.h>

static char *
getType (int type, int byvalue)
{
   static char wrk[24];
   switch (type) {
#if 1
   case COB_TYPE_GROUP:           return "Group";
   case COB_TYPE_NUMERIC_COMP5:
       /* fall through as the test will have different results
          on big endian systems otherwise
        return "COMP-5"; */
        COB_UNUSED (byvalue);
   case COB_TYPE_NUMERIC_BINARY:  return "BINARY";
   case COB_TYPE_NUMERIC_PACKED:  return "COMP-3";
   case COB_TYPE_NUMERIC_FLOAT:   return "COMP-1";
   case COB_TYPE_NUMERIC_DOUBLE:  return "COMP-2";
   case COB_TYPE_NUMERIC_DISPLAY: return "DISPLAY";
   case COB_TYPE_ALPHANUMERIC:    return "X";
   case COB_TYPE_NUMERIC_EDITED:  return "EDITED";
   case COB_TYPE_NATIONAL:        return "N";
#else
   case COB_TYPE_GROUP:           return "Group";
   case COB_TYPE_NUMERIC_COMP5:
        return byvalue == 2 ? "COMP-4" : "COMP-5";
   case COB_TYPE_NUMERIC_BINARY:  return "COMP-4";
   case COB_TYPE_NUMERIC_PACKED:  return "COMP-3";
   case COB_TYPE_NUMERIC_FLOAT:   return "COMP-1";
   case COB_TYPE_NUMERIC_DOUBLE:  return "COMP-2";
   case COB_TYPE_NUMERIC_DISPLAY: return "DISPLAY";
   case COB_TYPE_ALPHANUMERIC:    return "X";
   case COB_TYPE_NUMERIC_EDITED:  return "EDITED";
   case COB_TYPE_NATIONAL:        return "N";
#endif
   }
   sprintf (wrk,"Type %04X",type);
   return wrk;
}

COB_EXT_EXPORT int
CAPI (void *p1, ...)
{
   int      k,nargs,type,digits,scale,size,sign,byvalue;
   cob_s64_t   val;
   char     *str, wrk[80],pic[24];

   nargs = cob_get_num_params();
   printf ("CAPI called with %d parameters\n",nargs);
   for (k=1; k <= nargs; k++) {
      cob_field *fld = cob_get_param_field (k, "CAPI");
      type   = cob_get_field_type (fld);
      digits = cob_get_field_digits (fld);
      scale  = cob_get_field_scale (fld);
      size   = cob_get_field_size (fld);
      sign   = cob_get_field_sign (fld);
      byvalue = cob_get_field_constant (fld);
      printf (" %d: %-8s ", k, getType (type, byvalue));
      if (byvalue) {
         printf ("BY VALUE     ");
      } else {
         printf ("BY REFERENCE ");
      }
      str = (char *) cob_get_field_str_buffered (fld);
      if (type == COB_TYPE_ALPHANUMERIC) {
         sprintf (pic, "X(%d)", size);
         printf ("%-11s '%s'", pic, str);
         cob_put_field_str (fld, "Bye!");
      } else if (type == COB_TYPE_NATIONAL) {
         sprintf (pic,"N(%d)",size); /* FIXME */
         printf ("exchange of national data is not supported yet");
      } else if (type == COB_TYPE_GROUP) {
         sprintf (pic,"(%d)",size);
         printf ("%-11s '%.*s'",pic,size,str);
         cob_put_field_str (fld, "Bye-Bye Birdie!");
      } else if (type == COB_TYPE_NUMERIC_EDITED) {
         if (scale > 0) {
            sprintf (pic,"%s9(%d)V9(%d)",sign?"S":"",digits-scale,scale);
         } else {
            sprintf (pic,"%s9(%d)",sign?"S":"",digits-scale);
         }
         printf ("%-11s %s ",pic,str);
         val = cob_get_s64_param (k);
         val = val + 130;
         val = -val;
         cob_put_s64_param (k, val);
         str = (char *) cob_get_field_str (fld, wrk, 78);
         printf (" to %.*s",size,wrk);
      } else {
         if(scale > 0) {
            sprintf (pic,"%s9(%d)V9(%d)",sign?"S":"",digits-scale,scale);
         } else {
            sprintf (pic,"%s9(%d)",sign?"S":"",digits-scale);
         }
         printf ("%-11s %s", pic, str);
         val = cob_get_s64_param (k);
         sprintf (wrk, "%lld", val + 3);
         cob_put_field_str (fld, wrk);
      }
      printf (";\n");
      fflush(stdout);
   }
   return 0;
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:10700: \$COMPILE -Wno-unfinished prog.cob cmod.c"
at_fn_check_prepare_dynamic "$COMPILE -Wno-unfinished prog.cob cmod.c" "run_misc.at:10700"
( $at_check_trace; $COMPILE -Wno-unfinished prog.cob cmod.c
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:31: warning: BY CONTENT assumed for alphanumeric item 'CHRX'
prog.cob:32: warning: BY CONTENT assumed for alphanumeric item 'CHRX'
prog.cob:34: warning: BY CONTENT assumed for alphanumeric item 'GRPX'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10700"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:10706: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10706"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: warning: cob_put_field_str: attempt to over-write constant field with '2563'
libcob: warning: cob_put_field_str: attempt to over-write constant field with '19'
libcob: warning: cob_put_field_str: attempt to over-write constant field with 'Bye!'
libcob: warning: cob_put_field_str: attempt to over-write constant field with 'Bye!'
libcob: warning: cob_put_field_str: attempt to over-write constant field with '21'
libcob: warning: cob_put_field_str: attempt to over-write constant field with 'Bye-Bye Birdie!'
libcob: warning: cob_put_field_str: attempt to over-write constant field with '21'
libcob: warning: cob_put_field_str: attempt to over-write constant field with 'Bye!'
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "CAPI called with 2 parameters
 1: BINARY   BY VALUE     S9(9)       +000002560;
 2: DISPLAY  BY VALUE     9(2)        16;
CAPI called with 2 parameters
 1: BINARY   BY REFERENCE 9(5)        0000001280;
 2: EDITED   BY REFERENCE S9(5)V9(2)    512.77-  to   511.47 ;
CAPI called with 1 parameters
 1: BINARY   BY REFERENCE S9(5)       +01024;
CAPI called with 1 parameters
 1: BINARY   BY REFERENCE 9(9)        000002560;
CAPI called with 2 parameters
 1: COMP-3   BY REFERENCE 9(8)        00004096;
 2: EDITED   BY REFERENCE S9(5)V9(2)    512.77   to   514.07-;
CAPI called with 4 parameters
 1: DISPLAY  BY REFERENCE S9(8)       +00008192;
 2: BINARY   BY REFERENCE S9(5)       +01027;
 3: X        BY REFERENCE X(9)        'Hello    ';
 4: Group    BY REFERENCE (18)        'Hello    World    ';
CAPI called with 3 parameters
 1: COMP-3   BY REFERENCE 9(8)        00004099;
 2: EDITED   BY REFERENCE S9(5)V9(2)    514.07-  to   512.77 ;
 3: X        BY REFERENCE X(9)        'Bye!     ';
CAPI called with 2 parameters
 1: BINARY   BY REFERENCE 9(5)        0000001283;
 2: EDITED   BY REFERENCE S9(5)V9(2)    512.77   to   514.07-;
CAPI called with 2 parameters
 1: BINARY   BY REFERENCE 9(5)        0000001286;
 2: X        BY VALUE     X(9)        'Hello!   ';
CAPI called with 2 parameters
 1: BINARY   BY REFERENCE 9(5)        0000001289;
 2: X        BY VALUE     X(9)        'Hello!   ';
CAPI called with 1 parameters
 1: BINARY   BY VALUE     S9(9)       +000000018;
CAPI called with 2 parameters
 1: Group    BY VALUE     (18)        'Bye-Bye Birdie!   ';
 2: DISPLAY  BY VALUE     9(2)        18;
CAPI called with 2 parameters
 1: X        BY VALUE     X(9)        'Fred Fish';
 2: COMP-3   BY REFERENCE 9(8)        00004102;
CAPI called with 1 parameters
 1: COMP-3   BY REFERENCE S9(7)V9(2)  +0000012.50;
CAPI called with 0 parameters
COMP3    is now 00004105;
COMP4    is now 0000001292;
BINFLD5S is now +01030;
CHRX     is now Hello!   ;
NE       is now   514.07-;
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10706"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_696
#AT_START_697
at_fn_group_banner 697 'run_misc.at:10768' \
  "DEFAULT ROUNDED MODE" "                           " 4
at_xfail=no
(
  $as_echo "697. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       OPTIONS.
           DEFAULT ROUNDED NEAREST-EVEN.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  x           PIC 9.

       PROCEDURE       DIVISION.
           COMPUTE x ROUNDED = 1.5
           DISPLAY x
           COMPUTE x ROUNDED = 2.5
           DISPLAY x
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:10789: \$COMPILE -o prog prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -o prog prog.cob" "run_misc.at:10789"
( $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/run_misc.at:10789"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:10790: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10790"
( $at_check_trace; $COBCRUN_DIRECT ./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
2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10790"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_697
#AT_START_698
at_fn_group_banner 698 'run_misc.at:10798' \
  "OCCURS INDEXED ASCENDING" "                       " 4
at_xfail=no
(
  $as_echo "698. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  DBI-RECORD-NAMEST.
           05  FILLER.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ACM            0315 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-MGL            0303 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ZBL            0304 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ZCC            0308 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ZGL            0305 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ZOO            0306 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ZTR            0307 '.
       01  DBI-RECORD-NAMESR REDEFINES DBI-RECORD-NAMEST.
           05  DBI-RECORD-NAMES
                  OCCURS 7 TIMES
                  INDEXED BY REC-NAME-IDX
                  ASCENDING KEY IS DBI-RECORD-NAME
                  .
             10  DBI-RECORD-NAME PIC X(30).
             10  DBI-RECORD-CODE PIC 9(4).
             10  DBI-RECORD-DIR  PIC X.
       01  REC-NAME   PIC X(30).
       01  DBX-RECORD-NAMEST.
           05  FILLER.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ACM            0315 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-MGL            0303 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ZBL            0304 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ZCC            0308 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ZGL            0305 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ZOO            0306 '.
             10 FILLER PIC X(35)
                VALUE 'A-F-GEN-LEDGER-ZTR            0307 '.
       01  DBX-RECORD-NAMESR REDEFINES DBX-RECORD-NAMEST.
           05  DBX-RECORD-NAMES
                  OCCURS 7 TIMES
                  ASCENDING KEY IS DBX-RECORD-NAME
                  INDEXED BY REC-NAME-DBX
                  .
             10  DBX-RECORD-NAME PIC X(30).
             10  DBX-RECORD-CODE PIC 9(4).
             10  DBX-RECORD-DIR  PIC X.

       PROCEDURE DIVISION.
       MAIN.
           MOVE 'A-F-GEN-LEDGER-ZGL' TO REC-NAME.
           PERFORM FINDIT.
           MOVE 'JUNK' TO REC-NAME.
           PERFORM FINDIT.
           STOP RUN.

       FINDIT.
           SEARCH DBI-RECORD-NAMES
           AT END
               DISPLAY 'A ' REC-NAME ' is invalid.'
           WHEN REC-NAME = DBI-RECORD-NAME (REC-NAME-IDX)
               DISPLAY 'A ' REC-NAME ' is code '
                         DBI-RECORD-CODE (REC-NAME-IDX) '.'.

           SEARCH DBX-RECORD-NAMES
           AT END
               DISPLAY 'B ' REC-NAME ' is invalid.'
           WHEN REC-NAME = DBX-RECORD-NAME (REC-NAME-DBX)
               DISPLAY 'B ' REC-NAME ' is code '
                         DBX-RECORD-CODE (REC-NAME-DBX) '.'.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:10882: \$COMPILE -frelax-syntax-checks prog.cob "
at_fn_check_prepare_dynamic "$COMPILE -frelax-syntax-checks prog.cob " "run_misc.at:10882"
( $at_check_trace; $COMPILE -frelax-syntax-checks prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:26: warning: INDEXED should follow ASCENDING/DESCENDING
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10882"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:10886: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10886"
( $at_check_trace; $COBCRUN_DIRECT ./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 A-F-GEN-LEDGER-ZGL             is code 0305.
B A-F-GEN-LEDGER-ZGL             is code 0305.
A JUNK                           is invalid.
B JUNK                           is invalid.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10886"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_698
#AT_START_699
at_fn_group_banner 699 'run_misc.at:10896' \
  "ZERO unsigned and negative binary subscript" "    " 4
at_xfail=no
(
  $as_echo "699. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       77  UBIN        PIC  9(8) BINARY.
       77  SBIN        PIC S9(8) BINARY.
       77  UNUP        PIC  9(8).
       77  SNUP        PIC S9(8).

       01  TSTREC.
           05  TSTX PIC X(4) OCCURS 3 TIMES.
           05  TSTY PIC X(4) OCCURS 3 TIMES.

       PROCEDURE DIVISION.
           MOVE ALL 'A' TO TSTX(1).
           MOVE ALL 'B' TO TSTX(2).
           MOVE ALL 'C' TO TSTX(3).
           MOVE ALL '1' TO TSTY(1).
           MOVE ALL '2' TO TSTY(2).
           MOVE ALL '3' TO TSTY(3).
           MOVE 0  TO UNUP.
           DISPLAY "UNUP: " UNUP " is :" TSTY(UNUP) ":" UPON CONSOLE.
           MOVE 0  TO SNUP.
           DISPLAY "SNUP: " SNUP " is :" TSTY(SNUP) ":" UPON CONSOLE.
           MOVE 0  TO SBIN.
           DISPLAY "SBIN: " SBIN " is :" TSTY(SBIN) ":" UPON CONSOLE.
           MOVE -1 TO SBIN.
           DISPLAY "SBIN: " SBIN " is :" TSTY(SBIN) ":" UPON CONSOLE.
           MOVE 'xxx'   TO TSTY(SBIN).
           DISPLAY "SBIN: " SBIN " is :" TSTY(SBIN) ":" UPON CONSOLE.
      * The following would often core dump
           MOVE 0 TO UBIN.
           DISPLAY "UBIN: " UBIN " is :" TSTY(UBIN) ":" UPON CONSOLE.
           MOVE 'xxx'   TO TSTY(UBIN).
           MOVE 1 TO UBIN.
           DISPLAY "UBIN: " UBIN " is :" TSTY(UBIN) ":" UPON CONSOLE.
           STOP RUN.
_ATEOF


# Safe run with runtime checks
{ set +x
$as_echo "$at_srcdir/run_misc.at:10940: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:10940"
( $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/run_misc.at:10940"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:10941: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:10941"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:23: error: subscript of 'TSTY' 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/run_misc.at:10941"
$at_failed && at_fn_log_failure
$at_traceon; }


# Runtime checks disable, subscript may be zero or even negative
{ set +x
$as_echo "$at_srcdir/run_misc.at:10946: \$COBC -x prog.cob -o prog_unsafe"
at_fn_check_prepare_dynamic "$COBC -x prog.cob -o prog_unsafe" "run_misc.at:10946"
( $at_check_trace; $COBC -x prog.cob -o prog_unsafe
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10946"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:10947: \$COBCRUN_DIRECT ./prog_unsafe"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog_unsafe" "run_misc.at:10947"
( $at_check_trace; $COBCRUN_DIRECT ./prog_unsafe
) >>"$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 "UNUP: 00000000 is :CCCC:
SNUP: +00000000 is :CCCC:
SBIN: +00000000 is :CCCC:
SBIN: -00000001 is :BBBB:
SBIN: -00000001 is :xxx :
UBIN: 00000000 is :CCCC:
UBIN: 00000001 is :1111:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:10947"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_699
#AT_START_700
at_fn_group_banner 700 'run_misc.at:10960' \
  "Default Arithmetic (1)" "                         " 4
at_xfail=no
(
  $as_echo "700. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 NUM-A   PIC 9(3) VALUE 399.
       01 NUM-B   PIC 9(3) VALUE 211.
       01 NUM-C   PIC 9(3)V99 VALUE 212.34.
       01 NUMV1   PIC 9(3)V9.
       01 PICX    PIC X VALUE 'A'.
       01 RSLT    PIC 9(3).
       01 RSLTV1  PIC 9(3).9.
       01 RSLTV2  PIC 9(3).99.
      *
       PROCEDURE DIVISION.
       MAIN.
           COMPUTE RSLT = NUM-A + 1.1.
           DISPLAY 'Simple Compute  RSLT IS ' RSLT
           COMPUTE RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
           DISPLAY 'Single Variable RSLT IS ' RSLT
           COMPUTE RSLTV2, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
           DISPLAY 'Compute  RSLT    IS ' RSLT
           DISPLAY 'Compute  RSLTv99 IS ' RSLTV2
           COMPUTE RSLTV1, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
           DISPLAY 'Compute  RSLT    IS ' RSLT
           DISPLAY 'Compute  RSLTv9  IS ' RSLTV1
           MOVE 0 TO RSLT
           ADD NUM-C TO RSLT.
           DISPLAY 'Add      RSLT    IS ' RSLT.
           MOVE 0 TO RSLT
           ADD NUM-A NUM-C 10 TO RSLT.
           DISPLAY 'Add      RSLT    IS ' RSLT.
           SUBTRACT NUM-C FROM RSLT.
           DISPLAY 'Subtract RSLT    IS ' RSLT.
           SUBTRACT NUM-A -10 FROM RSLT.
           DISPLAY 'Subtract RSLT    IS ' RSLT.
           MOVE 0 TO RSLT
           ADD NUM-A NUM-C TO RSLT GIVING RSLTV1.
           DISPLAY 'Add      RSLTv9  IS ' RSLTV1
           MULTIPLY NUM-A BY NUM-C GIVING RSLT.
           DISPLAY 'Multiply RSLT    IS ' RSLT.
           MULTIPLY RSLT BY NUM-C.
           DISPLAY 'Multiply RSLT    IS ' RSLT.
           DIVIDE NUM-A BY 10 GIVING RSLT.
           DISPLAY 'Divide   RSLT    IS ' RSLT.
           DIVIDE RSLT BY 4 GIVING RSLTV1.
           DISPLAY 'Divide   RSLTv9  IS ' RSLTV1.
           DIVIDE RSLT BY 4 GIVING RSLT.
           DISPLAY 'Divide   RSLT    IS ' RSLT.

           COMPUTE RSLTV1, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
           DISPLAY 'Simple   RSLT    IS ' RSLT
                           ' RSLTv9  IS ' RSLTV1.

           COMPUTE RSLTV1, RSLT = ((NUM-A / (100.55 + -0.550))
                                -  (NUM-B / (10.11 * 10 - 1.1)))
                                  * (220 / 2.2)
           DISPLAY 'Complex  RSLT    IS ' RSLT
                           ' RSLTv9  IS ' RSLTV1.

           COMPUTE RSLTV1, RSLT = ((NUM-A / (101 - 1))
                                -  (NUM-B / (10 * 10))) * (200 / 2)
           DISPLAY 'Reduced  RSLT    IS ' RSLT
                           ' RSLTv9  IS ' RSLTV1.
           MOVE NUM-A TO NUMV1.
           IF ((NUMV1 / (101 - 1))
              -  (NUM-B / (10 * 10))) * (200 / 2) EQUAL 188
              DISPLAY "Not Using ARITHMETIC-OSVS"
           ELSE
              DISPLAY "Using ARITHMETIC-OSVS"
           END-IF.
           STOP RUN.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_misc.at:11036: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:11036"
( $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/run_misc.at:11036"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11038: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11038"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Simple Compute  RSLT IS 400
Single Variable RSLT IS 188
Compute  RSLT    IS 188
Compute  RSLTv99 IS 188.00
Compute  RSLT    IS 188
Compute  RSLTv9  IS 188.0
Add      RSLT    IS 212
Add      RSLT    IS 621
Subtract RSLT    IS 408
Subtract RSLT    IS 019
Add      RSLTv9  IS 611.3
Multiply RSLT    IS 723
Multiply RSLT    IS 723
Divide   RSLT    IS 039
Divide   RSLTv9  IS 009.7
Divide   RSLT    IS 009
Simple   RSLT    IS 188 RSLTv9  IS 188.0
Complex  RSLT    IS 188 RSLTv9  IS 188.0
Reduced  RSLT    IS 188 RSLTv9  IS 188.0
Not Using ARITHMETIC-OSVS
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11038"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_700
#AT_START_701
at_fn_group_banner 701 'run_misc.at:11064' \
  "Default Arithmetic Test (2)" "                    " 4
at_xfail=no
(
  $as_echo "701. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  VAL                 PIC S9(7)V99 COMP-3 VALUE 20500.
       01  DIV1                PIC S9(7)V99 COMP-3 VALUE 0.9.
       01  DIV2                PIC S9(7)V99 COMP-3 VALUE 33.45.
       01  DIV3                PIC S9(7)V99 COMP-3 VALUE 9.
       01  MUL1                PIC S9(7)V99 COMP-3 VALUE 10.
       01  MUL2                PIC S9(7)V99 COMP-3 VALUE 5.
       01  MUL3                PIC S9(7)V99 COMP-3 VALUE 2.
       01  RES                 PIC S9(7)V99 COMP-3.
       PROCEDURE        DIVISION.
           COMPUTE RES = VAL / DIV1 / DIV2.
           DISPLAY 'RES = ' RES.
           COMPUTE RES ROUNDED = VAL / DIV1 / DIV2.
           DISPLAY 'RES ROUNDED = ' RES.
           COMPUTE RES = VAL * MUL1 / DIV3 / DIV2.
           DISPLAY 'RES MULT1 = ' RES.
           COMPUTE RES = VAL * MUL2 * MUL3 / DIV3 / DIV2.
           DISPLAY 'RES MULT2 = ' RES.
           COMPUTE RES = VAL / DIV1.
           DISPLAY 'RES 1 = ' RES.
           COMPUTE RES = RES / DIV2.
           DISPLAY 'RES F = ' RES.
           COMPUTE RES ROUNDED MODE AWAY-FROM-ZERO =
                VAL / DIV1 / DIV2.
           DISPLAY 'RES ROUNDED AWAY = ' RES.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11100: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:11100"
( $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/run_misc.at:11100"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11102: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11102"
( $at_check_trace; $COBCRUN_DIRECT ./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 "RES = +0000680.95
RES ROUNDED = +0000680.95
RES MULT1 = +0000680.95
RES MULT2 = +0000680.95
RES 1 = +0022777.77
RES F = +0000680.94
RES ROUNDED AWAY = +0000680.96
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11102"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_701
#AT_START_702
at_fn_group_banner 702 'run_misc.at:11115' \
  "OSVS Arithmetic (1)" "                            " 4
at_xfail=no
(
  $as_echo "702. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 NUM-A   PIC 9(3) VALUE 399.
       01 NUM-B   PIC 9(3) VALUE 211.
       01 NUM-C   PIC 9(3)V99 VALUE 212.34.
       01 NUMV1   PIC 9(3)V9.
       01 PICX    PIC X VALUE 'A'.
       01 RSLT    PIC 9(3).
       01 RSLTV1  PIC 9(3).9.
       01 RSLTV2  PIC 9(3).99.
      *
       PROCEDURE DIVISION.
       MAIN.
           COMPUTE RSLT = NUM-A + 1.1.
           DISPLAY 'Simple Compute  RSLT IS ' RSLT
           COMPUTE RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
           DISPLAY 'Single Variable RSLT IS ' RSLT
           COMPUTE RSLTV2, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
           DISPLAY 'Compute  RSLT    IS ' RSLT
           DISPLAY 'Compute  RSLTv99 IS ' RSLTV2
           COMPUTE RSLTV1, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
           DISPLAY 'Compute  RSLT    IS ' RSLT
           DISPLAY 'Compute  RSLTv9  IS ' RSLTV1
           MOVE 0 TO RSLT
           ADD NUM-C TO RSLT.
           DISPLAY 'Add      RSLT    IS ' RSLT.
           MOVE 0 TO RSLT
           ADD NUM-A NUM-C 10 TO RSLT.
           DISPLAY 'Add      RSLT    IS ' RSLT.
           SUBTRACT NUM-C FROM RSLT.
           DISPLAY 'Subtract RSLT    IS ' RSLT.
           SUBTRACT NUM-A -10 FROM RSLT.
           DISPLAY 'Subtract RSLT    IS ' RSLT.
           MOVE 0 TO RSLT
           ADD NUM-A NUM-C TO RSLT GIVING RSLTV1.
           DISPLAY 'Add      RSLTv9  IS ' RSLTV1
           MULTIPLY NUM-A BY NUM-C GIVING RSLT.
           DISPLAY 'Multiply RSLT    IS ' RSLT.
           MULTIPLY RSLT BY NUM-C.
           DISPLAY 'Multiply RSLT    IS ' RSLT.
           DIVIDE NUM-A BY 10 GIVING RSLT.
           DISPLAY 'Divide   RSLT    IS ' RSLT.
           DIVIDE RSLT BY 4 GIVING RSLTV1.
           DISPLAY 'Divide   RSLTv9  IS ' RSLTV1.
           DIVIDE RSLT BY 4 GIVING RSLT.
           DISPLAY 'Divide   RSLT    IS ' RSLT.

           COMPUTE RSLTV1, RSLT = ((NUM-A / 100) - (NUM-B / 100)) * 100
           DISPLAY 'Simple   RSLT    IS ' RSLT
                           ' RSLTv9  IS ' RSLTV1.

           COMPUTE RSLTV1, RSLT = ((NUM-A / (100.55 + -0.550))
                                -  (NUM-B / (10.11 * 10 - 1.1)))
                                  * (220 / 2.2)
           DISPLAY 'Complex  RSLT    IS ' RSLT
                           ' RSLTv9  IS ' RSLTV1.

           COMPUTE RSLTV1, RSLT = ((NUM-A / (101 - 1))
                                -  (NUM-B / (10 * 10))) * (200 / 2)
           DISPLAY 'Reduced  RSLT    IS ' RSLT
                           ' RSLTv9  IS ' RSLTV1.
           MOVE NUM-A TO NUMV1.
           IF ((NUMV1 / (101 - 1))
              -  (NUM-B / (10 * 10))) * (200 / 2) EQUAL 188
              DISPLAY "Not Using ARITHMETIC-OSVS"
           ELSE
              DISPLAY "Using ARITHMETIC-OSVS"
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11192: \$COMPILE -farithmetic-osvs prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -farithmetic-osvs prog.cob" "run_misc.at:11192"
( $at_check_trace; $COMPILE -farithmetic-osvs 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 'MAIN':
prog.cob:19: warning: precision of result may change with arithmetic-osvs
prog.cob:21: warning: precision of result may change with arithmetic-osvs
prog.cob:24: warning: precision of result may change with arithmetic-osvs
prog.cob:31: warning: precision of result may change with arithmetic-osvs
prog.cob:35: warning: precision of result may change with arithmetic-osvs
prog.cob:38: warning: precision of result may change with arithmetic-osvs
prog.cob:51: warning: precision of result may change with arithmetic-osvs
prog.cob:55: warning: precision of result may change with arithmetic-osvs
prog.cob:61: warning: precision of result may change with arithmetic-osvs
prog.cob:66: warning: precision of result may change with arithmetic-osvs
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11192"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11206: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11206"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Simple Compute  RSLT IS 400
Single Variable RSLT IS 100
Compute  RSLT    IS 188
Compute  RSLTv99 IS 188.00
Compute  RSLT    IS 180
Compute  RSLTv9  IS 180.0
Add      RSLT    IS 212
Add      RSLT    IS 621
Subtract RSLT    IS 408
Subtract RSLT    IS 019
Add      RSLTv9  IS 611.3
Multiply RSLT    IS 723
Multiply RSLT    IS 723
Divide   RSLT    IS 039
Divide   RSLTv9  IS 009.7
Divide   RSLT    IS 009
Simple   RSLT    IS 180 RSLTv9  IS 180.0
Complex  RSLT    IS 188 RSLTv9  IS 188.0
Reduced  RSLT    IS 180 RSLTv9  IS 180.0
Using ARITHMETIC-OSVS
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11206"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_702
#AT_START_703
at_fn_group_banner 703 'run_misc.at:11232' \
  "OSVS Arithmetic Test (2)" "                       " 4
at_xfail=no
(
  $as_echo "703. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  VAL                 PIC S9(7)V99 COMP-3 VALUE 20500.
       01  DIV1                PIC S9(7)V99 COMP-3 VALUE 0.9.
       01  DIV2                PIC S9(7)V99 COMP-3 VALUE 33.45.
       01  DIV3                PIC S9(7)V99 COMP-3 VALUE 9.
       01  MUL1                PIC S9(7)V99 COMP-3 VALUE 10.
       01  MUL2                PIC S9(7)V99 COMP-3 VALUE 5.
       01  MUL3                PIC S9(7)V99 COMP-3 VALUE 2.
       01  RES                 PIC S9(7)V99 COMP-3.
       PROCEDURE        DIVISION.
           COMPUTE RES = VAL / DIV1 / DIV2.
           DISPLAY 'RES = ' RES.
           COMPUTE RES ROUNDED = VAL / DIV1 / DIV2.
           DISPLAY 'RES ROUNDED = ' RES.
           COMPUTE RES = VAL * MUL1 / DIV3 / DIV2.
           DISPLAY 'RES MULT1 = ' RES.
           COMPUTE RES = VAL * MUL2 * MUL3 / DIV3 / DIV2.
           DISPLAY 'RES MULT2 = ' RES.
           COMPUTE RES = VAL / DIV1.
           DISPLAY 'RES 1 = ' RES.
           COMPUTE RES = RES / DIV2.
           DISPLAY 'RES F = ' RES.
           COMPUTE RES ROUNDED MODE AWAY-FROM-ZERO =
                VAL / DIV1 / DIV2.
           DISPLAY 'RES ROUNDED AWAY = ' RES.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11268: \$COMPILE -std=ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=ibm prog.cob" "run_misc.at:11268"
( $at_check_trace; $COMPILE -std=ibm prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:16: warning: precision of result may change with arithmetic-osvs
prog.cob:18: warning: precision of result may change with arithmetic-osvs
prog.cob:20: warning: precision of result may change with arithmetic-osvs
prog.cob:22: warning: precision of result may change with arithmetic-osvs
prog.cob:28: warning: precision of result may change with arithmetic-osvs
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11268"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11276: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11276"
( $at_check_trace; $COBCRUN_DIRECT ./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 "RES = +000068094
RES ROUNDED = +000068095
RES MULT1 = +000068094
RES MULT2 = +000068095
RES 1 = +002277777
RES F = +000068094
RES ROUNDED AWAY = +000068095
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11276"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_703
#AT_START_704
at_fn_group_banner 704 'run_misc.at:11289' \
  "SET CONSTANT directive" "                         " 4
at_xfail=no
(
  $as_echo "704. $at_setup_line: testing $at_desc ..."
  $at_traceon



# The SET CONSTANT directive defines a level78 variable
# for the current compilation unit

# original MF extension: $SET CONSTANT
cat >prog.cob <<'_ATEOF'

       $SET CONSTANT DOGGY "Barky"
       $SET CONSTANT PONY "Blacky"
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  THEDOG    PIC X(6) VALUE DOGGY.
       77  MYHORSE   PIC X(7) VALUE PONY.
       $SET CONSTANT PONY "White"
      *
       PROCEDURE DIVISION.
       MAIN.
           DISPLAY "Your Dog's name is " DOGGY ";".
           DISPLAY "The Dog's name is " THEDOG ";".
           DISPLAY "My Horse is " MYHORSE ";".
           DISPLAY "My little pony is " PONY ".".
           STOP RUN.
_ATEOF


# OpenCOBOL/GnuCOBOL extension: >>SET CONSTANT
cat >prog2.cob <<'_ATEOF'

       >>SET CONSTANT DOGGY "Barky"
       >>SET CONSTANT PONY "Blacky"
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog2.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  THEDOG    PIC X(6) VALUE DOGGY.
       77  MYHORSE   PIC X(7) VALUE PONY.
       >>SET CONSTANT PONY "White"
      *
       PROCEDURE DIVISION.
       MAIN.
           DISPLAY "Your Dog's name is " DOGGY ";".
           DISPLAY "The Dog's name is " THEDOG ";".
           DISPLAY "My Horse is " MYHORSE ";".
           DISPLAY "My little pony is " PONY ".".
           STOP RUN.
_ATEOF


# OpenCOBOL/GnuCOBOL extension: >>DEFINE CONSTANT
cat >prog3.cob <<'_ATEOF'

       >>DEFINE CONSTANT DOGGY "Barky"
       >>DEFINE CONSTANT PONY "Blacky"
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  THEDOG    PIC X(6) VALUE DOGGY.
       77  MYHORSE   PIC X(7) VALUE PONY.
       >>DEFINE CONSTANT PONY "White" OVERRIDE
      *
       PROCEDURE DIVISION.
       MAIN.
           DISPLAY "Your Dog's name is " DOGGY ";".
           DISPLAY "The Dog's name is " THEDOG ";".
           DISPLAY "My Horse is " MYHORSE ";".
           DISPLAY "My little pony is " PONY ".".
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11358: \$COMPILE -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_misc.at:11358"
( $at_check_trace; $COMPILE -std=mf 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/run_misc.at:11358"
$at_failed && at_fn_log_failure
$at_traceon; }


# Note: MF does not redefine a value via SET CONSTANT
# the first definitions wins (we should add a warning)
{ set +x
$as_echo "$at_srcdir/run_misc.at:11362: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11362"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Your Dog's name is Barky;
The Dog's name is Barky ;
My Horse is Blacky ;
My little pony is Blacky.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11362"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11369: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_misc.at:11369"
( $at_check_trace; $COMPILE prog2.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/run_misc.at:11369"
$at_failed && at_fn_log_failure
$at_traceon; }


# Note: MF does not redefine a value via SET CONSTANT
# the first definitions wins (we should add a warning)
{ set +x
$as_echo "$at_srcdir/run_misc.at:11373: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:11373"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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 "Your Dog's name is Barky;
The Dog's name is Barky ;
My Horse is Blacky ;
My little pony is Blacky.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11373"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11380: \$COMPILE -fdefine-constant-directive=ok prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdefine-constant-directive=ok prog3.cob" "run_misc.at:11380"
( $at_check_trace; $COMPILE -fdefine-constant-directive=ok prog3.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/run_misc.at:11380"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11382: \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_misc.at:11382"
( $at_check_trace; $COBCRUN_DIRECT ./prog3
) >>"$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 "Your Dog's name is Barky;
The Dog's name is Barky ;
My Horse is Blacky ;
My little pony is White.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11382"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_704
#AT_START_705
at_fn_group_banner 705 'run_misc.at:11392' \
  "DEFINE OVERRIDE" "                                " 4
at_xfail=no
(
  $as_echo "705. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       >>SET CONSTANT DOGGY "Pluto"
       >>SET CONSTANT PONY "Piper"
       WORKING-STORAGE SECTION.
       01  THEDOG    PIC X(6) VALUE DOGGY.

       >>DEFINE DPONY  AS PARAMETER OVERRIDE
       >>IF DPONY IS NOT DEFINED
       >>DEFINE DPONY AS "No Dpony"
       >>END-IF
       01  CNSPONY     CONSTANT FROM DPONY.

       >>DEFINE ENVPONY AS PARAMETER OVERRIDE
       >>IF ENVPONY IS NOT DEFINED
       >>DEFINE ENVPONY AS "No EnvPony"
       >>END-IF
       01  HORSE       CONSTANT FROM ENVPONY.
       77  MYHORSE    PIC X(12) VALUE HORSE  .
       77  MYPONYENV  PIC X(12).
      *
       PROCEDURE DIVISION.
       MAIN.
           DISPLAY "ENVPONY" UPON ENVIRONMENT-NAME
           ACCEPT  MYPONYENV FROM ENVIRONMENT-VALUE.
           DISPLAY "ENVPONY env var set to " MYPONYENV ";".
           DISPLAY "1st Dog's name is " DOGGY ";".
           DISPLAY "2nd Dog's name is " PONY ";".
       >>IF ENVPONY IS DEFINED
           DISPLAY "ENVPONY is DEFINED as " HORSE ";".
       >>ELSE
           DISPLAY "ENVPONY was NOT DEFINED;".
       >>END-IF
           DISPLAY "DPONY set to " CNSPONY ";".
       >>IF ENVPONY = "WHITE"
       >>DEFINE CONSTANT PONY AS "White Horse" OVERRIDE
       >>ELSE
       >>DEFINE CONSTANT PONY AS "default Dirty" OVERRIDE
       >>END-IF
           DISPLAY "My pony is " PONY ";".
       >>IF DPONY IS DEFINED
           DISPLAY "DPONY is DEFINED as " CNSPONY ";".
       >>END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11443: ENVPONY=WHITE \$COMPILE prog.cob -fdefine-constant-directive=ok -DDPONY=Stallone"
at_fn_check_prepare_dynamic "ENVPONY=WHITE $COMPILE prog.cob -fdefine-constant-directive=ok -DDPONY=Stallone" "run_misc.at:11443"
( $at_check_trace; ENVPONY=WHITE $COMPILE prog.cob -fdefine-constant-directive=ok -DDPONY=Stallone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11443"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11445: ENVPONY=WHITE ./prog"
at_fn_check_prepare_trace "run_misc.at:11445"
( $at_check_trace; ENVPONY=WHITE ./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 "ENVPONY env var set to WHITE       ;
1st Dog's name is Pluto;
2nd Dog's name is Piper;
ENVPONY is DEFINED as WHITE;
DPONY set to Stallone;
My pony is White Horse;
DPONY is DEFINED as Stallone;
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11445"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_705
#AT_START_706
at_fn_group_banner 706 'run_misc.at:11458' \
  "DEFINE Defaults" "                                " 4
at_xfail=no
(
  $as_echo "706. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       >>SET CONSTANT DOGGY "Pluto"
       >>SET CONSTANT PONY "Piper"
       WORKING-STORAGE SECTION.
       01  THEDOG    PIC X(6) VALUE DOGGY.

       >>DEFINE DPONY  AS PARAMETER OVERRIDE
       >>IF DPONY IS NOT DEFINED
       >>DEFINE DPONY AS "No Dpony"
       >>END-IF
       01  CNSPONY     CONSTANT FROM DPONY.

       >>DEFINE ENVPONY AS PARAMETER OVERRIDE
       >>IF ENVPONY IS NOT DEFINED
       >>DEFINE ENVPONY AS "No EnvPony"
       >>END-IF
       01  HORSE       CONSTANT FROM ENVPONY.
       77  MYHORSE    PIC X(12) VALUE HORSE  .
       77  MYPONYENV  PIC X(12).
      *
       PROCEDURE DIVISION.
       MAIN.
           DISPLAY "ENVPONY" UPON ENVIRONMENT-NAME
           ACCEPT  MYPONYENV FROM ENVIRONMENT-VALUE.
           DISPLAY "ENVPONY env var set to " MYPONYENV ";".
           DISPLAY "1st Dog's name is " DOGGY ";".
           DISPLAY "2nd Dog's name is " PONY ";".
       >>IF ENVPONY IS DEFINED
           DISPLAY "ENVPONY is DEFINED as " HORSE ";".
       >>ELSE
           DISPLAY "ENVPONY was NOT DEFINED;".
       >>END-IF
           DISPLAY "DPONY set to " CNSPONY ";".
       >>IF ENVPONY = "WHITE"
       >>DEFINE CONSTANT PONY AS "White Horse" OVERRIDE
       >>ELSE
       >>DEFINE CONSTANT PONY AS "default Dirty" OVERRIDE
       >>END-IF
           DISPLAY "My pony is " PONY ";".
       >>IF DPONY IS DEFINED
           DISPLAY "DPONY is DEFINED as " CNSPONY ";".
       >>END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11509: \$COMPILE prog.cob -fdefine-constant-directive=ok"
at_fn_check_prepare_dynamic "$COMPILE prog.cob -fdefine-constant-directive=ok" "run_misc.at:11509"
( $at_check_trace; $COMPILE prog.cob -fdefine-constant-directive=ok
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11509"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11511: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11511"
( $at_check_trace; $COBCRUN_DIRECT ./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 "ENVPONY env var set to             ;
1st Dog's name is Pluto;
2nd Dog's name is Piper;
ENVPONY is DEFINED as No EnvPony;
DPONY set to No Dpony;
My pony is default Dirty;
DPONY is DEFINED as No Dpony;
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11511"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_706
#AT_START_707
at_fn_group_banner 707 'run_misc.at:11524' \
  "78 VALUE" "                                       " 4
at_xfail=no
(
  $as_echo "707. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       78  DOGGY     VALUE "Barky".
       01  MYREC.
          05  FLD1   PIC 9(2).
          05  FLD2   PIC X(7).
          05  FLD3   PIC X(2) OCCURS 5 TIMES.
          05  FLD4   PIC X(4).
          05  FLD5   PIC X(4).
       01  PICX      PIC XXX VALUE 'Abc'.
       78  HUN       VALUE 10 * (10 + LENGTH OF PICX) + 12.35-2+3.
       78  HUN2      VALUE HUN * (10 + LENGTH OF PICX) -4.
       01  THEDOG    PIC X(6) VALUE DOGGY.
       78  DIV1      VALUE 100 / 3.
       78  NUM2      VALUE 1 + 2 * 3.
       LINKAGE SECTION.
       01  XMYREC.
          05  XFLD1   PIC 9(2).
          05  XFLD2   PIC X(7).
             78  XPOS3    VALUE NEXT.
          05  XFLD3   PIC X(2) OCCURS 5 TIMES.
             78  XPOS4    VALUE NEXT.
          05  XFLD4   PIC X(4).
          05  XFLD5   PIC X(4).
       78  XSTRT4     VALUE START OF XFLD4.
      *
       PROCEDURE DIVISION.
       MAIN.
           DISPLAY "DIV1 is " DIV1.
           DISPLAY "HUN  is " HUN.
           DISPLAY "HUN2 is " HUN2.
           MOVE NUM2 TO FLD1
           IF FLD1 = 9
             DISPLAY "NUM2 is " NUM2 " left to right precedence."
           ELSE
             DISPLAY "NUM2 is " NUM2 " normal precedence."
           END-IF.
           DISPLAY "XFLD3 starts at " XPOS3.
           DISPLAY "XFLD4 starts at " XSTRT4.
           DISPLAY "XFLD4 starts at " XPOS4.
           DISPLAY "Your Dog's name is " DOGGY ";".
           DISPLAY "The Dog's name is " THEDOG ";".
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11575: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:11575"
( $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/run_misc.at:11575"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11577: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11577"
( $at_check_trace; $COBCRUN_DIRECT ./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 "DIV1 is 33
HUN  is 143
HUN2 is 1855
NUM2 is 9 left to right precedence.
XFLD3 starts at 9
XFLD4 starts at 19
XFLD4 starts at 11
Your Dog's name is Barky;
The Dog's name is Barky ;
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11577"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_707
#AT_START_708
at_fn_group_banner 708 'run_misc.at:11592' \
  "01 CONSTANT" "                                    " 4
at_xfail=no
(
  $as_echo "708. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       >>DEFINE MYDOG AS "Piper"
       >>DEFINE MYNUM1 AS 11
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  MYREC.
          05  FLD1   PIC 9(2).
          05  FLD2   PIC X(7).
          05  FLD3   PIC X(2) OCCURS 5 TIMES.
          05  FLD4   PIC X(4).
          05  FLD5   PIC X(4).
       01  PICX      PIC XXX VALUE 'Abc'.
       01  CAT       CONSTANT  'Cat '.
       01  DOG       CONSTANT  'Dog '.
       01  YARD      CONSTANT  CAT & "& " & DOG.
       78  HUN       VALUE 10 * (10 + LENGTH OF PICX) + 12.35-2+3.
       78  HUN2      VALUE HUN * (10 + LENGTH OF PICX) -4.
       78  DIV1      VALUE 100 / 3.
       78  NUM2      VALUE 1 + 2 * 3.
       01  CON3      CONSTANT (((1 + 2) * NUM2) - 4).
       01  CON4      CONSTANT AS 3.1416 + CON3.
       01  CON5      CONSTANT 1 + 2 * 3.
       01  DOGNAME   CONSTANT FROM MYDOG.
       01  NUM1      CONSTANT FROM MYNUM1.
       01  CON6      CONSTANT AS CON5 + NUM1.
       >> IF NUM2 DEFINED  *> optional passed from command line
       01  NUM2      CONSTANT FROM MYNUM2.
       >> END-IF
      *
       PROCEDURE DIVISION.
       MAIN.
           DISPLAY "CAT  is '" CAT "'".
           DISPLAY "Yard is '" YARD "'".
           DISPLAY "DIV1 is " DIV1.
           DISPLAY "HUN  is " HUN.
           DISPLAY "HUN2 is " HUN2.
           MOVE NUM2 TO FLD1
           IF FLD1 = 9
             DISPLAY "78 VALUE has simple left to right precedence."
           ELSE
             DISPLAY "78 VALUE is " NUM2 " normal precedence."
           END-IF.
           MOVE CON5 TO FLD1
           IF FLD1 = 7
             DISPLAY "01 CONSTANT has normal operator precedence."
           ELSE
             DISPLAY "01 CONSTANT is " CON5 " left to right precedence."
           END-IF.
           DISPLAY "CON3 is " CON3.
           DISPLAY "CON4 is " CON4 " vs " 3.141596
                   " & " -2.189 " & " +12.
           DISPLAY "CON6 is " CON6 "."
           DISPLAY "My Dog's name is " DOGNAME ";".
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11653: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:11653"
( $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/run_misc.at:11653"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11655: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11655"
( $at_check_trace; $COBCRUN_DIRECT ./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 "CAT  is 'Cat '
Yard is 'Cat & Dog '
DIV1 is 33
HUN  is 143
HUN2 is 1855
78 VALUE has simple left to right precedence.
01 CONSTANT has normal operator precedence.
CON3 is 23
CON4 is 26 vs 3.141596 & -2.189 & +12
CON6 is 18.
My Dog's name is Piper;
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11655"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_708
#AT_START_709
at_fn_group_banner 709 'run_misc.at:11672' \
  "DISPLAY UPON" "                                   " 4
at_xfail=no
(
  $as_echo "709. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           PRINTER IS PRINTER.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 note PIC X(05).
       PROCEDURE DIVISION CHAINING note.
       DISPLAY "This is sent to CONSOLE " note UPON CONSOLE.
       DISPLAY "This is sent to SYSERR  " note UPON SYSERR.
       DISPLAY "This is sent to PRINTER " note UPON PRINTER.
       DISPLAY "This is also sent to CONSOLE " note UPON CONSOLE.
       DISPLAY "This is also sent to SYSERR  " note UPON SYSERR.
       DISPLAY "This is also sent to PRINTER " note UPON PRINTER.
       DISPLAY "This is sent to SYSPUNCH " note UPON SYSPUNCH
            ON EXCEPTION DISPLAY 'NO ...'        UPON SYSERR.
       DISPLAY "This is also sent to SYSPUNCH " note UPON SYSPCH
            ON EXCEPTION DISPLAY ' ... SYSPUNCH' UPON SYSERR.
       STOP RUN RETURNING 0.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11700: \$COMPILE -std=ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=ibm prog.cob" "run_misc.at:11700"
( $at_check_trace; $COMPILE -std=ibm 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/run_misc.at:11700"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11702: \$COBCRUN_DIRECT ./prog PLAIN"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog PLAIN" "run_misc.at:11702"
( $at_check_trace; $COBCRUN_DIRECT ./prog PLAIN
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "This is sent to SYSERR  PLAIN
This is also sent to SYSERR  PLAIN
libcob: prog.cob:18: warning: COB_DISPLAY_PUNCH_FILE is invalid, output to SYSPUNCH skipped
NO ...
 ... SYSPUNCH
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "This is sent to CONSOLE PLAIN
This is sent to PRINTER PLAIN
This is also sent to CONSOLE PLAIN
This is also sent to PRINTER PLAIN
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11702"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11715: COB_DISPLAY_PRINT_PIPE='cat >>prt.log' \\
COB_DISPLAY_PUNCH_FILE='punch.out' \\
\$COBCRUN_DIRECT ./prog PIPE."
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:11715"
( $at_check_trace; COB_DISPLAY_PRINT_PIPE='cat >>prt.log' \
COB_DISPLAY_PUNCH_FILE='punch.out' \
$COBCRUN_DIRECT ./prog PIPE.
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "This is sent to SYSERR  PIPE.
This is also sent to SYSERR  PIPE.
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "This is sent to CONSOLE PIPE.
This is also sent to CONSOLE PIPE.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11715"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11725: COB_DISPLAY_PRINT_FILE='prt.log' \\
COB_DISPLAY_PUNCH_FILE='punch.out' \\
\$COBCRUN_DIRECT ./prog PRINT"
at_fn_check_prepare_notrace 'an embedded newline' "run_misc.at:11725"
( $at_check_trace; COB_DISPLAY_PRINT_FILE='prt.log' \
COB_DISPLAY_PUNCH_FILE='punch.out' \
$COBCRUN_DIRECT ./prog PRINT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "This is sent to SYSERR  PRINT
This is also sent to SYSERR  PRINT
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "This is sent to CONSOLE PRINT
This is also sent to CONSOLE PRINT
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11725"
$at_failed && at_fn_log_failure
$at_traceon; }




cat >reference <<'_ATEOF'
This is sent to PRINTER PIPE.
This is also sent to PRINTER PIPE.
This is sent to PRINTER PRINT
This is also sent to PRINTER PRINT
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11744: diff reference prt.log"
at_fn_check_prepare_trace "run_misc.at:11744"
( $at_check_trace; diff reference prt.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11744"
if $at_failed; then :
  # Previous test "failed" --> check if EOL of PIPE is the issue

{ set +x
$as_echo "$at_srcdir/run_misc.at:11748: \$SED -e 's/PIPE.\\r/PIPE./g' prt.log > prt2.log"
at_fn_check_prepare_dynamic "$SED -e 's/PIPE.\\r/PIPE./g' prt.log > prt2.log" "run_misc.at:11748"
( $at_check_trace; $SED -e 's/PIPE.\r/PIPE./g' prt.log > prt2.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11748"
$at_failed && at_fn_log_failure  \
"./prt.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:11749: diff reference prt2.log"
at_fn_check_prepare_trace "run_misc.at:11749"
( $at_check_trace; diff reference prt2.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11749"
$at_failed && at_fn_log_failure  \
"./prt.log"
$at_traceon; }


fi
$at_failed && at_fn_log_failure  \
"./prt.log"
$at_traceon; }




cat >reference <<'_ATEOF'
This is sent to SYSPUNCH PRINT
This is also sent to SYSPUNCH PRINT
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11759: diff reference punch.out"
at_fn_check_prepare_trace "run_misc.at:11759"
( $at_check_trace; diff reference punch.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/run_misc.at:11759"
$at_failed && at_fn_log_failure  \
"./prt.log" \
"./punch.out"
$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_709
#AT_START_710
at_fn_group_banner 710 'run_misc.at:11764' \
  "FLOAT-DECIMAL w/o SIZE ERROR" "                   " 4
at_xfail=no
(
  $as_echo "710. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  FD16                        USAGE FLOAT-DECIMAL-16.
       01  SV16                        USAGE FLOAT-DECIMAL-16.
       01  FD34                        USAGE FLOAT-DECIMAL-34.
       01  SV34                        USAGE FLOAT-DECIMAL-34.

       PROCEDURE DIVISION.
       CND-000.
           DISPLAY "--- FLOAT-DECIMAL-34 ---"
           COMPUTE FD34 = (((1.0E7 / 2.1E0) / 3.1E0) - 5.0E-1) * 6.0E0
           DISPLAY "A: " FD34

           COMPUTE FD34 = (((1.0E7 / 2.9E0) / 3.9E0) - 5.0E-1) * 6.0E0
           DISPLAY "B: " FD34
           MOVE ZERO TO FD34.
           COMPUTE FD34 = 1.0E3 / 2.1E0
                   ON SIZE ERROR DISPLAY "Z: " FD34 " SIZE ERROR"
               NOT ON SIZE ERROR DISPLAY "Z: " FD34 " IS OK"
           END-COMPUTE.

           DISPLAY "    ..."
           DISPLAY "--- FLOAT-DECIMAL-16 ---"
           COMPUTE FD16 = (((1.0E7 / 2.1E0) / 3.1E0) - 5.0E-1) * 6.0E0
           DISPLAY "A: " FD16

           COMPUTE FD16 = (((1.0E7 / 2.9E0) / 3.9E0) - 5.0E-1) * 6.0E0
           DISPLAY "B: " FD16
           MOVE ZERO TO FD16.
           COMPUTE FD16 = 1.0E3 / 2.1E0
                   ON SIZE ERROR DISPLAY "Z: " FD16 " SIZE ERROR"
               NOT ON SIZE ERROR DISPLAY "Z: " FD16 " IS OK"
           END-COMPUTE.

           DISPLAY "    ..."
           DISPLAY "--- 99 + 1 / 3 ---"
           MOVE -1 TO FD16, FD34.
           COMPUTE FD34 = 99 + 1 / 3
                   ON SIZE ERROR DISPLAY "FD34: " FD34 " SIZE ERROR"
               NOT ON SIZE ERROR DISPLAY "FD34: " FD34 " IS OK"
           END-COMPUTE.
           COMPUTE FD16 = 99 + 1 / 3
                   ON SIZE ERROR DISPLAY "FD16: " FD16 " SIZE ERROR"
               NOT ON SIZE ERROR DISPLAY "FD16: " FD16 " IS OK"
           END-COMPUTE.

           DISPLAY "    ..."
           DISPLAY "--- 99 ---"
           MOVE -1 TO FD16, FD34.
           COMPUTE FD34 = 99
                   ON SIZE ERROR DISPLAY "FD34: " FD34 " SIZE ERROR"
               NOT ON SIZE ERROR DISPLAY "FD34: " FD34 " IS OK"
           END-COMPUTE.
           COMPUTE FD16 = 99
                   ON SIZE ERROR DISPLAY "FD16: " FD16 " SIZE ERROR"
               NOT ON SIZE ERROR DISPLAY "FD16: " FD16 " IS OK"
           END-COMPUTE.

       CND-100-OK.
           DISPLAY "    ..."
           DISPLAY "--- Test overflow ---"
           MOVE 9900000000000 TO FD16, FD34.
           PERFORM 390 TIMES
             MOVE FD16 TO SV16
             COMPUTE FD16 = FD16 * 10
                    ON SIZE ERROR GO TO CND-100-ERR
             END-COMPUTE
             IF FD16 < 9.0
               DISPLAY "FD16: " FD16 " IS Wrong"
               GO TO CND-100-ERR
             END-IF
           END-PERFORM.
           DISPLAY "FD16: " FD16 " IS OK".
           GO TO CND-200-OK.
       CND-100-ERR.
           DISPLAY "FD16: after " SV16 " SIZE ERROR".

       CND-200-OK.
           MOVE 9900000000000 TO FD16, FD34.
           PERFORM 6500 TIMES
             MOVE FD34 TO SV34
             COMPUTE FD34 = FD34 * 10
                    ON SIZE ERROR GO TO CND-200-ERR
             END-COMPUTE
             IF FD34 < 9.0
               GO TO CND-200-ERR
             END-IF
           END-PERFORM.
           DISPLAY "FD34: " FD34 " IS OK".
           GO TO CND-380-OK.
       CND-200-ERR.
           DISPLAY "FD34: after " SV34 " SIZE ERROR".

       CND-380-OK.
           DISPLAY "    ..."
           DISPLAY "--- Test underflow ---"
           MOVE 0.000000099 TO FD16, FD34.
           PERFORM 400 TIMES
             MOVE FD16 TO SV16
             COMPUTE FD16 = FD16 / 10
                    ON SIZE ERROR GO TO CND-300-ERR
             END-COMPUTE
             IF FD16 = 0.0
               GO TO CND-300-ERR
             END-IF
           END-PERFORM.
           DISPLAY "FD16: " FD16 " IS OK".
           GO TO CND-400-OK.
       CND-300-ERR.
           DISPLAY "FD16: after " SV16 " SIZE ERROR".

       CND-400-OK.
           MOVE 0.000000099 TO FD16, FD34.
           PERFORM 6600 TIMES
             MOVE FD34 TO SV34
             COMPUTE FD34 = FD34 / 10.0
                    ON SIZE ERROR GO TO CND-400-ERR
             END-COMPUTE
             IF FD34 = 0.0
               GO TO CND-400-ERR
             END-IF
           END-PERFORM.
           DISPLAY "FD34: " FD34 " IS OK".
           GO TO CND-999.
       CND-400-ERR.
           DISPLAY "FD34: after " SV34 " SIZE ERROR".

       CND-999.
           STOP RUN.
           END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:11905: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:11905"
( $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/run_misc.at:11905"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:11907: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:11907"
( $at_check_trace; $COBCRUN_DIRECT ./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 "--- FLOAT-DECIMAL-34 ---
A: 9216586.861751152073732718894009216
B: 5305036.78779840848806366047745358
Z: 476.1904761904761904761904761904761 IS OK
    ...
--- FLOAT-DECIMAL-16 ---
A: 9216586.861751152
B: 5305036.787798408
Z: 476.1904761904761 IS OK
    ...
--- 99 + 1 / 3 ---
FD34: 99.33333333333333333333333333333333 IS OK
FD16: 99.33333333333333 IS OK
    ...
--- 99 ---
FD34: 99 IS OK
FD16: 99 IS OK
    ...
--- Test overflow ---
FD16: after 99E369 SIZE ERROR
FD34: after 99E6111 SIZE ERROR
    ...
--- Test underflow ---
FD16: after 99E-398 SIZE ERROR
FD34: after 99E-6176 SIZE ERROR
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:11907"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_710
#AT_START_711
at_fn_group_banner 711 'run_misc.at:11938' \
  "FLOAT-SHORT / FLOAT-LONG w/o SIZE ERROR" "        " 4
at_xfail=no
(
  $as_echo "711. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  CMP1                        COMP-1.
       01  SV1                         COMP-1.
       01  CMP2                        COMP-2.
       01  SV2                         COMP-2.

       PROCEDURE DIVISION.
       CND-000.

           DISPLAY "--- COMP-1 ---"
           COMPUTE CMP1 = (((1.0E7 / 2.1E0) / 3.1E0) - 5.0E-1) * 6.0E0
           DISPLAY "A: " CMP1
           COMPUTE CMP1 = (((1.0E7 / 2.9E0) / 3.9E0) - 5.0E-1) * 6.0E0
           DISPLAY "B: " CMP1
           MOVE ZERO TO CMP1.
           COMPUTE CMP1 = 1.0E3 / 2.1E0
                   ON SIZE ERROR DISPLAY "Z: " CMP1 " SIZE ERROR"
               NOT ON SIZE ERROR DISPLAY "Z: " CMP1 " IS OK"
           END-COMPUTE.

           DISPLAY "    ..."
           DISPLAY "--- COMP-2 ---"
           COMPUTE CMP2 = (((1.0E7 / 2.1E0) / 3.1E0) - 5.0E-1) * 6.0E0
      *>   because of possible rounding of intermediates and different
      *>   precision depending on math library / version: plain DISPLAY
           IF CMP2 >= 9216586.86175114 AND <= 9216586.86175116
             DISPLAY "A ~ 9216586.86175115"
           ELSE
             DISPLAY "A: " CMP2
           END-IF
           COMPUTE CMP2 = (((1.0E7 / 2.9E0) / 3.9E0) - 5.0E-1) * 6.0E0
           IF CMP2 >= 5305036.7877983 AND <= 5305036.7877985
             DISPLAY "B ~ 5305036.787798408"
           ELSE
             DISPLAY "B: " CMP2
           END-IF
           MOVE ZERO TO CMP2.
           COMPUTE CMP2 = 1.0E3 / 2.1E0
                   ON SIZE ERROR DISPLAY "Z: " CMP2 " SIZE ERROR"
               NOT ON SIZE ERROR
      *>        see note above
                IF CMP2 >= 476.1904761904760 AND <= 476.1904761904763
                  DISPLAY "Z ~ 476.1904761904761 IS OK"
                ELSE
                  DISPLAY "Z: " CMP2 " IS OK"
                END-IF
           END-COMPUTE.

           DISPLAY "    ..."
           DISPLAY "--- 99 + 1 / 3 ---"
           MOVE -1 TO CMP1, CMP2.
           COMPUTE CMP1 = 99 + 1 / 3
                   ON SIZE ERROR DISPLAY "CMP1: " CMP1 " SIZE ERROR"
               NOT ON SIZE ERROR DISPLAY "CMP1: " CMP1 " IS OK"
           END-COMPUTE.
           COMPUTE CMP2 = 99 + 1 / 3
                   ON SIZE ERROR DISPLAY "CMP2: " CMP2 " SIZE ERROR"
               NOT ON SIZE ERROR DISPLAY "CMP2: " CMP2 " IS OK"
           END-COMPUTE.

           DISPLAY "    ..."
           DISPLAY "--- 99 ---"
           MOVE -1 TO CMP1, CMP2.
           COMPUTE CMP1 = 99
                   ON SIZE ERROR DISPLAY "CMP1: " CMP1 " SIZE ERROR"
               NOT ON SIZE ERROR DISPLAY "CMP1: " CMP1 " IS OK"
           END-COMPUTE.
           COMPUTE CMP2 = 99
                   ON SIZE ERROR DISPLAY "CMP2: " CMP2 " SIZE ERROR"
               NOT ON SIZE ERROR DISPLAY "CMP2: " CMP2 " IS OK"
           END-COMPUTE.

       CND-100-OK.
           DISPLAY "    ..."
           DISPLAY "--- Test overflow ---"

           MOVE 990000 TO CMP1.
           PERFORM 6500 TIMES
             MOVE CMP1 TO SV1
             COMPUTE CMP1 = CMP1 * 10
                    ON SIZE ERROR GO TO CND-350-ERR
             END-COMPUTE
             IF CMP1 < 9.0
               GO TO CND-350-ERR
             END-IF
           END-PERFORM.
           DISPLAY "CMP1: " CMP1 " IS OK".
           GO TO CND-350-OK.
       CND-350-ERR.
           DISPLAY "CMP1: after " SV1 " SIZE ERROR".

       CND-350-OK.
           MOVE 9900000000 TO CMP2.
           PERFORM 6500 TIMES
             MOVE CMP2 TO SV2
             COMPUTE CMP2 = CMP2 * 10
                    ON SIZE ERROR GO TO CND-380-ERR
             END-COMPUTE
             IF CMP2 < 9.0
               GO TO CND-380-ERR
             END-IF
           END-PERFORM.
           DISPLAY "CMP2: " CMP2 " IS OK".
           GO TO CND-500-OK.
       CND-380-ERR.
      *>   because of possible rounding of intermediates and different
      *>   precision depending on math library / version: plain DISPLAY
           IF SV2 >= 9.899999999999E+307 AND
                  <= 9.900000000001E+307
             DISPLAY "CMP2: after ~ 9.899999999999781E+307 SIZE ERROR"
           ELSE
             DISPLAY "CMP2: after " SV2 " SIZE ERROR"
           END-IF
           .

       CND-500-OK.
           MOVE 0.000000099 TO CMP1.
           PERFORM 350 TIMES
             MOVE CMP1 TO SV1
             COMPUTE CMP1 = CMP1 / 10.0
                    ON SIZE ERROR GO TO CND-500-ERR
             END-COMPUTE
             IF CMP1 = 0.0
               GO TO CND-500-ERR
             END-IF
           END-PERFORM.
           DISPLAY "CMP1: " CMP1 " IS OK".
           GO TO CND-600-OK.
       CND-500-ERR.
           DISPLAY "CMP1: after " SV1 " SIZE ERROR".

       CND-600-OK.
           MOVE 0.000000099 TO CMP2.
           PERFORM 350 TIMES
             MOVE CMP2 TO SV2
             COMPUTE CMP2 = CMP2 / 10.0
                    ON SIZE ERROR GO TO CND-600-ERR
             END-COMPUTE
             IF CMP2 = 0.0
               GO TO CND-600-ERR
             END-IF
           END-PERFORM.
           DISPLAY "CMP2: " CMP2 " IS OK".
           GO TO CND-600-XIT.
       CND-600-ERR.
           IF SV2 >= 9.8813129168249E-324 AND <= 9.881312916825E-324
             DISPLAY "CMP2: after ~ 9.881312916824931E-324 SIZE ERROR"
           ELSE
             DISPLAY "CMP2: after " SV2 " SIZE ERROR"
           END-IF
           .
       CND-600-XIT.

       CND-999.
           STOP RUN.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:12106: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12106"
( $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/run_misc.at:12106"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:12108: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12108"
( $at_check_trace; $COBCRUN_DIRECT ./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 "--- COMP-1 ---
A: 9216587
B: 5305037
Z: 476.19049 IS OK
    ...
--- COMP-2 ---
A ~ 9216586.86175115
B ~ 5305036.787798408
Z ~ 476.1904761904761 IS OK
    ...
--- 99 + 1 / 3 ---
CMP1: 99.333336 IS OK
CMP2: 99.33333333333333 IS OK
    ...
--- 99 ---
CMP1: 99 IS OK
CMP2: 99 IS OK
    ...
--- Test overflow ---
CMP1: after 9.8999983E+37 SIZE ERROR
CMP2: after ~ 9.899999999999781E+307 SIZE ERROR
CMP1: after 1.4012985E-45 SIZE ERROR
CMP2: after ~ 9.881312916824931E-324 SIZE ERROR
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12108"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_711
#AT_START_712
at_fn_group_banner 712 'run_misc.at:12137' \
  "FLOAT-SHORT with SIZE ERROR" "                    " 4
at_xfail=no
(
  $as_echo "712. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       identification division.
       program-id. prog.

       data division.
       working-storage section.
      *------------------------
       77 counter             pic s9(4) binary value zero.
      * FLOAT-SHORT (if binary-comp-1 is not active)
       77 floatValue          COMP-1  value 2.
       77 lastFloatValue      COMP-1.

      ******************************************************************
       procedure division.
       main section.
           perform varying counter from 1 by 1 until
                           counter > 130
      *>      display 'counter: ' counter ', value: ' floatValue
              compute floatValue = floatValue * 2
                   ON SIZE ERROR
                      display 'SIZE ERROR, last value = ' floatValue
                      exit perform
               not ON SIZE ERROR
                      if floatValue > lastFloatValue
                         move floatValue to lastFloatValue
                      else
                         display 'math ERROR, last value > current: '
                                 lastFloatValue ' > ' floatValue
                         exit perform
                      end-if
              end-compute
           end-perform
           if counter not = 127
              display 'counter is ' counter
           end-if

           goback.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:12179: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12179"
( $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/run_misc.at:12179"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:12181: ./prog"
at_fn_check_prepare_trace "run_misc.at:12181"
( $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 "SIZE ERROR, last value = 1.7014118E+38
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12181"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_712
#AT_START_713
at_fn_group_banner 713 'run_misc.at:12188' \
  "FLOAT-LONG with SIZE ERROR" "                     " 4
at_xfail=no
(
  $as_echo "713. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       identification division.
       program-id. prog.

       data division.
       working-storage section.
      *------------------------
       77 counter             pic s9(4) binary value zero.
      * FLOAT-LONG
       77 doubleValue         COMP-2 value 2.
       77 lastDoubleValue     COMP-2.

      ******************************************************************
       procedure division.
       main section.
           perform varying counter from 1 by 1 until
                           counter > 1060
      *>      display 'counter: ' counter ', value: ' doubleValue
              compute doubleValue = doubleValue * 2
                   ON SIZE ERROR
                      display 'SIZE ERROR raised'
                              with no advancing upon syserr
                      end-display
                      display 'SIZE ERROR, last value = ' doubleValue
                              upon sysout
                      end-display
                      exit perform
               not ON SIZE ERROR
                      if doubleValue > lastdoubleValue
                         move doubleValue to lastdoubleValue
                      else
                         display 'math ERROR, last value > current: '
                                 lastdoubleValue ' > ' doubleValue
                                 upon syserr
                         end-display
                         exit perform
                      end-if
              end-compute
           end-perform
           if not (counter >= 1023 and <=1025)
              display ' '                   upon syserr
              display 'counter is ' counter upon syserr
           end-if

           goback.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:12238: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12238"
( $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/run_misc.at:12238"
$at_failed && at_fn_log_failure
$at_traceon; }

# note: the actual value is not checked as this depends on intermediate rounding
{ set +x
$as_echo "$at_srcdir/run_misc.at:12240: ./prog"
at_fn_check_prepare_trace "run_misc.at:12240"
( $at_check_trace; ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "SIZE ERROR raised" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12240"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_713
#AT_START_714
at_fn_group_banner 714 'run_misc.at:12245' \
  "EC-SIZE-ZERO-DIVIDE" "                            " 4
at_xfail=no
(
  $as_echo "714. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC 9 VALUE 0.
       01  y PIC 9 VALUE 0.

       PROCEDURE DIVISION.
           DIVIDE x BY y GIVING y
           IF FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
           NOT = 'EC-SIZE-ZERO-DIVIDE'
              DISPLAY 'Wrong/missing exception: '
                      FUNCTION EXCEPTION-STATUS
              END-DISPLAY
           END-IF
           SET LAST EXCEPTION TO OFF
           IF FUNCTION EXCEPTION-STATUS NOT = SPACES
              DISPLAY 'Exception is not empty after reset: '
                      FUNCTION EXCEPTION-STATUS
              END-DISPLAY
           END-IF
           MOVE 0 TO y
           COMPUTE y = x - 1 / y + 6.5
           IF FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
           NOT = 'EC-SIZE-ZERO-DIVIDE'
              DISPLAY 'Wrong/missing exception: '
                      FUNCTION EXCEPTION-STATUS
              END-DISPLAY
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:12283: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12283"
( $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/run_misc.at:12283"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12284: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12284"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:12284"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_714
#AT_START_715
at_fn_group_banner 715 'run_misc.at:12288' \
  "EC-SIZE-OVERFLOW" "                               " 4
at_xfail=no
(
  $as_echo "715. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC 9 VALUE 1.
       01  y PIC 9.

       PROCEDURE DIVISION.
      *    raise exception checked in previous test
      *    as it may interfere with the expected exception
           DIVIDE x BY y GIVING y
           DIVIDE x BY 0.1 GIVING y
           IF FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
           NOT = 'EC-SIZE-OVERFLOW'
              DISPLAY 'Wrong/missing exception: '
                      FUNCTION EXCEPTION-STATUS
              END-DISPLAY
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:12314: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12314"
( $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/run_misc.at:12314"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12315: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12315"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:12315"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_715
#AT_START_716
at_fn_group_banner 716 'run_misc.at:12319' \
  "Constant Expressions" "                           " 4
at_xfail=no
(
  $as_echo "716. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  VAR       PIC X(200).
       01  OTHERVAR  PIC X(115).
       78  VAR-LEN   VALUE 115.

       PROCEDURE DIVISION.
       MAIN-10.
           MOVE "Peek a boo" TO VAR.
           EVALUATE TRUE
               ALSO FALSE
               ALSO TRUE
            WHEN    TRUE
               ALSO VAR-LEN > 16 AND VAR-LEN < 200
               ALSO TRUE
                  MOVE OTHERVAR (1 : VAR-LEN - 9)
                    TO VAR (16 - VAR-LEN : VAR-LEN - 9)
                  DISPLAY "A: Should NOT be executed"
            WHEN  TRUE
               ALSO VAR-LEN < 16
               ALSO TRUE
                  MOVE OTHERVAR TO VAR
                  DISPLAY "A: OK VAR-LEN > 16 AND VAR-LEN < 200"
            WHEN  TRUE
               ALSO VAR = SPACES
               ALSO TRUE
                  MOVE OTHERVAR TO VAR
                  DISPLAY "A: OK VAR IS SPACES"
           END-EVALUATE.

           MOVE "Peek a boo" TO VAR.
           EVALUATE 3 EQUALS 7
           WHEN  VAR = SPACES
               DISPLAY "B: OK VAR IS NOT SPACES"
           WHEN  VAR NOT = SPACES
               DISPLAY "B: FALSE VAR IS SPACES"
           END-EVALUATE.

           MOVE SPACES       TO VAR.
           EVALUATE FALSE
           WHEN  VAR = SPACES
               DISPLAY "C: FALSE VAR IS SPACES"
           WHEN  VAR NOT = SPACES
               DISPLAY "C: OK VAR IS SPACES"
           END-EVALUATE.

           MOVE "Peek a boo" TO VAR.
           EVALUATE TRUE
           WHEN  VAR = SPACES
               DISPLAY "D: BAD VAR IS SPACES"
           WHEN  VAR NOT = SPACES
               DISPLAY "D: OK VAR IS NOT SPACES"
           END-EVALUATE.

           MOVE SPACES       TO VAR.
           EVALUATE VAR-LEN ALSO VAR
           WHEN  < 32 ALSO SPACES
               DISPLAY "E: OK VAR IS SPACES"
           WHEN  > 16 ALSO NOT SPACES
               DISPLAY "E: BAD VAR IS NOT SPACES"
           WHEN OTHER
               DISPLAY "E: OK OTHER option taken"
           END-EVALUATE.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:12392: \$COMPILE prog.cob -w"
at_fn_check_prepare_dynamic "$COMPILE prog.cob -w" "run_misc.at:12392"
( $at_check_trace; $COMPILE prog.cob -w
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12392"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:12394: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12394"
( $at_check_trace; $COBCRUN_DIRECT ./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: OK VAR-LEN > 16 AND VAR-LEN < 200
B: OK VAR IS NOT SPACES
C: OK VAR IS SPACES
D: OK VAR IS NOT SPACES
E: OK OTHER option taken
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12394"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_716
#AT_START_717
at_fn_group_banner 717 'run_misc.at:12405' \
  "ENTRY FOR GO TO / GO TO ENTRY" "                  " 4
at_xfail=no
(
  $as_echo "717. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 JUMP-ENTRY    PIC 9  VALUE 6.
          88 EXT-MODUS  VALUES 3, 4.
       LINKAGE SECTION.
       PROCEDURE DIVISION.
           GO TO ENTRY 'STMT05'.
       MAIN.
           GO TO ENTRY 'STMT01'
                       'STMT02'
                       'STMT03'
                       'STMT04'
                       'STMT05'
           DEPENDING ON JUMP-ENTRY
           DISPLAY 'NOT JUMPED'
           GOBACK.
       ENTRY FOR GO TO 'STMT01'
           DISPLAY 'STMT01'
       ENTRY FOR GO TO 'STMT02'
           PERFORM 3 TIMES
       ENTRY FOR GO TO 'STMT03'
              DISPLAY 'STMT03'
       ENTRY FOR GO TO 'STMT04'  DISPLAY 'STMT04'
              IF EXT-MODUS EXIT PERFORM END-IF
           END-PERFORM
       ENTRY FOR GO TO 'STMT05'
           DISPLAY 'STMT05'
           SUBTRACT 1 FROM JUMP-ENTRY
           GO TO MAIN.

_ATEOF


# TODO: move to syntax checks, together with all expected error messages
{ set +x
$as_echo "$at_srcdir/run_misc.at:12444: \$COMPILE -std=mf-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=mf-strict prog.cob" "run_misc.at:12444"
( $at_check_trace; $COMPILE -std=mf-strict 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: ENTRY FOR GO TO does not conform to Micro Focus COBOL
prog.cob: in paragraph 'MAIN':
prog.cob:18: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
prog.cob:20: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
prog.cob:22: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
prog.cob:24: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
prog.cob:26: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
prog.cob:29: error: ENTRY FOR GO TO does not conform to Micro Focus COBOL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:12444"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:12455: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12455"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:10: warning: ENTRY FOR GO TO used
prog.cob: in paragraph 'MAIN':
prog.cob:18: warning: ENTRY FOR GO TO used
prog.cob:20: warning: ENTRY FOR GO TO used
prog.cob:22: warning: ENTRY FOR GO TO used
prog.cob:24: warning: ENTRY FOR GO TO used
prog.cob:26: warning: ENTRY FOR GO TO used
prog.cob:29: warning: ENTRY FOR GO TO used
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12455"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_misc.at:12466: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12466"
( $at_check_trace; $COBCRUN_DIRECT ./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 "STMT05
STMT05
STMT04
STMT05
STMT03
STMT04
STMT05
STMT03
STMT04
STMT03
STMT04
STMT03
STMT04
STMT05
STMT01
STMT03
STMT04
STMT03
STMT04
STMT03
STMT04
STMT05
NOT JUMPED
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12466"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_717
#AT_START_718
at_fn_group_banner 718 'run_misc.at:12495' \
  "runtime checks within conditions" "               " 4
at_xfail=no
(
  $as_echo "718. $at_setup_line: testing $at_desc ..."
  $at_traceon



# this serves as a sample what was broken in the initial
# 3.1 release

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.

       01 mytab.
          03  VAR                   PIC  9(02) value 1.
          03  VAR2                  PIC  9(02) value 2.
          03                        OCCURS 2.
           05 T15-PRGM              PIC  X(08).
           05 T16-PRGM              PIC  X(08).
          03                        OCCURS 2.
           05 T15-NRGM              PIC  9(04).
           05 T16-NRGM              USAGE BINARY-INT.

       PROCEDURE DIVISION.
      *
           MOVE 'TESTME' TO T16-PRGM (VAR) (VAR2:)
           MOVE T16-PRGM (VAR) (1:VAR2) TO T15-PRGM (VAR)
           IF  T16-PRGM(VAR)
             = T15-PRGM(VAR2)
              DISPLAY 'WRONG RESULT OCCURS'.

           IF  MYTAB(VAR:VAR2)
             = MYTAB(VAR2:VAR)
              DISPLAY 'WRONG RESULT REFMOD'.

            INITIALIZE mytab

            GOBACK.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_misc.at:12534: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_misc.at:12534"
( $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/run_misc.at:12534"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12535: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12535"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:12535"
$at_failed && at_fn_log_failure
$at_traceon; }

# note: we mostly are interessted in a good codegen here...


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog2.

       DATA DIVISION.
       WORKING-STORAGE SECTION.

       01 mytab.
          03  VAR                   PIC  9(02) value 1.
          03  VAR2                  PIC  9(02) value 3.
          03                        OCCURS 2.
           05 T15-PRGM              PIC  X(08).
           05 T16-PRGM              PIC  X(08).
          03                        OCCURS 2.
           05 T15-NRGM              PIC  9(04).
           05 T16-NRGM              USAGE BINARY-INT.
          05 buffer                 PIC X(500).

       PROCEDURE DIVISION.
      *
           IF  T16-PRGM(VAR)
             = T15-PRGM(VAR2)
              DISPLAY 'WRONG RESULT OCCURS'.

            GOBACK.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_misc.at:12565: \$COBC -x prog2.cob"
at_fn_check_prepare_dynamic "$COBC -x prog2.cob" "run_misc.at:12565"
( $at_check_trace; $COBC -x prog2.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/run_misc.at:12565"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12566: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_misc.at:12566"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12566"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12567: \$COBC -x --debug -o prog2b prog2.cob"
at_fn_check_prepare_dynamic "$COBC -x --debug -o prog2b prog2.cob" "run_misc.at:12567"
( $at_check_trace; $COBC -x --debug -o prog2b prog2.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/run_misc.at:12567"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12568: \$COBCRUN_DIRECT ./prog2b"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2b" "run_misc.at:12568"
( $at_check_trace; $COBCRUN_DIRECT ./prog2b
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:21: error: subscript of 'T15-PRGM' out of bounds: 3
note: maximum subscript for 'T15-PRGM': 2
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:12568"
$at_failed && at_fn_log_failure
$at_traceon; }

cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.    prog3.

       DATA DIVISION.
       WORKING-STORAGE SECTION.

       01 mytab.
          03  VAR                   PIC  9(02) value 1.
          03  VAR2                  PIC  9(02) value 99.
          03                        OCCURS 2.
           05 T15-PRGM              PIC  X(08).
           05 T16-PRGM              PIC  X(08).
          03                        OCCURS 2.
           05 T15-NRGM              PIC  9(04).
           05 T16-NRGM              USAGE BINARY-INT.

       PROCEDURE DIVISION.

           IF  MYTAB(VAR:VAR2)
      *>     = MYTAB(VAR2:VAR)   that _should_ work but on x86_64
      *>                         the second line is evaluated first
             = MYTAB(VAR:VAR )
              DISPLAY 'WRONG RESULT REFMOD'.

            GOBACK.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_misc.at:12599: \$COBC -x prog3.cob"
at_fn_check_prepare_dynamic "$COBC -x prog3.cob" "run_misc.at:12599"
( $at_check_trace; $COBC -x prog3.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/run_misc.at:12599"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12600: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12600"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:12600"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12601: \$COBC -x --debug -o prog3b prog3.cob"
at_fn_check_prepare_dynamic "$COBC -x --debug -o prog3b prog3.cob" "run_misc.at:12601"
( $at_check_trace; $COBC -x --debug -o prog3b prog3.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/run_misc.at:12601"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12602: \$COBCRUN_DIRECT ./prog3b"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3b" "run_misc.at:12602"
( $at_check_trace; $COBCRUN_DIRECT ./prog3b
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog3.cob:20: error: length of 'mytab' out of bounds: 99, maximum: 52
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_misc.at:12602"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_718
#AT_START_719
at_fn_group_banner 719 'run_misc.at:12609' \
  "libcob version check" "                           " 4
at_xfail=no
(
  $as_echo "719. $at_setup_line: testing $at_desc ..."
  $at_traceon



# using a C program here, normally this would be called from old or newer modules
cat >prog.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

#define COUNT_OF(x) (sizeof(x)/sizeof(x[0]))

struct verify_t {
  char *prog, *packver_prog;
  int patchlev_prog;
} verify[] = {
#include "testdata.h"
};

int
main(int argc, char *argv[])
{
  struct verify_t *p;
  for( p=verify; p < verify + COUNT_OF(verify); p++ ) {
    cob_check_version(p->prog, p->packver_prog, p->patchlev_prog);
  }
  return 0;
}
_ATEOF


# good cases
cat >testdata.h <<'_ATEOF'

#define TST_STRINGIFY(s)			#s
#define TST_XSTRINGIFY(s)		TST_STRINGIFY (s)
  { "test22", "2.2",    0 },
/*  { "TestMatch1",
		TST_XSTRINGIFY (__LIBCOB_VERSION) "."
		TST_XSTRINGIFY (__LIBCOB_VERSION_MINOR) "."
		TST_XSTRINGIFY (__LIBCOB_VERSION_PATCHLEVEL),
    0}, */
  { "TestMatch2",
		TST_XSTRINGIFY (__LIBCOB_VERSION) "."
		TST_XSTRINGIFY (__LIBCOB_VERSION_MINOR) "."
      "0",
    0},
  { "TestMatch3",
		TST_XSTRINGIFY (__LIBCOB_VERSION) "."
		TST_XSTRINGIFY (__LIBCOB_VERSION_MINOR),
    0 }
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_misc.at:12658: \$COMPILE prog.c"
at_fn_check_prepare_dynamic "$COMPILE prog.c" "run_misc.at:12658"
( $at_check_trace; $COMPILE prog.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/run_misc.at:12658"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12659: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_misc.at:12659"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_misc.at:12659"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >testdata.h <<'_ATEOF'

  { "TooSmall1", "1.1",    0 }
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_misc.at:12664: \$COMPILE -o small1 prog.c"
at_fn_check_prepare_dynamic "$COMPILE -o small1 prog.c" "run_misc.at:12664"
( $at_check_trace; $COMPILE -o small1 prog.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/run_misc.at:12664"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12665: \$COBCRUN_DIRECT ./small1 2>small1.log"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./small1 2>small1.log" "run_misc.at:12665"
( $at_check_trace; $COBCRUN_DIRECT ./small1 2>small1.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=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/run_misc.at:12665"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12666: \$GREP -v \"libcob has\" small1.log"
at_fn_check_prepare_dynamic "$GREP -v \"libcob has\" small1.log" "run_misc.at:12666"
( $at_check_trace; $GREP -v "libcob has" small1.log
) >>"$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 "libcob: error: version mismatch
note: TooSmall1 has version 1.1.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12666"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >testdata.h <<'_ATEOF'

  { "TooSmall2", "2.0",    0 }
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_misc.at:12674: \$COMPILE -o small2 prog.c"
at_fn_check_prepare_dynamic "$COMPILE -o small2 prog.c" "run_misc.at:12674"
( $at_check_trace; $COMPILE -o small2 prog.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/run_misc.at:12674"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12675: \$COBCRUN_DIRECT ./small2 2>small2.log"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./small2 2>small2.log" "run_misc.at:12675"
( $at_check_trace; $COBCRUN_DIRECT ./small2 2>small2.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=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/run_misc.at:12675"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12676: \$GREP -v \"libcob has\" small2.log"
at_fn_check_prepare_dynamic "$GREP -v \"libcob has\" small2.log" "run_misc.at:12676"
( $at_check_trace; $GREP -v "libcob has" small2.log
) >>"$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 "libcob: error: version mismatch
note: TooSmall2 has version 2.0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12676"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >testdata.h <<'_ATEOF'

  { "TooHigh1", "3.2",    0 },
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_misc.at:12684: \$COMPILE -o high1 prog.c"
at_fn_check_prepare_dynamic "$COMPILE -o high1 prog.c" "run_misc.at:12684"
( $at_check_trace; $COMPILE -o high1 prog.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/run_misc.at:12684"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12685: \$COBCRUN_DIRECT ./high1 2>high1.log"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./high1 2>high1.log" "run_misc.at:12685"
( $at_check_trace; $COBCRUN_DIRECT ./high1 2>high1.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=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/run_misc.at:12685"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12686: \$GREP -v \"libcob has\" high1.log"
at_fn_check_prepare_dynamic "$GREP -v \"libcob has\" high1.log" "run_misc.at:12686"
( $at_check_trace; $GREP -v "libcob has" high1.log
) >>"$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 "libcob: error: version mismatch
note: TooHigh1 has version 3.2.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12686"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >testdata.h <<'_ATEOF'

  { "TooHigh2", "4.0",  0 }
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_misc.at:12694: \$COMPILE -o high2 prog.c"
at_fn_check_prepare_dynamic "$COMPILE -o high2 prog.c" "run_misc.at:12694"
( $at_check_trace; $COMPILE -o high2 prog.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/run_misc.at:12694"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12695: \$COBCRUN_DIRECT ./high2 2>high2.log"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./high2 2>high2.log" "run_misc.at:12695"
( $at_check_trace; $COBCRUN_DIRECT ./high2 2>high2.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=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/run_misc.at:12695"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12696: \$GREP -v \"libcob has\" high2.log"
at_fn_check_prepare_dynamic "$GREP -v \"libcob has\" high2.log" "run_misc.at:12696"
( $at_check_trace; $GREP -v "libcob has" high2.log
) >>"$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 "libcob: error: version mismatch
note: TooHigh2 has version 4.0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12696"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >testdata.h <<'_ATEOF'

  { "TooHigh3", "4.0.1",  2 }
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_misc.at:12704: \$COMPILE -o high3 prog.c"
at_fn_check_prepare_dynamic "$COMPILE -o high3 prog.c" "run_misc.at:12704"
( $at_check_trace; $COMPILE -o high3 prog.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/run_misc.at:12704"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12705: \$COBCRUN_DIRECT ./high3 2>high3.log"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./high3 2>high3.log" "run_misc.at:12705"
( $at_check_trace; $COBCRUN_DIRECT ./high3 2>high3.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=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/run_misc.at:12705"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_misc.at:12706: \$GREP -v \"libcob has\" high3.log"
at_fn_check_prepare_dynamic "$GREP -v \"libcob has\" high3.log" "run_misc.at:12706"
( $at_check_trace; $GREP -v "libcob has" high3.log
) >>"$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 "libcob: error: version mismatch
note: TooHigh3 has version 4.0.1.2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_misc.at:12706"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_719
#AT_START_720
at_fn_group_banner 720 'run_file.at:23' \
  "OPEN EXTEND and CLOSE, SEQUENTIAL" "              " 4
at_xfail=no
(
  $as_echo "720. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT  OPTIONAL      FILE-OPT
                   ASSIGN        TO "testfile"
                   ORGANIZATION  IS SEQUENTIAL
                   FILE STATUS   IS WSFS.
           SELECT  FILE0         ASSIGN TO "testfile"
                   ORGANIZATION  IS SEQUENTIAL
                   FILE STATUS   IS WSFS.
       DATA DIVISION.
       FILE SECTION.
       FD  FILE0.
       01  F0REC             PIC X(80).
       FD  FILE-OPT.
       01  FOREC             PIC X(80).
       WORKING-STORAGE SECTION.
       01  WSFS              PIC X(2).
       PROCEDURE DIVISION.
      *
           OPEN EXTEND FILE-OPT
           IF WSFS NOT = "05"
              DISPLAY "STATUS EXTEND, missing optional file:" WSFS.
           MOVE ALL "A" TO FOREC
           WRITE FOREC
           IF WSFS NOT = "00"
              DISPLAY "STATUS WRITE A:" WSFS.
           CLOSE FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS CLOSE:" WSFS.
           OPEN EXTEND FILE0
           IF WSFS NOT = "00"
              DISPLAY "STATUS EXTEND, empty file:" WSFS.
           MOVE ALL "B" TO F0REC
           WRITE F0REC
           IF WSFS NOT = "00"
              DISPLAY "STATUS WRITE B:" WSFS.
           CLOSE FILE0
      *
           OPEN INPUT FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS INPUT:" WSFS.
           READ FILE-OPT NEXT
           IF WSFS NOT = "00"
              DISPLAY "STATUS READ A:" WSFS.
           READ FILE-OPT NEXT
           IF WSFS NOT = "00"
              DISPLAY "STATUS READ B:" WSFS.
           CLOSE FILE-OPT
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:83: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.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/run_file.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:84: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:84"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_720
#AT_START_721
at_fn_group_banner 721 'run_file.at:89' \
  "DELETE FILE, SEQUENTIAL" "                        " 4
at_xfail=no
(
  $as_echo "721. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT  OPTIONAL      FILE-OPT
                   ASSIGN        TO "testfile"
                   ORGANIZATION  IS SEQUENTIAL
                   FILE STATUS   IS WSFS.
       DATA DIVISION.
       FILE SECTION.
       FD  FILE-OPT.
       01  FOREC             PIC X(80).
       WORKING-STORAGE SECTION.
       01  WSFS              PIC X(2).
       PROCEDURE DIVISION.
      *
      *>   DELETE FILE FILE-OPT
      *>    ON EXCEPTION
      *>     DISPLAY "STATUS DELETE FILE (missing) - EXCEPTION:" WSFS
      *>     END-DISPLAY
      *>    NOT ON EXCEPTION
      *>      IF WSFS NOT = "05"
      *>         DISPLAY "STATUS DELETE FILE (missing):" WSFS
      *>      END-IF
      *>   END-DELETE
           OPEN I-O FILE-OPT
           IF WSFS NOT = "05"
              DISPLAY "STATUS I-O, missing optional file:" WSFS.
           CLOSE FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS CLOSE:" WSFS.
           OPEN I-O FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS I-O, empty file:" WSFS.
           DELETE FILE FILE-OPT
      *>     ON EXCEPTION
              IF WSFS NOT = "41"
                 DISPLAY "STATUS DELETE FILE (OPENED):" WSFS
              END-IF
      *>    NOT ON EXCEPTION
      *>     DISPLAY "STATUS DELETE FILE (OPENED) - NO EXCEPTION:" WSFS
      *>   END-DELETE
           CLOSE FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS CLOSE #2:" WSFS.
           DELETE FILE FILE-OPT
      *>     ON EXCEPTION
      *>      DISPLAY "STATUS DELETE FILE (closed) - EXCEPTION:" WSFS
      *>      END-DISPLAY
      *>     NOT ON EXCEPTION
              IF WSFS NOT = "00"
                 DISPLAY "STATUS DELETE FILE (closed):" WSFS
              END-IF
      *>   END-DELETE
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:153: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:153"
( $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/run_file.at:153"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:154: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:154"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:154"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_721
#AT_START_722
at_fn_group_banner 722 'run_file.at:159' \
  "OUTPUT on SEQUENTIAL file to missing directory" " " 4
at_xfail=no
(
  $as_echo "722. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT  FILE0 ASSIGN  TO "./nosubhere/MYFILE0"
                   ORGANIZATION  IS SEQUENTIAL
                   FILE STATUS   IS WSFS.
       DATA DIVISION.
       FILE SECTION.
       FD  FILE0.
       01  F0REC             PIC X(80).
       WORKING-STORAGE SECTION.
       01  WSFS              PIC X(2).
       PROCEDURE DIVISION.
      *
           OPEN OUTPUT FILE0
           IF WSFS NOT = "30"
              DISPLAY "STATUS OPENO " WSFS.
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:187: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:187"
( $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/run_file.at:187"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:188: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:188"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:188"
$at_failed && at_fn_log_failure
$at_traceon; }

echo "Test" > ./nosubhere
{ set +x
$as_echo "$at_srcdir/run_file.at:190: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:190"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:190"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_722
#AT_START_723
at_fn_group_banner 723 'run_file.at:195' \
  "OPEN EXTEND and CLOSE, INDEXED" "                 " 4
at_xfail=no
(
  $as_echo "723. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:198" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:198"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT  OPTIONAL      FILE-OPT
                   ASSIGN        TO "testfile"
                   ORGANIZATION  IS INDEXED
                   RECORD KEY    IS FOREC
                   FILE STATUS   IS WSFS.
           SELECT  FILE0         ASSIGN TO "testfile"
                   ORGANIZATION  IS INDEXED
                   RECORD KEY    IS F0REC
                   FILE STATUS   IS WSFS.
       DATA DIVISION.
       FILE SECTION.
       FD  FILE0.
       01  F0REC             PIC X(80).
       FD  FILE-OPT.
       01  FOREC             PIC X(80).
       WORKING-STORAGE SECTION.
       01  WSFS              PIC X(2).
       PROCEDURE DIVISION.
      *
           OPEN EXTEND FILE-OPT
           IF WSFS NOT = "05"
              DISPLAY "STATUS EXTEND, missing optional file:" WSFS.
           MOVE ALL "A" TO FOREC
           WRITE FOREC
           IF WSFS NOT = "00"
              DISPLAY "STATUS WRITE A:" WSFS.
           CLOSE FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS CLOSE:" WSFS.
           OPEN EXTEND FILE0
           IF WSFS NOT = "00"
              DISPLAY "STATUS EXTEND, empty file:" WSFS.
           MOVE ALL "B" TO F0REC
           WRITE F0REC
           IF WSFS NOT = "00"
              DISPLAY "STATUS WRITE B:" WSFS.
           CLOSE FILE0
      *
           OPEN INPUT FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS INPUT:" WSFS.
           MOVE ALL "A" TO FOREC
           READ FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS READ A:" WSFS.
           MOVE ALL "B" TO FOREC
           READ FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS READ B:" WSFS.
           CLOSE FILE-OPT
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:261: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.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/run_file.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:262: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:262"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:262"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_723
#AT_START_724
at_fn_group_banner 724 'run_file.at:267' \
  "DELETE FILE, INDEXED" "                           " 4
at_xfail=no
(
  $as_echo "724. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:270" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:270"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT  OPTIONAL      FILE-OPT
                   ASSIGN        TO "testfile"
                   ORGANIZATION  IS INDEXED
                   RECORD KEY    IS FOREC
                   FILE STATUS   IS WSFS.
       DATA DIVISION.
       FILE SECTION.
       FD  FILE-OPT.
       01  FOREC             PIC X(80).
       WORKING-STORAGE SECTION.
       01  WSFS              PIC X(2).
       PROCEDURE DIVISION.
      *
      *>   DELETE FILE FILE-OPT
      *>    ON EXCEPTION
      *>     DISPLAY "STATUS DELETE FILE (missing) - EXCEPTION: " WSFS
      *>     END-DISPLAY
      *>    NOT ON EXCEPTION
      *>      IF WSFS NOT = "05"
      *>         DISPLAY "STATUS DELETE FILE (missing): " WSFS
      *>      END-IF
      *>   END-DELETE
           OPEN I-O FILE-OPT
           IF WSFS NOT = "05"
              DISPLAY "STATUS I-O, missing optional file: " WSFS.
           CLOSE FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS CLOSE: " WSFS.
           OPEN I-O FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS I-O, empty file: " WSFS.
           DELETE FILE FILE-OPT
      *>     ON EXCEPTION
              IF WSFS NOT = "41"
                 DISPLAY "STATUS DELETE FILE (opened): " WSFS
              END-IF
      *>    NOT ON EXCEPTION
      *>     DISPLAY "STATUS DELETE FILE (opened) - NO EXCEPTION: " WSFS
      *>   END-DELETE
           CLOSE FILE-OPT
           IF WSFS NOT = "00"
              DISPLAY "STATUS CLOSE #2: " WSFS.
           DELETE FILE FILE-OPT
      *>     ON EXCEPTION
      *>      DISPLAY "STATUS DELETE FILE (closed) - EXCEPTION: " WSFS
      *>      END-DISPLAY
      *>     NOT ON EXCEPTION
              IF WSFS NOT = "00"
                 DISPLAY "STATUS DELETE FILE (closed): " WSFS
              END-IF
      *>   END-DELETE
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:334: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:334"
( $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/run_file.at:334"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:335: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:335"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:335"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_724
#AT_START_725
at_fn_group_banner 725 'run_file.at:340' \
  "OUTPUT on INDEXED file to missing directory" "    " 4
at_xfail=no
(
  $as_echo "725. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:343" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:343"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT  FILE0 ASSIGN  TO "./nosubhere/MYFILE0"
                   ORGANIZATION  IS INDEXED
                   RECORD KEY    IS F0REC
                   FILE STATUS   IS WSFS.
       DATA DIVISION.
       FILE SECTION.
       FD  FILE0.
       01  F0REC             PIC X(80).
       WORKING-STORAGE SECTION.
       01  WSFS              PIC X(2).
       PROCEDURE DIVISION.
      *
           OPEN OUTPUT FILE0
           IF WSFS NOT = "30"
              DISPLAY "STATUS OPENO " WSFS.
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:371: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:371"
( $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/run_file.at:371"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:372: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:372"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:372"
$at_failed && at_fn_log_failure
$at_traceon; }

echo "Test" > ./nosubhere
{ set +x
$as_echo "$at_srcdir/run_file.at:374: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:374"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:374"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_725
#AT_START_726
at_fn_group_banner 726 'run_file.at:379' \
  "READ INTO data item AT-END sequence" "            " 4
at_xfail=no
(
  $as_echo "726. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN "./TEST-FILE".
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE.
       01  TEST-REC     PIC X(10).
       WORKING-STORAGE  SECTION.
       01  X            PIC X(10).
       PROCEDURE        DIVISION.
           OPEN  OUTPUT TEST-FILE.
           CLOSE TEST-FILE.
           OPEN  INPUT  TEST-FILE.
           READ  TEST-FILE INTO X
               AT END MOVE ALL ZERO TO X
           END-READ.
           CLOSE TEST-FILE.
           IF X NOT = "0000000000"
              DISPLAY "Expected zeros - Got " X
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:410: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:410"
( $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/run_file.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:411: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:411"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:411"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_726
#AT_START_727
at_fn_group_banner 727 'run_file.at:416' \
  "First READ on empty SEQUENTIAL INDEXED file" "    " 4
at_xfail=no
(
  $as_echo "727. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:419" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:419"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS  INDEXED
                        ACCESS MODE  IS  SEQUENTIAL
                        RECORD KEY   IS  TEST-KEY.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-KEY      PIC X(10).
       PROCEDURE        DIVISION.
           OPEN  OUTPUT TEST-FILE.
           CLOSE TEST-FILE.
           OPEN  INPUT  TEST-FILE.
           READ  TEST-FILE
                 AT END
                   CONTINUE
                 NOT AT END
                   DISPLAY "NOT OK"
                   END-DISPLAY
           END-READ.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:450: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:450"
( $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/run_file.at:450"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:451: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:451"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_727
#AT_START_728
at_fn_group_banner 728 'run_file.at:456' \
  "READ NEXT without previous START" "               " 4
at_xfail=no
(
  $as_echo "728. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:459" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:459"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS  INDEXED
                        ACCESS MODE  IS  SEQUENTIAL
                        RECORD KEY   IS  TEST-KEY.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC.
          05 TEST-KEY      PIC X(10).
          05 TEST-DATA     PIC X.
       PROCEDURE        DIVISION.
           OPEN  OUTPUT TEST-FILE
           MOVE  '1'    TO TEST-KEY
           MOVE  'A'    TO TEST-DATA
           WRITE TEST-REC
           MOVE  '3'    TO TEST-KEY
           MOVE  'B'    TO TEST-DATA
           WRITE TEST-REC
           CLOSE TEST-FILE
           OPEN  INPUT  TEST-FILE
           READ  TEST-FILE NEXT
                 AT END
                   DISPLAY "AT END FOR REC1"
                   END-DISPLAY
                   CLOSE TEST-FILE
                   STOP RUN
                 NOT AT END
                   CONTINUE
           END-READ
           IF TEST-DATA NOT = 'A'
              DISPLAY "WRONG REC1: '" TEST-REC "'"
              END-DISPLAY
           END-IF
           READ  TEST-FILE NEXT
                 AT END
                   DISPLAY "AT END FOR REC2"
                   END-DISPLAY
                   CLOSE TEST-FILE
                   STOP RUN
                 NOT AT END
                   CONTINUE
           END-READ.
           IF TEST-DATA NOT = 'B'
              DISPLAY "WRONG REC2: '" TEST-REC "'"
              END-DISPLAY
           END-IF
           READ  TEST-FILE NEXT
                 AT END
                   CONTINUE
                 NOT AT END
                   DISPLAY "NOT AT END AFTER REC2"
                   END-DISPLAY
           END-READ
           IF TEST-DATA NOT = 'B'
              DISPLAY "DATE CHANGED ON EOF: '" TEST-REC "'"
              END-DISPLAY
           END-IF
           CLOSE TEST-FILE
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:528: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:528"
( $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/run_file.at:528"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:529: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:529"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:529"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_728
#AT_START_729
at_fn_group_banner 729 'run_file.at:534' \
  "REWRITE a RELATIVE file with RANDOM access" "     " 4
at_xfail=no
(
  $as_echo "729. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS RELATIVE
                        ACCESS MODE  IS RANDOM
                        RELATIVE KEY IS TEST-KEY.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X.
       WORKING-STORAGE  SECTION.
       01 TEST-KEY      PIC 9.
       PROCEDURE        DIVISION.
      *
           OPEN OUTPUT TEST-FILE.
           MOVE 1 TO TEST-KEY.
           MOVE "A" TO TEST-REC.
           WRITE TEST-REC
           END-WRITE.
           MOVE 2 TO TEST-KEY.
           MOVE "B" TO TEST-REC.
           WRITE TEST-REC
           END-WRITE.
           CLOSE TEST-FILE.
      *
           OPEN I-O TEST-FILE.
           MOVE 1 TO TEST-KEY.
           READ TEST-FILE
           END-READ.
           MOVE 2 TO TEST-KEY.
           MOVE "C" TO TEST-REC.
           REWRITE TEST-REC
           END-REWRITE.
           CLOSE TEST-FILE.
      *
           OPEN INPUT TEST-FILE.
           MOVE 1 TO TEST-KEY.
           READ TEST-FILE
           END-READ.
           IF TEST-REC NOT = "A"
              DISPLAY "Expected 'A' - Got " TEST-REC
              END-DISPLAY
           END-IF.
           MOVE 2 TO TEST-KEY.
           READ TEST-FILE
           END-READ.
           IF TEST-REC NOT = "C"
              DISPLAY "Expected 'C' - Got " TEST-REC
              END-DISPLAY
           END-IF.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:595: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:595"
( $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/run_file.at:595"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:596: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:596"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:596"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_729
#AT_START_730
at_fn_group_banner 730 'run_file.at:601' \
  "File SORT, SEQUENTIAL" "                          " 4
at_xfail=no
(
  $as_echo "730. $at_setup_line: testing $at_desc ..."
  $at_traceon



# Note: We shouldn't use AT_DATA to create sequential record
# data, because AT_DATA needs a \n at the end

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT SORT-IN   ASSIGN "test.txt".
       SELECT SORT-OUT  ASSIGN "result.txt".
       SELECT SORT-WRK  ASSIGN "SORT-WRK".
       DATA             DIVISION.
       FILE             SECTION.
       FD SORT-IN.
       01 IN-REC        PIC X(6).
       FD SORT-OUT.
       01 OUT-REC       PIC X(6).
       SD SORT-WRK.
       01 WRK-REC       PIC X(6).
       PROCEDURE        DIVISION.

      * Special case: write test data in COBOL, see note above
           OPEN OUTPUT SORT-IN.
           WRITE IN-REC FROM SPACES   END-WRITE.
           WRITE IN-REC FROM SPACES   END-WRITE.
           WRITE IN-REC FROM "world " END-WRITE.
           WRITE IN-REC FROM SPACES   END-WRITE.
           WRITE IN-REC FROM "hello " END-WRITE.
           WRITE IN-REC FROM SPACES   END-WRITE.
           WRITE IN-REC FROM SPACES   END-WRITE.
           CLOSE SORT-IN.

           SORT SORT-WRK
                ASCENDING KEY WRK-REC
                USING  SORT-IN
                GIVING SORT-OUT.
             STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:644: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:644"
( $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/run_file.at:644"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:645: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:645"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:645"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:646: cat result.txt"
at_fn_check_prepare_trace "run_file.at:646"
( $at_check_trace; cat result.txt
) >>"$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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:646"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_730
#AT_START_731
at_fn_group_banner 731 'run_file.at:651' \
  "File SORT, SEQUENTIAL variable records" "         " 4
at_xfail=no
(
  $as_echo "731. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ORGANIZATION SEQUENTIAL
                    ASSIGN "./file1".
       SELECT file2 ORGANIZATION SEQUENTIAL
                    ASSIGN "./file2".
       SELECT file3 ASSIGN DISK.
       DATA DIVISION.
       FILE SECTION.
       FD file1 RECORD VARYING FROM 3 TO 12 DEPENDING rsz.
       1  file1-rec pic x(12).
       FD file2 RECORD VARYING FROM 3 TO 12 DEPENDING rsz.
       1  file2-rec pic x(12).
       SD file3 RECORD VARYING FROM 3 TO 12 DEPENDING rsz.
       1  file3-rec.
          2  file3-key1 pic x.
          2  file3-key2 pic 9.
          2  filler pic x(10).
       WORKING-STORAGE SECTION.
       77 rsz pic 99.
       1  1-data.
          2  filler pic x(14) VALUE "03A4X".
          2  filler pic x(14) VALUE "04A3XX".
          2  filler pic x(14) VALUE "05A2XXX".
          2  filler pic x(14) VALUE "06A1XXXX".
          2  filler pic x(14) VALUE "07A0XXXXX".
          2  filler pic x(14) VALUE "08B2XXXXXX".
          2  filler pic x(14) VALUE "09B1XXXXXXX".
          2  filler pic x(14) VALUE "10C2XXXXXXXX".
          2  filler pic x(14) VALUE "11C1XXXXXXXXX".
          2  filler pic x(14) VALUE "12Z9XXXXXXXXXX".
      *
       1  filler redefines 1-data.
          2  filler occurs 10 times indexed by ix-1.
           3 1-rsz pic 99.
           3 1-rec pic x(12).

       PROCEDURE DIVISION.
          OPEN OUTPUT file1.
          PERFORM VARYING ix-1 FROM 1 BY 2 UNTIL ix-1 > 10
             MOVE 1-rsz(ix-1) TO rsz
             MOVE 1-rec(ix-1) TO file1-rec
             WRITE file1-rec
          END-PERFORM.
          PERFORM VARYING ix-1 FROM 2 BY 2 UNTIL ix-1 > 10
             MOVE 1-rsz(ix-1) TO rsz
             MOVE 1-rec(ix-1) TO file1-rec
             WRITE file1-rec
          END-PERFORM.
          CLOSE file1.
          SORT file3 ON ASCENDING file3-key1
                        DESCENDING file3-key2
             USING file1
             GIVING file2.
          OPEN INPUT file2.
          PERFORM VARYING ix-1 FROM 1 BY 1 UNTIL ix-1 > 10
             READ file2
      *>> fileio-sort currently returns constant length records
             MOVE 1-rsz(ix-1) TO rsz
      *>> END-OF-DETOUR
             IF (1-rsz(ix-1) <> rsz) or
                (1-rec(ix-1) <> file2-rec)
                DISPLAY "FAILED"
             END-IF
          END-PERFORM.
          CLOSE file2.
          STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:727: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:727"
( $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/run_file.at:727"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:728: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:728"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:728"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_731
#AT_START_732
at_fn_group_banner 732 'run_file.at:733' \
  "File SORT, LINE SEQUENTIAL" "                     " 4
at_xfail=no
(
  $as_echo "732. $at_setup_line: testing $at_desc ..."
  $at_traceon



# Note: We shouldn't use AT_DATA to create sequential record
# data, because AT_DATA needs a \n at the end

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT SORT-IN   ASSIGN "test.txt"
                        ORGANISATION LINE SEQUENTIAL.
       SELECT SORT-OUT  ASSIGN "result.txt"
                        ORGANISATION LINE SEQUENTIAL.
       SELECT SORT-WRK  ASSIGN "SORT-WRK".
       DATA             DIVISION.
       FILE             SECTION.
       FD SORT-IN.
       01 IN-REC        PIC X(20).
       FD SORT-OUT.
       01 OUT-REC       PIC X(20).
       SD SORT-WRK.
       01 WRK-REC       PIC X(6).
       PROCEDURE        DIVISION.

      * Special case: write test data in COBOL, see note above
           OPEN OUTPUT SORT-IN.
           WRITE IN-REC FROM SPACES   END-WRITE.
           WRITE IN-REC FROM SPACES   END-WRITE.
           WRITE IN-REC FROM "world " END-WRITE.
           WRITE IN-REC FROM SPACES   END-WRITE.
           WRITE IN-REC FROM "hello " END-WRITE.
           WRITE IN-REC FROM SPACES   END-WRITE.
           WRITE IN-REC FROM SPACES   END-WRITE.
           CLOSE SORT-IN.

           SORT SORT-WRK
                ASCENDING KEY WRK-REC
                USING  SORT-IN
                GIVING SORT-OUT.
             STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:778: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:778"
( $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/run_file.at:778"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:779: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:779"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:779"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:780: cat result.txt"
at_fn_check_prepare_trace "run_file.at:780"
( $at_check_trace; cat result.txt
) >>"$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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:780"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_732
#AT_START_733
at_fn_group_banner 733 'run_file.at:792' \
  "LINAGE and LINAGE-COUNTER sample" "               " 4
at_xfail=no
(
  $as_echo "733. $at_setup_line: testing $at_desc ..."
  $at_traceon



# modified version of GC-FAQ: Example of LINAGE File Descriptor
# Author: Brian Tiffin, Date:   10-July-2008

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           select optional data-file assign to 'prog.cob'
               organization is line sequential
               file status is data-file-status.
           select mini-report assign to "mini-report".

       DATA DIVISION.
       FILE SECTION.
       FD  data-file.
       01  data-record.
           88 endofdata        value high-values.
           02 data-line        pic x(80).
       FD  mini-report
           linage is 16 lines
               with footing at 15
               lines at top 2
               lines at bottom 2.
       01  report-line         pic x(80).

       WORKING-STORAGE SECTION.
       01  command-arguments   pic x(1024).
       01  file-name           pic x(160).
       01  data-file-status    pic xx.
       01  lc                  pic 99.
       01  report-line-blank.
           02 filler           pic x(18) value all "*".
           02 filler           pic x(05) value spaces.
           02 filler           pic x(34)
               VALUE "THIS PAGE INTENTIONALLY LEFT BLANK".
           02 filler           pic x(05) value spaces.
           02 filler           pic x(18) value all "*".
       01  report-line-data.
           02 body-tag         pic 9(6).
           02 line-3           pic x(74).
       01  report-line-header.
           02 filler           pic x(6) VALUE "PAGE: ".
           02 page-no          pic 9999.
           02 filler           pic x(24).
           02 filler           pic x(5) VALUE " LC: ".
           02 header-tag       pic 9(6).
           02 filler           pic x(23).
           02 filler           pic x(6) VALUE "DATE: ".
           02 page-date        pic x(6).

       01  page-count          pic 9999.

       PROCEDURE DIVISION.

       open input data-file.
       read data-file
           at end
               display "File open error: " data-file-status
               stop run
       end-read.

       open output mini-report.

       write report-line
           from report-line-blank
       end-write.

       move 1 to page-count.
       accept page-date from date end-accept.
       move page-count to page-no.
       write report-line
           from report-line-header
           after advancing page
       end-write.

       perform readwrite-loop until endofdata.

       display
           "Normal termination, ending status: "
           data-file-status
       close mini-report.

       close data-file.
       stop run.

      ****************************************************************
       readwrite-loop.
       move data-record to report-line-data
       move linage-counter to body-tag
       write report-line from report-line-data
           end-of-page
               add 1 to page-count end-add
               move page-count to page-no
               move linage-counter to header-tag
               write report-line from report-line-header
                   after advancing page
               end-write
       end-write
       read data-file
           at end set endofdata to true
       end-read
       .
_ATEOF



cat >reference-report <<'_ATEOF'


******************     THIS PAGE INTENTIONALLY LEFT BLANK     ******************


















PAGE: 0001                         LC: 000000                       DATE: 150206
000001
000002 IDENTIFICATION DIVISION.
000003 PROGRAM-ID. prog.
000004 ENVIRONMENT DIVISION.
000005 INPUT-OUTPUT SECTION.
000006 FILE-CONTROL.
000007     select optional data-file assign to 'prog.cob'
000008         organization is line sequential
000009         file status is data-file-status.
000010     select mini-report assign to "mini-report".
000011
000012 DATA DIVISION.
000013 FILE SECTION.
000014 FD  data-file.





PAGE: 0002                         LC: 000015                       DATE: 150206
000001 01  data-record.
000002     88 endofdata        value high-values.
000003     02 data-line        pic x(80).
000004 FD  mini-report
000005     linage is 16 lines
000006         with footing at 15
000007         lines at top 2
000008         lines at bottom 2.
000009 01  report-line         pic x(80).
000010
000011 WORKING-STORAGE SECTION.
000012 01  command-arguments   pic x(1024).
000013 01  file-name           pic x(160).
000014 01  data-file-status    pic xx.





PAGE: 0003                         LC: 000015                       DATE: 150206
000001 01  lc                  pic 99.
000002 01  report-line-blank.
000003     02 filler           pic x(18) value all "*".
000004     02 filler           pic x(05) value spaces.
000005     02 filler           pic x(34)
000006         VALUE "THIS PAGE INTENTIONALLY LEFT BLANK".
000007     02 filler           pic x(05) value spaces.
000008     02 filler           pic x(18) value all "*".
000009 01  report-line-data.
000010     02 body-tag         pic 9(6).
000011     02 line-3           pic x(74).
000012 01  report-line-header.
000013     02 filler           pic x(6) VALUE "PAGE: ".
000014     02 page-no          pic 9999.





PAGE: 0004                         LC: 000015                       DATE: 150206
000001     02 filler           pic x(24).
000002     02 filler           pic x(5) VALUE " LC: ".
000003     02 header-tag       pic 9(6).
000004     02 filler           pic x(23).
000005     02 filler           pic x(6) VALUE "DATE: ".
000006     02 page-date        pic x(6).
000007
000008 01  page-count          pic 9999.
000009
000010 PROCEDURE DIVISION.
000011
000012 open input data-file.
000013 read data-file
000014     at end





PAGE: 0005                         LC: 000015                       DATE: 150206
000001         display "File open error: " data-file-status
000002         stop run
000003 end-read.
000004
000005 open output mini-report.
000006
000007 write report-line
000008     from report-line-blank
000009 end-write.
000010
000011 move 1 to page-count.
000012 accept page-date from date end-accept.
000013 move page-count to page-no.
000014 write report-line





PAGE: 0006                         LC: 000015                       DATE: 150206
000001     from report-line-header
000002     after advancing page
000003 end-write.
000004
000005 perform readwrite-loop until endofdata.
000006
000007 display
000008     "Normal termination, ending status: "
000009     data-file-status
000010 close mini-report.
000011
000012 close data-file.
000013 stop run.
000014





PAGE: 0007                         LC: 000015                       DATE: 150206
000001****************************************************************
000002 readwrite-loop.
000003 move data-record to report-line-data
000004 move linage-counter to body-tag
000005 write report-line from report-line-data
000006     end-of-page
000007         add 1 to page-count end-add
000008         move page-count to page-no
000009         move linage-counter to header-tag
000010         write report-line from report-line-header
000011             after advancing page
000012         end-write
000013 end-write
000014 read data-file





PAGE: 0008                         LC: 000015                       DATE: 150206
000001     at end set endofdata to true
000002 end-read
000003 .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1069: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1069"
( $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/run_file.at:1069"
$at_failed && at_fn_log_failure  \
"mini-report"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1070: COB_CURRENT_DATE=\"2015/02/06 16:40:52\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_CURRENT_DATE=\"2015/02/06 16:40:52\" $COBCRUN_DIRECT ./prog" "run_file.at:1070"
( $at_check_trace; COB_CURRENT_DATE="2015/02/06 16:40:52" $COBCRUN_DIRECT ./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 "Normal termination, ending status: 10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1070"
$at_failed && at_fn_log_failure  \
"mini-report"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1073: diff mini-report reference-report"
at_fn_check_prepare_trace "run_file.at:1073"
( $at_check_trace; diff mini-report reference-report
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1073"
$at_failed && at_fn_log_failure  \
"mini-report"
$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_733
#AT_START_734
at_fn_group_banner 734 'run_file.at:1078' \
  "File SORT, LINE SEQUENTIAL same file" "           " 4
at_xfail=no
(
  $as_echo "734. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >test.txt <<'_ATEOF'

bla
world
hello

blubb
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT SORT-IN   ASSIGN "test.txt"
                        ORGANISATION LINE SEQUENTIAL.
       SELECT SORT-WRK  ASSIGN "dummy".
       DATA             DIVISION.
       FILE             SECTION.
       FD SORT-IN.
       01 IN-REC        PIC X(6).
       SD SORT-WRK.
       01 sort-entry    PIC X(6).
       PROCEDURE        DIVISION.
           SORT SORT-WRK
                ASCENDING sort-entry
                USING  SORT-IN
                GIVING SORT-IN.
             STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1112: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1112"
( $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/run_file.at:1112"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1113: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1113"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:1113"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1114: cat test.txt"
at_fn_check_prepare_trace "run_file.at:1114"
( $at_check_trace; cat test.txt
) >>"$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 "

bla
blubb
hello
world
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1114"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_734
#AT_START_735
at_fn_group_banner 735 'run_file.at:1125' \
  "File SORT, LINE SEQUENTIAL variable records" "    " 4
at_xfail=no
(
  $as_echo "735. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >file1 <<'_ATEOF'
A1XXXX
A2XXX
A3XX
Z9XXXXXXXXXX
A4X
B1XXXXXXX
B2XXXXXX
A0XXXXX
C1XXXXXXXXX
C2XXXXXXXX
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ORGANIZATION LINE SEQUENTIAL
                    ASSIGN "./file1".
       SELECT file2 ORGANIZATION LINE SEQUENTIAL
                    ASSIGN "./file2".
       SELECT file3 ASSIGN DISK.
       DATA DIVISION.
       FILE SECTION.
       FD file1.
       1  file1-rec pic x(12).
       FD file2.
       1  file2-rec pic x(12).
       SD file3.
       1  file3-rec.
          2  file3-key1 pic x.
          2  file3-key2 pic 9.
          2  filler pic x(10).
       PROCEDURE DIVISION.
          SORT file3 ON ASCENDING file3-key1
                        DESCENDING file3-key2
             USING file1
             GIVING file2.
          STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1171: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1171"
( $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/run_file.at:1171"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1172: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1172"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:1172"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1173: cat file2"
at_fn_check_prepare_trace "run_file.at:1173"
( $at_check_trace; cat file2
) >>"$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 "A4X
A3XX
A2XXX
A1XXXX
A0XXXXX
B2XXXXXX
B1XXXXXXX
C2XXXXXXXX
C1XXXXXXXXX
Z9XXXXXXXXXX
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1173"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_735
#AT_START_736
at_fn_group_banner 736 'run_file.at:1189' \
  "File MERGE, LINE SEQUENTIAL variable records" "   " 4
at_xfail=no
(
  $as_echo "736. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >file1 <<'_ATEOF'
A1XXXX
A2XXX
A3XX
Z9XXXXXXXXXX
A4X
B1XXXXXXX
B2XXXXXX
A0XXXXX
C1XXXXXXXXX
C2XXXXXXXX
_ATEOF


cat >file2 <<'_ATEOF'
A1****
A2***
A3**
Z9**********
A4*
B1*******
B2******
A0*****
C1*********
C2********
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ORGANIZATION LINE SEQUENTIAL
                    ASSIGN "./file1".
       SELECT file2 ORGANIZATION LINE SEQUENTIAL
                    ASSIGN "./file2".
       SELECT file3 ORGANIZATION LINE SEQUENTIAL
                    ASSIGN "./file3".
       SELECT file4 ASSIGN DISK.
       DATA DIVISION.
       FILE SECTION.
       FD file1.
       1  file1-rec pic x(12).
       FD file2.
       1  file2-rec pic x(12).
       FD file3.
       1  file3-rec pic x(12).
       SD file4.
       1  file4-rec.
          2  file4-key1 pic x.
          2  file4-key2 pic 9.
          2  filler pic x(10).
       PROCEDURE DIVISION.
          MERGE file4 ON ASCENDING file4-key1
                        DESCENDING file4-key2
             USING file1 file2
             GIVING file3.
          STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1252: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1252"
( $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/run_file.at:1252"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1253: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1253"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:1253"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1254: cat file3"
at_fn_check_prepare_trace "run_file.at:1254"
( $at_check_trace; cat file3
) >>"$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 "A4X
A4*
A3XX
A3**
A2XXX
A2***
A1XXXX
A1****
A0XXXXX
A0*****
B2XXXXXX
B2******
B1XXXXXXX
B1*******
C2XXXXXXXX
C2********
C1XXXXXXXXX
C1*********
Z9XXXXXXXXXX
Z9**********
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1254"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_736
#AT_START_737
at_fn_group_banner 737 'run_file.at:1280' \
  "SORT nonexistent file" "                          " 4
at_xfail=no
(
  $as_echo "737. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT SORT-IN   ASSIGN "SORT-IN".
       SELECT SORT-OUT  ASSIGN "SORT-OUT".
       SELECT SORT-WRK  ASSIGN "SORT-WRK".
       DATA             DIVISION.
       FILE             SECTION.
       FD SORT-IN.
       01 IN-REC        PIC X(100).
       FD SORT-OUT.
       01 OUT-REC       PIC X(100).
       SD SORT-WRK.
       01 WRK-REC       PIC X(100).
       PROCEDURE        DIVISION.
           SORT SORT-WRK
                ASCENDING KEY WRK-REC
                USING  SORT-IN
                GIVING SORT-OUT.
             STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1308: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1308"
( $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/run_file.at:1308"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1309: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1309"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:1309"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1310: cat SORT-OUT"
at_fn_check_prepare_trace "run_file.at:1310"
( $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/run_file.at:1310"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_737
#AT_START_738
at_fn_group_banner 738 'run_file.at:1315' \
  "SORT with INPUT/OUTPUT PROCEDUREs" "              " 4
at_xfail=no
(
  $as_echo "738. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN DISK.
       DATA DIVISION.
       FILE SECTION.
       SD file1.
       1  file1-rec.
          2  file1-key pic 9(4).
          2  file1-data pic x(10).
       WORKING-STORAGE SECTION.
       77 w-eof pic 9 value 0.
       1  1-values.
          2  filler pic x(14) value "0001A--------A".
          2  filler pic x(14) value "0002B--------B".
          2  filler pic x(14) value "0003C--------C".
          2  filler pic x(14) value "0004D--------D".
          2  filler pic x(14) value "0005E--------E".
          2  filler pic x(14) value "0006F--------F".
          2  filler pic x(14) value "0007G--------G".
          2  filler pic x(14) value "0008H--------H".
          2  filler pic x(14) value "0009I--------I".
          2  filler pic x(14) value "0010J--------J".
          2  filler pic x(14) value "0011K--------K".
          2  filler pic x(14) value "0012L--------L".
          2  filler pic x(14) value "0013M--------M".
          2  filler pic x(14) value "0014N--------N".
          2  filler pic x(14) value "0015O--------O".
          2  filler pic x(14) value "0016P--------P".
          2  filler pic x(14) value "0017Q--------Q".
          2  filler pic x(14) value "0018R--------R".
          2  filler pic x(14) value "0019S--------S".
          2  filler pic x(14) value "0020T--------T".
          2  filler pic x(14) value "0021U--------U".
          2  filler pic x(14) value "0022V--------V".
          2  filler pic x(14) value "0023W--------W".
          2  filler pic x(14) value "0024X--------X".
          2  filler pic x(14) value "0025Y--------Y".
          2  filler pic x(14) value "0026Z--------Z".
       1  filler redefines 1-values.
          2  1-record occurs 26 times indexed by ix-1.
           3 1-key pic 9(4).
           3 1-data pic x(10).
       PROCEDURE DIVISION.
       a01-main.
          SORT file1 ON ASCENDING file1-key
             INPUT PROCEDURE a02-release-to-sort
             OUTPUT PROCEDURE a03-return-from-sort.
          STOP RUN.
      *
       a02-release-to-sort.
          PERFORM VARYING ix-1 FROM 1 BY 2 UNTIL ix-1 > 26
             RELEASE file1-rec from 1-record(ix-1)
          END-PERFORM.
          PERFORM VARYING ix-1 FROM 2 BY 2 UNTIL ix-1 > 26
             RELEASE file1-rec from 1-record(ix-1)
          END-PERFORM.
      *
       a03-return-from-sort.
          PERFORM VARYING ix-1 FROM 1 BY 1
             UNTIL (ix-1 > 26) OR (w-eof = 1)
             RETURN file1 RECORD
               AT END MOVE 1 TO w-eof
             END-RETURN
             IF (file1-rec <> 1-record(ix-1))
                MOVE 1 TO w-eof
             END-IF
          END-PERFORM.
          IF (w-eof = 1)
             DISPLAY "FAILED: unexpected eof"
          ELSE
             RETURN file1 RECORD
               AT END CONTINUE
               NOT AT END DISPLAY "FAILED: expected eof"
             END-RETURN
          END-IF.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1399: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1399"
( $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/run_file.at:1399"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1400: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1400"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:1400"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_738
#AT_START_739
at_fn_group_banner 739 'run_file.at:1405' \
  "SORT with key1 ASCENDING, key2 DESCENDING" "      " 4
at_xfail=no
(
  $as_echo "739. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >file1 <<'_ATEOF'
A1
A2
A3
Z9
A4
B1
B2
A0
C1
C2
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ORGANIZATION LINE SEQUENTIAL
                    ASSIGN "./file1".
       SELECT file2 ORGANIZATION LINE SEQUENTIAL
                    ASSIGN "./file2".
       SELECT file3 ASSIGN DISK.
       DATA DIVISION.
       FILE SECTION.
       FD file1.
       1  file1-rec pic xxx.
       FD file2.
       1  file2-rec pic xxx.
       SD file3.
       1  file3-rec.
          2  file3-key1 pic x.
          2  file3-key2 pic 9.
          2  file3-dot pic x.
       PROCEDURE DIVISION.
          SORT file3 ON ASCENDING file3-key1
                        DESCENDING file3-key2
             USING file1
             GIVING file2.
          STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1451: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1451"
( $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/run_file.at:1451"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1452: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1452"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:1452"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1453: cat file2"
at_fn_check_prepare_trace "run_file.at:1453"
( $at_check_trace; cat file2
) >>"$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 "A4
A3
A2
A1
A0
B2
B1
C2
C1
Z9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1453"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_739
#AT_START_740
at_fn_group_banner 740 'run_file.at:1469' \
  "ASSIGN with LOCAL-STORAGE item" "                 " 4
at_xfail=no
(
  $as_echo "740. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >test.txt <<'_ATEOF'
hello
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT test-file ASSIGN path
                        ORGANIZATION LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE	            SECTION.
       FD  test-file.
       01  test-rec     PIC X(5).
       LOCAL-STORAGE    SECTION.
       01  path         PIC X(10) VALUE "test.txt".
       PROCEDURE        DIVISION.
           OPEN INPUT test-file
           READ test-file   END-READ
           IF test-rec NOT = "hello"
              DISPLAY test-rec END-DISPLAY
           END-IF
           CLOSE test-file
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1500: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1500"
( $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/run_file.at:1500"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1501: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1501"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:1501"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_740
#AT_START_741
at_fn_group_banner 741 'run_file.at:1506' \
  "ASSIGN with LOCAL-STORAGE item and INITIAL prog" "" 4
at_xfail=no
(
  $as_echo "741. $at_setup_line: testing $at_desc ..."
  $at_traceon



# Files are initialised in a different location in INITIAL program, hence the
# need for a separate test.

cat >test.txt <<'_ATEOF'
hello
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog INITIAL.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT test-file ASSIGN path
                        ORGANIZATION LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE	            SECTION.
       FD  test-file.
       01  test-rec     PIC X(5).
       LOCAL-STORAGE    SECTION.
       01  path         PIC X(10) VALUE "test.txt".
       PROCEDURE        DIVISION.
           OPEN INPUT test-file
           READ test-file   END-READ
           IF test-rec NOT = "hello"
              DISPLAY test-rec END-DISPLAY
           END-IF
           CLOSE test-file
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1540: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1540"
( $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/run_file.at:1540"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1541: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1541"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:1541"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_741
#AT_START_742
at_fn_group_banner 742 'run_file.at:1546' \
  "ASSIGN with BASED data item" "                    " 4
at_xfail=no
(
  $as_echo "742. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >TEST-FILE <<'_ATEOF'
hello
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT test-file ASSIGN path
                        ORGANIZATION LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE	            SECTION.
       FD  test-file.
       01  test-rec     PIC X(5).
       WORKING-STORAGE  SECTION.
       01  path         BASED PIC X(10).
       01  x            PIC X.
       PROCEDURE        DIVISION CHAINING x.
           IF x NOT = SPACES
              ALLOCATE path
              MOVE "TEST-FILE" TO path
              OPEN INPUT test-file
              FREE path
           ELSE
              OPEN INPUT test-file
           END-IF
           READ test-file   END-READ
           IF test-rec NOT = "hello"
              DISPLAY test-rec END-DISPLAY
           END-IF
           CLOSE test-file
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT test-file ASSIGN path
                        ORGANIZATION LINE SEQUENTIAL
                        FILE STATUS TEST-STAT.
       DATA             DIVISION.
       FILE	            SECTION.
       FD  test-file.
       01  test-rec     PIC X(5).
       WORKING-STORAGE  SECTION.
       01  path         BASED PIC X(10).
       01  test-stat    PIC X(2) VALUE "XX".
       PROCEDURE        DIVISION.
           OPEN INPUT test-file
           IF TEST-STAT NOT = '31'
              DISPLAY 'BAD OPEN, STATUS "' test-stat '"' END-DISPLAY
           END-IF
           READ test-file   END-READ
           IF TEST-STAT NOT = '47'
              DISPLAY 'BAD READ, STATUS "' test-stat '"' END-DISPLAY
           END-IF
           CLOSE test-file
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1614: \$COBC -x prog.cob"
at_fn_check_prepare_dynamic "$COBC -x prog.cob" "run_file.at:1614"
( $at_check_trace; $COBC -x 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/run_file.at:1614"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1615: \$COBCRUN_DIRECT ./prog X"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog X" "run_file.at:1615"
( $at_check_trace; $COBCRUN_DIRECT ./prog 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/run_file.at:1615"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1616: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1616"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: error: inconsistent file name (status = 31) for file test-file ('field with NULL address')
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:1616"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1619: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1619"
( $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/run_file.at:1619"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1620: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1620"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:23: error: inconsistent file name (status = 31) for file test-file ('field with NULL address') on OPEN
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:1620"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:1624: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:1624"
( $at_check_trace; $COMPILE prog2.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/run_file.at:1624"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1625: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_file.at:1625"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1625"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_742
#AT_START_743
at_fn_group_banner 743 'run_file.at:1630' \
  "ASSIGN with data item in LINKAGE" "               " 4
at_xfail=no
(
  $as_echo "743. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  f-path     PIC X(80) VALUE "fooasg.txt".
       01  x-path     PIC X(80) VALUE "foxasg.txt".
       01  y-path     PIC X(80) VALUE "foyasg.txt".
       01  REC1       PIC 9(4) VALUE 1.
       01  REC2       PIC 9(4) VALUE 2.
       01  CUST-STAT  PIC X(2) VALUE "XX".

       PROCEDURE DIVISION.
           CALL "TSTOPN"  USING OMITTED.
           CALL "TSTOPN"  USING y-path.
           CALL "TSTOPEN" USING f-path  REC1 CUST-STAT.
           CALL "TSTOPEN" USING x-path  REC1 CUST-STAT.
           CALL "TSTOPEN" USING OMITTED REC1 CUST-STAT.
           CALL "TSTOPEN" USING f-path  REC2 CUST-STAT.
           CALL "TSTOPEN" USING x-path  REC2 CUST-STAT.
           STOP RUN.
           END PROGRAM prog.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. TSTOPEN.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN s-path
           ORGANIZATION RELATIVE
           ACCESS IS RANDOM
           RELATIVE KEY IS REC-NUM
           FILE STATUS IS CUST-STAT.

       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  f-line PIC X(79).

       WORKING-STORAGE SECTION.
       01  z-path   PIC X(80) VALUE "foozzz.txt".

       LINKAGE SECTION.
       01  s-path     PIC X(80).
       01  REC-NUM    PIC 9(4).
       01  CUST-STAT  PIC X(2).

       PROCEDURE DIVISION USING s-path, REC-NUM, CUST-STAT.
           IF ADDRESS OF s-path = NULL
              SET ADDRESS OF s-path TO ADDRESS OF z-path
           END-IF.
           IF REC-NUM > 1
              OPEN I-O f
              DISPLAY "Extend file: " s-path(1:10)
                   " - " CUST-STAT " #" REC-NUM "."
           ELSE
              OPEN OUTPUT f
              DISPLAY "Output file: " s-path(1:10)
                   " - " CUST-STAT " #" REC-NUM "."
           END-IF.
           IF CUST-STAT NOT = "00"
               DISPLAY "Opened error: " CUST-STAT "."
               GOBACK
           END-IF.
           MOVE "Hello World" TO f-line.
           MOVE REC-NUM       TO f-line (20:4).
           WRITE f-line.
           IF CUST-STAT NOT = "00"
               DISPLAY "WRITE error: " CUST-STAT "."
           END-IF.
           CLOSE f.
           GOBACK.
       END PROGRAM TSTOPEN.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. TSTOPN.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN s-path
           ORGANIZATION LINE SEQUENTIAL
           FILE STATUS IS IO-STS.

       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  f-line PIC X(80).

       WORKING-STORAGE SECTION.
       01  IO-STS   PIC X(2) VALUE "00".

       LINKAGE SECTION.
       01  s-path   PIC X(80).

       PROCEDURE DIVISION USING s-path.
           OPEN OUTPUT f
           IF IO-STS NOT = "00"
               DISPLAY "Opened error: " IO-STS "."
               GOBACK
           END-IF.
           DISPLAY "Opened file: " s-path(1:10) ".".
           MOVE "Hello World" TO f-line.
           WRITE f-line.
           CLOSE f.
           GOBACK.
       END PROGRAM TSTOPN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog2.

       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.

       PROCEDURE DIVISION.
           CALL "TSTOPEN" USING OMITTED.
           STOP RUN.
           END PROGRAM prog2.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. TSTOPEN.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN s-path
           ORGANIZATION SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  f-line PIC X(79).

       LINKAGE SECTION.
       01  s-path     PIC X(80).

       PROCEDURE DIVISION USING s-path.
           OPEN OUTPUT f
           GOBACK.
       END PROGRAM TSTOPEN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1781: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1781"
( $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/run_file.at:1781"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:1783: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1783"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Opened error: 31.
Opened file: foyasg.txt.
Output file: fooasg.txt - 00 #0001.
Output file: foxasg.txt - 00 #0001.
Output file: foozzz.txt - 00 #0001.
Extend file: fooasg.txt - 00 #0002.
Extend file: foxasg.txt - 00 #0002.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1783"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:1793: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:1793"
( $at_check_trace; $COMPILE prog2.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/run_file.at:1793"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:1795: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_file.at:1795"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog2.cob:32: error: inconsistent file name (status = 31) for file f ('field with NULL address') on OPEN
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:1795"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_743
#AT_START_744
at_fn_group_banner 744 'run_file.at:1802' \
  "ASSIGN with empty data item" "                    " 4
at_xfail=no
(
  $as_echo "744. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT test-file ASSIGN path
                        ORGANIZATION LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE	            SECTION.
       FD  test-file.
       01  test-rec     PIC X(5).
       WORKING-STORAGE  SECTION.
       01  WS-SUBSCRIPT-CNT         PIC 9.
       01  path         PIC X(10).
       01  x            PIC X.
       PROCEDURE        DIVISION CHAINING x.
           IF X = SPACE
              MOVE SPACES     TO path
           ELSE
              MOVE LOW-VALUES TO path
           END-IF
           OPEN INPUT test-file
           DISPLAY "Hello"
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:1832: \$COBC -x prog.cob"
at_fn_check_prepare_dynamic "$COBC -x prog.cob" "run_file.at:1832"
( $at_check_trace; $COBC -x 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/run_file.at:1832"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1833: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1833"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: error: inconsistent file name (status = 31) for file test-file ('')
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:1833"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:1836: \$COBCRUN_DIRECT ./prog X"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog X" "run_file.at:1836"
( $at_check_trace; $COBCRUN_DIRECT ./prog X
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: error: inconsistent file name (status = 31) for file test-file ('')
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:1836"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_744
#AT_START_745
at_fn_group_banner 745 'run_file.at:1843' \
  "INDEXED file key-name" "                          " 4
at_xfail=no
(
  $as_echo "745. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: separate both test parts

$as_echo "run_file.at:1848" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:1848"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. "test".
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT TEST-FILE ASSIGN "FILE"
               ORGANIZATION IS INDEXED
               ACCESS IS DYNAMIC
               RECORD KEY IS KEY01 = QQINDEX.
       DATA DIVISION.
       FILE SECTION.
       FD TEST-FILE.
       01 TEST-REC.
          03 QQDATA     PIC X(80).
          03 QQINDEX    PIC XXX9999.
          03 QQSEQUENCE PIC 9999.
       PROCEDURE DIVISION.
           OPEN OUTPUT TEST-FILE
           MOVE 'TEST DATA 1' TO QQDATA
           MOVE 'ABC0001'     TO QQINDEX
           WRITE TEST-REC
           MOVE 'TEST DATA 2' TO QQDATA
           MOVE 'ABC0002'     TO QQINDEX
           WRITE TEST-REC
           CLOSE TEST-FILE
           DISPLAY 'FINE' WITH NO ADVANCING
           GOBACK.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_file.at:1879: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:1879"
( $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/run_file.at:1879"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:1881: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:1881"
( $at_check_trace; $COBCRUN_DIRECT ./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 "FINE" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:1881"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_745
#AT_START_746
at_fn_group_banner 746 'run_file.at:1885' \
  "INDEXED file sparse/split keys" "                 " 4
at_xfail=no
(
  $as_echo "746. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: separate both test parts

$as_echo "run_file.at:1890" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:1890"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.

       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT TSPFILE
           ASSIGN TO "testisam"
           ORGANIZATION INDEXED ACCESS DYNAMIC
           RECORD KEY IS PRIME-KEY
           SOURCE IS CM-CUST-NUM, CM-COMPANY

           ALTERNATE RECORD KEY IS SPLIT-KEY2
           SOURCE IS CM-TELEPHONE,CM-MACHINE WITH DUPLICATES

           ALTERNATE RECORD KEY IS SPLIT-KEY3
           SOURCE IS CM-DISK,CM-TAPE WITH DUPLICATES
                SUPPRESS WHEN ALL "*"
           FILE STATUS IS CUST-STAT
           .

       DATA  DIVISION.
       FILE SECTION.
       FD  TSPFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSPFL-RECORD.
           05  TSPFL-REC.
           10  CM-CUST-NUM                     PICTURE X(8).
           10  CM-STATUS                       PICTURE X.
           10  CM-COMPANY                      PICTURE X(25).
           10  CM-ADDRESS-1                    PICTURE X(25).
           10  CM-ADDRESS-2                    PICTURE X(25).
           10  CM-ADDRESS-3                    PICTURE X(25).
           10  CM-TELEPHONE                    PICTURE 9(10).
           10  CM-DP-MGR                       PICTURE X(25).
           10  CM-MACHINE                      PICTURE X(8).
           10  CM-MEMORY                       PICTURE X(4).
           10  CM-DISK                         PICTURE X(8).
           10  CM-TAPE                         PICTURE X(8).
           10  CM-NO-TERMINALS                 PICTURE 9(5).

       WORKING-STORAGE SECTION.

       01  CUST-STAT.
           05  STAT-1 PICTURE 9(4) COMP SYNC.
           05  FILLER REDEFINES STAT-1.
               10  STAT-X1 PIC X COMP-X.
               10  STAT-X2 PIC X COMP-X.
       77  BYTE-1  PICTURE 9(3).
       77  BYTE-2  PICTURE 9(3).
       77  MAX-SUB           VALUE  16         PICTURE 9(5) COMP SYNC.

       01  TEST-DATA.

         02  DATA-CUST-NUM-TBL.

           05  FILLER PIC X(8) VALUE "ALP00000".
           05  FILLER PIC X(8) VALUE "BET00000".
           05  FILLER PIC X(8) VALUE "GAM00000".
           05  FILLER PIC X(8) VALUE "DEL00000".
           05  FILLER PIC X(8) VALUE "EPS00000".
           05  FILLER PIC X(8) VALUE "FOR00000".
           05  FILLER PIC X(8) VALUE "GIB00000".
           05  FILLER PIC X(8) VALUE "H&J00000".
           05  FILLER PIC X(8) VALUE "INC00000".
           05  FILLER PIC X(8) VALUE "JOH00000".
           05  FILLER PIC X(8) VALUE "KON00000".
           05  FILLER PIC X(8) VALUE "LEW00000".
           05  FILLER PIC X(8) VALUE "MOR00000".
           05  FILLER PIC X(8) VALUE "NEW00000".
           05  FILLER PIC X(8) VALUE "OLD00000".
           05  FILLER PIC X(8) VALUE "PRE00000".

         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
                                       PIC X(8) OCCURS 16.
         02  DATA-COMPANY-TBL.

           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
           05  FILLER PIC X(25) VALUE "GIBRALTER LIFE INSURANCE ".
           05  FILLER PIC X(25) VALUE "H & J PLUMBING SUPPLIES  ".
           05  FILLER PIC X(25) VALUE "INCREMENTAL BACKUP CORP. ".
           05  FILLER PIC X(25) VALUE "JOHNSON BOATING SUPPLIES ".
           05  FILLER PIC X(25) VALUE "KONFLAB PLASTIC PRODUCTS.".
           05  FILLER PIC X(25) VALUE "LEWISTON GRAPHICS LTD.   ".
           05  FILLER PIC X(25) VALUE "MORNINGSIDE CARPENTRY.   ".
           05  FILLER PIC X(25) VALUE "NEW WAVE SURF SHOPS INC. ".
           05  FILLER PIC X(25) VALUE "OLD TYME PIZZA MFG. CO.  ".
           05  FILLER PIC X(25) VALUE "PRESTIGE OFFICE FURNITURE".

         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
                                       PIC X(25) OCCURS 16.
         02  DATA-ADDRESS-1-TBL.

           05  FILLER PIC X(25) VALUE "123 MAIN STREET          ".
           05  FILLER PIC X(25) VALUE "1090 2ND AVE. WEST       ".
           05  FILLER PIC X(25) VALUE "1401 JEFFERSON BLVD.     ".
           05  FILLER PIC X(25) VALUE "1620 ARIZONA WAY         ".
           05  FILLER PIC X(25) VALUE "1184 EAST FIRST STREET   ".
           05  FILLER PIC X(25) VALUE "114 JOHN F. KENNEDY AVE. ".
           05  FILLER PIC X(25) VALUE "650 LIBERTY CRESCENT     ".
           05  FILLER PIC X(25) VALUE "77 SUNSET BLVD.          ".
           05  FILLER PIC X(25) VALUE "10908 SANTA MONICA BLVD. ".
           05  FILLER PIC X(25) VALUE "1134 PARIS ROAD          ".
           05  FILLER PIC X(25) VALUE "808 NORTHWEST MAIN ST.   ".
           05  FILLER PIC X(25) VALUE "9904 QUEEN STREET        ".
           05  FILLER PIC X(25) VALUE "1709 DUNDAS CRESCENT W.  ".
           05  FILLER PIC X(25) VALUE "3240 MARIS AVENUE        ".
           05  FILLER PIC X(25) VALUE "1705 WISCONSIN ROAD      ".
           05  FILLER PIC X(25) VALUE "114A MAPLE GROVE         ".

         02  DATA-ADDRESS-1 REDEFINES DATA-ADDRESS-1-TBL
                                       PIC X(25) OCCURS 16.
         02  DATA-ADDRESS-2-TBL.

           05  FILLER PIC X(10) VALUE "NEW YORK  ".
           05  FILLER PIC X(10) VALUE "ATLANTA   ".
           05  FILLER PIC X(10) VALUE "WASHINGTON".
           05  FILLER PIC X(10) VALUE "TORONTO   ".
           05  FILLER PIC X(10) VALUE "CALGARY   ".
           05  FILLER PIC X(10) VALUE "SAN DIEGO ".
           05  FILLER PIC X(10) VALUE "LOS RIOS  ".
           05  FILLER PIC X(10) VALUE "MADISON   ".
           05  FILLER PIC X(10) VALUE "WILBUR    ".
           05  FILLER PIC X(10) VALUE "TOPEKA    ".
           05  FILLER PIC X(10) VALUE "SEATTLE   ".
           05  FILLER PIC X(10) VALUE "NEW JERSEY".
           05  FILLER PIC X(10) VALUE "FORT WAYNE".
           05  FILLER PIC X(10) VALUE "COLUMBUS  ".
           05  FILLER PIC X(10) VALUE "RICHMOND  ".
           05  FILLER PIC X(10) VALUE "WHITEPLAIN".

         02  DATA-ADDRESS-2 REDEFINES DATA-ADDRESS-2-TBL
                                       PIC X(10) OCCURS 16.
         02  DATA-ADDRESS-3-TBL.

           05  FILLER PIC X(10) VALUE "N.Y.      ".
           05  FILLER PIC X(10) VALUE "GEORGIA   ".
           05  FILLER PIC X(10) VALUE "D.C.      ".
           05  FILLER PIC X(10) VALUE "CANADA    ".
           05  FILLER PIC X(10) VALUE "CANADA    ".
           05  FILLER PIC X(10) VALUE "CALIFORNIA".
           05  FILLER PIC X(10) VALUE "NEW MEXICO".
           05  FILLER PIC X(10) VALUE "WISCONSIN ".
           05  FILLER PIC X(10) VALUE "DELAWARE  ".
           05  FILLER PIC X(10) VALUE "KANSAS    ".
           05  FILLER PIC X(10) VALUE "WASHINGTON".
           05  FILLER PIC X(10) VALUE "N.J.      ".
           05  FILLER PIC X(10) VALUE "COLORADO  ".
           05  FILLER PIC X(10) VALUE "OHIO      ".
           05  FILLER PIC X(10) VALUE "VIRGINIA  ".
           05  FILLER PIC X(10) VALUE "N.Y.      ".

         02  DATA-ADDRESS-3 REDEFINES DATA-ADDRESS-3-TBL
                                       PIC X(10) OCCURS 16.
         02  DATA-TELEPHONE-TBL.

           05  FILLER PIC 9(10) VALUE 3131234432.
           05  FILLER PIC 9(10) VALUE 4082938498.
           05  FILLER PIC 9(10) VALUE 8372487274.
           05  FILLER PIC 9(10) VALUE 4169898509.
           05  FILLER PIC 9(10) VALUE 5292398745.
           05  FILLER PIC 9(10) VALUE 8009329492.
           05  FILLER PIC 9(10) VALUE 6456445643.
           05  FILLER PIC 9(10) VALUE 6546456333.
           05  FILLER PIC 9(10) VALUE 3455445444.
           05  FILLER PIC 9(10) VALUE 6456445643.
           05  FILLER PIC 9(10) VALUE 7456434355.
           05  FILLER PIC 9(10) VALUE 6554456433.
           05  FILLER PIC 9(10) VALUE 4169898509.
           05  FILLER PIC 9(10) VALUE 7534587453.
           05  FILLER PIC 9(10) VALUE 8787458374.
           05  FILLER PIC 9(10) VALUE 4169898509.

         02  DATA-TELEPHONE REDEFINES DATA-TELEPHONE-TBL
                                       PIC 9(10) OCCURS 16.
         02  DATA-DP-MGR-TBL.

           05  FILLER PIC X(20) VALUE "MR. DAVE HARRIS     ".
           05  FILLER PIC X(20) VALUE "MS. JANICE SILCOX   ".
           05  FILLER PIC X(20) VALUE "MR. ALLAN JONES     ".
           05  FILLER PIC X(20) VALUE "MR. PETER MACKAY    ".
           05  FILLER PIC X(20) VALUE "MRS. DONNA BREWER   ".
           05  FILLER PIC X(20) VALUE "MR. MICHAEL SMYTHE  ".
           05  FILLER PIC X(20) VALUE "MR. D.A. MORRISON   ".
           05  FILLER PIC X(20) VALUE "MR. BRIAN PATTERSON ".
           05  FILLER PIC X(20) VALUE "MR. DARRYL TOWNSEND ".
           05  FILLER PIC X(20) VALUE "MS. VALERIE HARPER  ".
           05  FILLER PIC X(20) VALUE "MR. FRED MILLER     ".
           05  FILLER PIC X(20) VALUE "MR. DONALD FISCHER  ".
           05  FILLER PIC X(20) VALUE "MR. STEVEN YOURDIN  ".
           05  FILLER PIC X(20) VALUE "MS. Goldie Hawn     ".
           05  FILLER PIC X(20) VALUE "MS. ALICE WINSTON   ".
           05  FILLER PIC X(20) VALUE "MR. THOMAS JEFFERSON".

         02  DATA-DP-MGR    REDEFINES DATA-DP-MGR-TBL
                                       PIC X(20) OCCURS 16.
         02  DATA-MACHINE-TBL.

           05  FILLER PIC X(8) VALUE "UNI-9030".
           05  FILLER PIC X(8) VALUE "UNI-9040".
           05  FILLER PIC X(8) VALUE "UNI-80/3".
           05  FILLER PIC X(8) VALUE "UNI-80/5".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-9040".
           05  FILLER PIC X(8) VALUE "UNI-9040".

         02  DATA-MACHINE   REDEFINES DATA-MACHINE-TBL
                                       PIC X(8) OCCURS 16.
         02  DATA-NO-TERMINALS-TBL.

           05  FILLER PIC 9(3) COMP-3 VALUE 85.
           05  FILLER PIC 9(3) COMP-3 VALUE 34.
           05  FILLER PIC 9(3) COMP-3 VALUE 75.
           05  FILLER PIC 9(3) COMP-3 VALUE 45.
           05  FILLER PIC 9(3) COMP-3 VALUE 90.
           05  FILLER PIC 9(3) COMP-3 VALUE 107.
           05  FILLER PIC 9(3) COMP-3 VALUE 67.
           05  FILLER PIC 9(3) COMP-3 VALUE 32.
           05  FILLER PIC 9(3) COMP-3 VALUE 16.
           05  FILLER PIC 9(3) COMP-3 VALUE 34.
           05  FILLER PIC 9(3) COMP-3 VALUE 128.
           05  FILLER PIC 9(3) COMP-3 VALUE 64.
           05  FILLER PIC 9(3) COMP-3 VALUE 110.
           05  FILLER PIC 9(3) COMP-3 VALUE 324.
           05  FILLER PIC 9(3) COMP-3 VALUE 124.
           05  FILLER PIC 9(3) COMP-3 VALUE 86.

         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
                                       PIC 9(3) COMP-3 OCCURS 16.

       01  WORK-AREA.
           05  REC-NUM                         PICTURE 9(6) VALUE 0.
           05  REC-MAX                         PICTURE 9(6) VALUE 10.
           05  SUB                             PICTURE 9(4) COMP SYNC.
               88  ODD-RECORD                  VALUE 1 3 5 7 9 10 11.
               88  NULL-KEY                    VALUE 4 5 8 12 14.

           05  TSPFL-KEY                       PICTURE X(8).

       PROCEDURE DIVISION.

       MAINFILE.
           PERFORM LOADFILE.
           PERFORM LISTFILE.
           STOP RUN.

       LOADFILE.
           DISPLAY "Loading sample data file."
                            UPON CONSOLE.

           OPEN OUTPUT TSPFILE
           IF CUST-STAT NOT = "00"
               DIVIDE STAT-1 BY 256 GIVING BYTE-1 REMAINDER BYTE-2
               DISPLAY "Error " CUST-STAT " " BYTE-1 " " BYTE-2
               " opening 'testisam' file"
                                UPON CONSOLE
               STOP RUN
           END-IF.

           PERFORM 1000-LOAD-RECORD
                        VARYING SUB FROM 1 BY 1
                          UNTIL SUB > MAX-SUB.

           DISPLAY "Sample data file load complete."
                            UPON CONSOLE.
           CLOSE TSPFILE.

      *---------------------------------------------------------------*
      *         LOAD A RECORD FROM DATA TABLES                        *
      *---------------------------------------------------------------*

       1000-LOAD-RECORD.

           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
           MOVE CM-CUST-NUM                  TO TSPFL-KEY.
           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
           MOVE DATA-ADDRESS-1     (SUB)     TO CM-ADDRESS-1.
           MOVE DATA-ADDRESS-2     (SUB)     TO CM-ADDRESS-2.
           MOVE DATA-ADDRESS-3     (SUB)     TO CM-ADDRESS-3.
           MOVE DATA-TELEPHONE     (SUB)     TO CM-TELEPHONE.
           MOVE DATA-DP-MGR        (SUB)     TO CM-DP-MGR.
           MOVE DATA-MACHINE       (SUB)     TO CM-MACHINE.
           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.

           IF  ODD-RECORD
               MOVE "8417"                   TO CM-DISK
               MOVE "1600 BPI"               TO CM-TAPE
               MOVE "1MEG"                   TO CM-MEMORY
           ELSE
               MOVE "8470"                   TO CM-DISK
               MOVE "6250 BPI"               TO CM-TAPE
               MOVE "3MEG"                   TO CM-MEMORY.
           IF  NULL-KEY
               MOVE ALL "*"                  TO CM-DISK
               MOVE ALL "*"                  TO CM-TAPE.

           WRITE TSPFL-RECORD.
           IF CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Key: " TSPFL-KEY ", Status: " CUST-STAT
                                 UPON CONSOLE.

       LISTFILE.
           DISPLAY "LIST SAMPLE FILE" UPON CONSOLE.
           MOVE ZERO TO REC-NUM
           OPEN INPUT TSPFILE
           IF CUST-STAT NOT = "00"
               DISPLAY "ERROR " CUST-STAT " OPENING INPUT FILE "
                                             UPON CONSOLE
               IF CUST-STAT (1:1) = "9"
                   DISPLAY "Sub Error " STAT-X2 UPON CONSOLE
               END-IF
               STOP RUN
           END-IF.
           MOVE SPACES                       TO TSPFL-RECORD.
           START TSPFILE KEY GREATER THAN PRIME-KEY
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " starting file"
                                UPON CONSOLE
               IF CUST-STAT (1:1) = "9"
                   DISPLAY "Sub Error " STAT-X2 UPON CONSOLE
               END-IF
               STOP RUN
           END-IF.
           READ  TSPFILE NEXT RECORD WITH NO LOCK
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on 1st read of file"
                                UPON CONSOLE
               IF CUST-STAT (1:1) = "9"
                   DISPLAY "Sub Error " STAT-X2 UPON CONSOLE
               END-IF
               STOP RUN
           END-IF.
           PERFORM UNTIL CUST-STAT NOT = "00"
                      OR REC-NUM > REC-MAX
               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK ":"
                         UPON CONSOLE
               READ TSPFILE NEXT RECORD
                    AT END
                        MOVE "99" TO CUST-STAT
                END-READ
                ADD 1 TO REC-NUM
           END-PERFORM
           IF CUST-STAT = "99"
               DISPLAY "Hit End of File" UPON CONSOLE
           END-IF.

           DISPLAY "LIST SAMPLE FILE DESCENDING" UPON CONSOLE.
           MOVE ZERO TO REC-NUM
           START TSPFILE KEY LESS THAN PRIME-KEY
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " starting file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           READ  TSPFILE PREVIOUS RECORD WITH NO LOCK
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on 1st read of file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           PERFORM UNTIL CUST-STAT NOT = "00"
                      OR REC-NUM > REC-MAX
               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK ":"
                         UPON CONSOLE
               READ TSPFILE PREVIOUS RECORD
                    AT END
                        MOVE "99" TO CUST-STAT
                END-READ
                ADD 1 TO REC-NUM
           END-PERFORM.

           DISPLAY "LIST SAMPLE FILE BY KEY3" UPON CONSOLE.
           MOVE ZERO                         TO REC-NUM
           MOVE SPACES                       TO TSPFL-RECORD.
           START TSPFILE KEY GREATER THAN OR EQUAL TO SPLIT-KEY3
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " starting file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           READ  TSPFILE NEXT RECORD WITH NO LOCK
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " on 1st read of file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           PERFORM UNTIL (CUST-STAT NOT = "00"
                      AND CUST-STAT NOT = "02")
                      OR REC-NUM > REC-MAX
               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK ":"
                         UPON CONSOLE
               READ TSPFILE NEXT RECORD
                    AT END
                        MOVE "99" TO CUST-STAT
                END-READ
                ADD 1 TO REC-NUM
           END-PERFORM.
      *---- Some results may be different with VB-ISAM  ------*
           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
           READ TSPFILE KEY IS PRIME-KEY
           IF  CUST-STAT NOT = "23"
               DISPLAY "Error " CUST-STAT " instead of 23"
                                UPON CONSOLE
           END-IF.
           MOVE DATA-COMPANY       (2)       TO CM-COMPANY.
           READ TSPFILE KEY IS PRIME-KEY
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on primary read "
                                UPON CONSOLE
           ELSE
               DISPLAY "Got: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK ":"
                         UPON CONSOLE
           END-IF.
           READ TSPFILE NEXT RECORD
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on next read "
                                UPON CONSOLE
           ELSE
               DISPLAY "Nxt: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK ":"
                         UPON CONSOLE
           END-IF.
           MOVE DATA-TELEPHONE     (7)       TO CM-TELEPHONE.
           MOVE DATA-MACHINE       (7)       TO CM-MACHINE.
           READ TSPFILE KEY IS SPLIT-KEY2
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " instead of 23"
                                UPON CONSOLE
           ELSE
               DISPLAY "Ky2: " CM-CUST-NUM " is " CM-COMPANY
                        " Mach=" CM-MACHINE ":"
                         UPON CONSOLE
           END-IF.
           CLOSE TSPFILE.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:2356: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:2356"
( $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/run_file.at:2356"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:2358: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:2358"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Loading sample data file.
Sample data file load complete.
LIST SAMPLE FILE
Key: ALP00000 is ALPHA ELECTRICAL CO. LTD. Disk=8417    :
Key: BET00000 is BETA SHOE MFG. INC.       Disk=8470    :
Key: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=********:
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=********:
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    :
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    :
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    :
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=********:
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    :
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    :
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    :
LIST SAMPLE FILE DESCENDING
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    :
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    :
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    :
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=********:
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    :
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    :
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    :
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=********:
Key: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=********:
Key: BET00000 is BETA SHOE MFG. INC.       Disk=8470    :
Key: ALP00000 is ALPHA ELECTRICAL CO. LTD. Disk=8417    :
LIST SAMPLE FILE BY KEY3
Key: ALP00000 is ALPHA ELECTRICAL CO. LTD. Disk=8417    :
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    :
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    :
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    :
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    :
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    :
Key: BET00000 is BETA SHOE MFG. INC.       Disk=8470    :
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    :
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    :
Key: OLD00000 is OLD TYME PIZZA MFG. CO.   Disk=8470    :
Key: PRE00000 is PRESTIGE OFFICE FURNITURE Disk=8470    :
Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    :
Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=********:
Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2358"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_746
#AT_START_747
at_fn_group_banner 747 'run_file.at:2405' \
  "INDEXED file split keys WITH DUPLICATES" "        " 4
at_xfail=no
(
  $as_echo "747. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:2408" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:2408"
## Note: The order in which secondary records with duplicate keys
##       are returnded is not guaranteed.

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           SELECT test-file
               ASSIGN        "TESTFILE"
               ACCESS        DYNAMIC
               ORGANIZATION  INDEXED
               RECORD KEY           test-key-1 SOURCE IS test-key-p1
               ALTERNATE RECORD KEY test-key-2 SOURCE IS test-key-p2,
                                                         test-key-p3
               WITH DUPLICATES
           .

       DATA             DIVISION.
       FILE             SECTION.
       FD  test-file.
       01  test-rec.
           03  test-key-p1 PIC X(4).
           03  test-key-p2 PIC 9(4).
           03  test-data   PIC X(4).
           03  test-key-p3 PIC X(4).

       WORKING-STORAGE SECTION.
       01  found        PIC X(03).

       PROCEDURE        DIVISION.
           OPEN OUTPUT test-file
           WRITE test-rec FROM "BBBB0001dat1aaaa"
           WRITE test-rec FROM "AAAA0001dat2aaaa"
           WRITE test-rec FROM "CCCC0002dat3aaaa"
           WRITE test-rec FROM "DDDD0002dat4bbbb"
           WRITE test-rec FROM "EEEE0002dat5bbbb"
           CLOSE test-file

           OPEN INPUT test-file

           MOVE "CCCC" TO test-key-p1
           READ test-file KEY IS test-key-1
               INVALID KEY
                   DISPLAY "READ with CCCC found no record"
               NOT INVALID KEY
                   IF test-data NOT = "dat3"
                       DISPLAY "READ with wrong result: "
                           test-rec
           END-READ

           MOVE SPACES   TO found

           MOVE 0001     TO test-key-p2
           MOVE "aaaa"   TO test-key-p3
           START test-file KEY >= test-key-2
               INVALID KEY
                   DISPLAY "START >= 0001/aaaa found no record"
               NOT INVALID KEY
                   READ  test-file NEXT
                       AT END
                           DISPLAY "READ NEXT (1) found no record"
                       NOT AT END
                           EVALUATE test-data
                              WHEN "dat1"
                                 MOVE 'X' TO found (1:1)
                              WHEN "dat2"
                                 MOVE 'X' TO found (2:1)
                              WHEN OTHER
                                 DISPLAY "READ NEXT (1) "
                                     "with wrong result: "
                                     test-data
                   END-READ
                   READ  test-file NEXT
                       AT END
                           DISPLAY "READ NEXT (2) found no record"
                       NOT AT END
                           EVALUATE test-data
                              WHEN "dat1"
                                 MOVE 'X' TO found (1:1)
                              WHEN "dat2"
                                 MOVE 'X' TO found (2:1)
                              WHEN OTHER
                                 DISPLAY "READ NEXT (2) "
                                     "with wrong result: "
                                     test-data
                   END-READ
                   IF found NOT = 'XX '
                      DISPLAY "START >= + READ NEXT * 2 "
                          "with wrong result: " found
           END-START
           MOVE 0001      TO test-key-p2
           MOVE "aaaa"    TO test-key-p3
           START test-file KEY > test-key-2
               INVALID KEY
                   DISPLAY "START > 0001/aaaa found no record"
               NOT INVALID KEY
                   READ  test-file NEXT
                       AT END
                           DISPLAY "READ NEXT (3) found no record"
                       NOT AT END
                           IF test-data NOT = "dat3"
                               DISPLAY "READ NEXT (3) "
                                   "with wrong result: "
                                   test-data
                   END-READ
           END-START

           MOVE 0002      TO test-key-p2
           MOVE ALL "z"   TO test-key-p3
           START test-file KEY IS < test-key-2
               INVALID KEY
                   DISPLAY "START < 0002/zzzz found no record"
               NOT INVALID KEY
                   READ  test-file PREVIOUS
                       AT END
                           DISPLAY "READ PREVIOUS (1) found no record"
                       NOT AT END
                           IF test-data NOT = "dat5"
                              DISPLAY "READ PREVIOUS (1) "
                                  "with wrong result: "
                                  test-data
                   END-READ
                   READ  test-file PREVIOUS
                       AT END
                           DISPLAY "READ PREVIOUS (2) found no record"
                       NOT AT END
                           IF test-data NOT = "dat4"
                              DISPLAY "READ PREVIOUS (2) "
                                  "with wrong result: "
                                  test-data
                   END-READ
                   READ  test-file PREVIOUS
                       AT END
                           DISPLAY "READ PREVIOUS (3) found no record"
                       NOT AT END
                           IF test-data NOT = "dat3"
                              DISPLAY "READ PREVIOUS (3) "
                                  "with wrong result: "
                                  test-data
                   END-READ
           END-START

           CLOSE test-file
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:2558: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:2558"
( $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/run_file.at:2558"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:2559: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:2559"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:2559"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_747
#AT_START_748
at_fn_group_banner 748 'run_file.at:2563' \
  "INDEXED file variable length record" "            " 4
at_xfail=no
(
  $as_echo "748. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:2566" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:2566"

cat >prog.cob <<'_ATEOF'

       Identification division.
       Program-id. prog.
      *
       Environment division.

       Input-output section.
       File-control.
      *
           Select optional tbw
               assign to path-tbw
               organization is indexed
               access mode is dynamic
               record key is tbw-key
               alternate record key is tbw-alt
                   suppress when space
               sharing with no other
               file status is fs-file-status.
      *
       I-o-control.
      *
       Data division.
       File section.
      *
       FD  tbw
           record is varying in size
               from 107 to 362 characters
               depending on end-tbw-record
	       .
       01  tbw-record.
           02 tbw-key                        pic x(100).
           02 tbw-alt.
               03 tbw-alt-1                  pic 9(02).
               03 tbw-alt-2                  pic 9(04).
           02 tbw-f1                         pic x(01).
           02 tbw-f2                         pic x(255).
      *
       Working-storage section.

       01  fs-file-status                 pic x(02).

       01  end-tbw-record                 pic 9(09) binary.

       01  flag-tbw                       pic x(01) value low-value.
           88 flag-tbw-open   value high-value.
           88 flag-tbw-closed value low-value.

       01  path-tbw                       pic x(255) value space.

       Procedure division.

      * Prepare.
           Move "tbw" to path-tbw.

      * First test.
           Perform tbw-delete-file thru tbw-exit.

           Perform tbw-open-i-o    thru tbw-exit.

           Move low-values to tbw-key.
           Perform tbw-start-primary-greater thru tbw-exit.

           Perform tbw-read-next thru tbw-exit.

           Move 122 to end-tbw-record.
           Move "aaaaa" to tbw-key.
           Move spaces to tbw-alt
                          tbw-f1
                          tbw-f2.
           Perform tbw-write thru tbw-exit.

           Move low-values to tbw-alt.
           Perform tbw-start-alternate thru tbw-exit.

           Move low-values to tbw-key.
           Perform tbw-start-primary-greater thru tbw-exit.

           Perform tbw-read-next thru tbw-exit.

           Perform tbw-read-next thru tbw-exit.

           Perform tbw-close thru tbw-exit.

      * Second test.

           Perform tbw-delete-file thru tbw-exit.

           Perform tbw-open-i-o thru tbw-exit.

           Move low-values to tbw-key.
           Perform tbw-start-primary-greater thru tbw-exit.

           Perform tbw-read-next thru tbw-exit.

           Move 163 to end-tbw-record.
           Move "aaaaa" to tbw-key.
           Move 1 to tbw-alt-1
                     tbw-alt-2.
           Move spaces to tbw-f1
                          tbw-f2.
           Perform tbw-write thru tbw-exit.

           Move 122 to end-tbw-record.
           Move "aaaab" to tbw-key.
           Move spaces to tbw-alt
                          tbw-f1
                          tbw-f2.
           Perform tbw-write thru tbw-exit.

           Move low-values to tbw-alt.
           Perform tbw-start-alternate thru tbw-exit.

           Perform tbw-read-next thru tbw-exit.

           Move spaces to tbw-alt.
           Perform tbw-rewrite thru tbw-exit.

      *>   note: should not have status 02 as it a suppressed alternate key
      *>         therefore duplicate checks must be skipped

      * Finish.
           Perform tbw-close thru tbw-exit.
           Display "Test completed".
           Stop run.

      * I/O.
       tbw-Open-I-O.
           If flag-tbw-open
               Perform tbw-Close thru tbw-Close-exit.
           Display "open".
           Open i-o tbw.
           Display "open done".
           If fs-file-status is less than "10"
               Set flag-tbw-open to true.
           Go to tbw-exit.
      *
       tbw-Start-Primary-Greater.
           Display "start > tbw-key".
           Start tbw
               key is greater than tbw-key
               invalid key
                 Display "start > tbw-key inv"
                 Go to tbw-exit
               not invalid
                 Display "start > tbw-key done"
                 Go to tbw-exit.
           Display "start > tbw-key "  fs-file-status
           Go to tbw-exit.
      *
       tbw-Start-Alternate.
           Display "start >= tbw-alt".
           Start tbw
               key is not less than tbw-alt
               invalid key
      *>Inspect! Display "start >= tbw-alt inv"
                 Display "start >= tbw-alt done"
                 Go to tbw-exit
               not invalid
                 Display "start >= tbw-alt done"
                 Go to tbw-exit.
           Display "start >= tbw-alt "  fs-file-status
           Go to tbw-exit.
      *
       tbw-Read-Next.
           Display "read next".
           Read tbw
               next record
               at end
                 Display "read next end"
                 Go to tbw-exit
               not at end
                 Display "read next done"
                 Go to tbw-exit.
           Display "read next "  fs-file-status
           Go to tbw-exit.
      *
       tbw-Write.
           Display "write".
           Write tbw-record
               invalid key
                 Display "write inv"
                 Go to tbw-exit
               not invalid
                 Display "write done"
                 Go to tbw-exit.
           Display "write "  fs-file-status
           Go to tbw-exit.
      *
       tbw-Rewrite.
           Display "rewrite".
           Rewrite tbw-record
               invalid key
                 Display "rewrite inv "  fs-file-status
                 Go to tbw-exit
               not invalid
                 Display "rewrite done " fs-file-status
                 Go to tbw-exit.
           Display "rewrite "  fs-file-status
           Go to tbw-exit.
      *
       tbw-Delete-File.
           If flag-tbw-open
               Perform tbw-Close thru tbw-Close-exit.
           Move "xx" to fs-file-status.
           Display "delete file".
           Delete file tbw.
           Display "delete file done".
           Go to tbw-exit.
      *
       tbw-Close.
           If flag-tbw-open
               Display "close"
               Close tbw
               Display "close done"
               Set flag-tbw-closed to true
           end-if.
       tbw-Close-exit.
           Exit.
       tbw-exit.
           Exit.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:2790: \$COMPILE prog.cob "
at_fn_check_prepare_dynamic "$COMPILE prog.cob " "run_file.at:2790"
( $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/run_file.at:2790"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:2792: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:2792"
( $at_check_trace; $COBCRUN_DIRECT ./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 "delete file
delete file done
open
open done
start > tbw-key
start > tbw-key inv
read next
read next 46
write
write done
start >= tbw-alt
start >= tbw-alt done
start > tbw-key
start > tbw-key done
read next
read next done
read next
read next end
close
close done
delete file
delete file done
open
open done
start > tbw-key
start > tbw-key inv
read next
read next 46
write
write done
write
write done
start >= tbw-alt
start >= tbw-alt done
read next
read next done
rewrite
rewrite done 00
close
close done
Test completed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:2792"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_748
#AT_START_749
at_fn_group_banner 749 'run_file.at:2839' \
  "INDEXED sample" "                                 " 4
at_xfail=no
(
  $as_echo "749. $at_setup_line: testing $at_desc ..."
  $at_traceon



# modified version of GC-FAQ: indexing example
# Author: Brian Tiffin, Date:   17-Feb-2009, 28-Jan-2014

$as_echo "run_file.at:2845" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:2845"

cat >prog.cob <<'_ATEOF'


       identification division.
       program-id. linage.

       environment division.
       configuration section.

       input-output section.
       file-control.
          select optional indexed-file
          assign to "indexed-file.dat"
          status is indexing-status-code
          organization is indexed
          access mode is dynamic
          record key is keyfield of indexing-record
          alternate record key is altkey of indexing-record
              with duplicates
          .

       data division.
       file section.
       fd indexed-file.
       01 indexing-record.
          03 keyfield          pic x(8).
          03 filler            pic x.
          03 altkey.
             05 first-part     pic 99.
             05 middle-part    pic x.
             05 last-part      pic 99.
          03 filler            pic x.
          03 data-part         pic x(18).

       working-storage section.
       01 indexing-status-code pic xx.
       01 indexing-status redefines indexing-status-code pic 99.
          88 indexing-ok       values 0 thru 10.

       78 line-separator       value
           '-----------------------------------------'.
       01 display-record.
          03 filler            pic x(4)  value spaces.
          03 keyfield          pic x(8).
          03 filler            pic xx    value spaces.
          03 altkey.
             05 first-part     pic 99.
             05 filler         pic x     value space.
             05 middle-part    pic x.
             05 filler         pic x     value space.
             05 last-part      pic 99.
          03 filler            pic xx    value ", ".
          03 data-part         pic x(18).
       77 safety-net           pic 99.

      *> control break
       01 oldkey               pic 99x99.

      *> read control fields
       01 duplicate-flag       pic x.
          88 no-more-duplicates          value high-value
             when set to false                 low-value.
       01 record-flag          pic x.
          88 no-more-records             value high-value
             when set to false                 low-value.

      *> ***************************************************************
       procedure division.
       main.
      *> Populate a sample database, create or overwrite keys
           perform populate-sample

      *> clear the record space for this example
           move spaces to indexing-record

      *> open the data file again
           open i-o indexed-file
           perform indexing-check
           if not indexing-ok
             stop run returning 1
           end-if

      *> read all the duplicate 00b02 keys
           move 00 to first-part of indexing-record
           move "b" to middle-part of indexing-record
           move 02 to last-part of indexing-record

      *> using read key and then next key / last key compare
           set no-more-duplicates to false

           display "Read all 00b02 keys sequentially" end-display
           perform read-indexing-record
           perform read-next-record
      *>       this is only here for safety...
               varying safety-net from 1 by 1
               until no-more-duplicates
      *>         s a f e  against broken indexed i/o
                  or safety-net > 40
           if safety-net > 40
               display "Safety kicked in!" end-display
           end-if
           display line-separator end-display

      *> read by key of reference ... the cool stuff
           move 00 to first-part of indexing-record
           move "a" to middle-part of indexing-record
           move 02 to last-part of indexing-record
           set no-more-records to false

      *> using start and read next
           display "Read all alternate keys greater than 00a02"
           end-display
           perform start-at-key
           perform read-next-by-key
      *>       this is only here for safety...
               varying safety-net from 1 by 1
               until no-more-records
      *>         s a f e  against broken indexed i/o
                  or safety-net > 40
           if safety-net > 40
               display "Safety kicked in!" end-display
           end-if
           display line-separator end-display

      *> read by primary key of reference
           move "87654321" to keyfield of indexing-record
           set no-more-records to false

      *> using start and previous by key
           display
               "Read all primary keys less than "
               function trim (keyfield of indexing-record)
           end-display
           perform start-prime-key
           perform read-previous-by-key
      *>       this is only here for safety...
               varying safety-net from 1 by 1
               until no-more-records
      *>         s a f e  against broken indexed i/o
                  or safety-net > 40
           if safety-net > 40
             display "Safety kicked in!" end-display
           end-if
           display line-separator end-display

      *> and with that we are done with indexing sample
           close indexed-file

           goback
           .
      *> ***************************************************************

      *> ***************************************************************
      *><* read by alternate key paragraph
       read-indexing-record.
           display "Reading: " altkey of indexing-record end-display
           read indexed-file key is altkey of indexing-record
               invalid key
                   display
                       "bad read key: "
                       function trim (altkey of indexing-record)
                       upon syserr
                   end-display
               set no-more-duplicates to true
           end-read
           perform indexing-check
           .

      *><* read next sequential paragraph
       read-next-record.
           move corresponding indexing-record to display-record
           display display-record end-display
           move altkey of indexing-record to oldkey

           read indexed-file next record
               at end set no-more-duplicates to true
               not at end
                   if oldkey not equal altkey of indexing-record
                       set no-more-duplicates to true
                   end-if
           end-read
           perform indexing-check
           .

      *><* start primary key of reference paragraph
       start-prime-key.
           display "Prime < " keyfield of indexing-record end-display
           start indexed-file
              key is less than
                  keyfield of indexing-record
              invalid key
                  display
                      "bad start: "
                      function trim (keyfield of indexing-record)
                      upon syserr
                  end-display
                  set no-more-records to true
              not invalid key
                  read indexed-file previous record
                      at end set no-more-records to true
                  end-read
           end-start
           perform indexing-check
           .

      *><* read previous by key of reference paragraph
       read-previous-by-key.
           move corresponding indexing-record to display-record
           display display-record end-display

           read indexed-file previous record
               at end set no-more-records to true
           end-read
           perform indexing-check
           .
      *><* start alternate key of reference paragraph
       start-at-key.
           display "Seeking >= " altkey of indexing-record end-display
           start indexed-file
              key is greater than or equal to
                  altkey of indexing-record
              invalid key
                  display
                      "bad start: "
                      function trim (altkey of indexing-record)
                      upon syserr
                  end-display
                  set no-more-records to true
              not invalid key
                  read indexed-file next record
                      at end set no-more-records to true
                  end-read
           end-start
           perform indexing-check
           .

      *><* read next by key of reference paragraph
       read-next-by-key.
           move corresponding indexing-record to display-record
           display display-record end-display

           read indexed-file next record
               at end set no-more-records to true
           end-read
           perform indexing-check
           .

      *><* populate a sample database
       populate-sample.

      *> Open optional index file for read write
           open i-o indexed-file
           perform indexing-check

           move "12345678 00a01 some 12345678 data" to indexing-record
           perform write-indexing-record
           move "87654321 00a01 some 87654321 data" to indexing-record
           perform write-indexing-record
           move "12348765 00a01 some 12348765 data" to indexing-record
           perform write-indexing-record
           move "87651234 00a01 some 87651234 data" to indexing-record
           perform write-indexing-record

           move "12345679 00b02 some 12345679 data" to indexing-record
           perform write-indexing-record
           move "97654321 00b02 some 97654321 data" to indexing-record
           perform write-indexing-record
           move "12349765 00b02 some 12349765 data" to indexing-record
           perform write-indexing-record
           move "97651234 00b02 some 97651234 data" to indexing-record
           perform write-indexing-record

           move "12345689 00c13 some 12345689 data" to indexing-record
           perform write-indexing-record
           move "98654321 00c13 some 98654321 data" to indexing-record
           perform write-indexing-record
           move "12349865 00c13 some 12349865 data" to indexing-record
           perform write-indexing-record
           move "98651234 00c13 some 98651234 data" to indexing-record
           perform write-indexing-record

      *> close it ... not necessary, but for the example we will
           close indexed-file
           perform indexing-check
           .

      *><* Write paragraph
       write-indexing-record.
           write indexing-record
               invalid key
                   display
                       "rewriting key: "
                       function trim (keyfield of indexing-record)
                       upon syserr
                   end-display
                   rewrite indexing-record
                       invalid key
                           display
                               "really bad key: "
                             function trim (keyfield of indexing-record)
                               upon syserr
                           end-display
                   end-rewrite
           end-write
           .

      *><* file status quick check.  For this sample, keep running
       indexing-check.
           if not indexing-ok then
               display
                   "isam file io problem: " indexing-status
                   upon syserr
               end-display
           end-if
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:3163: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3163"
( $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/run_file.at:3163"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3164: rm -f \"indexed-file.*\""
at_fn_check_prepare_trace "run_file.at:3164"
( $at_check_trace; rm -f "indexed-file.*"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3164"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3165: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3165"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Read all 00b02 keys sequentially
Reading: 00b02
    12345679  00 b 02, some 12345679 data
    97654321  00 b 02, some 97654321 data
    12349765  00 b 02, some 12349765 data
    97651234  00 b 02, some 97651234 data
-----------------------------------------
Read all alternate keys greater than 00a02
Seeking >= 00a02
    12345679  00 b 02, some 12345679 data
    97654321  00 b 02, some 97654321 data
    12349765  00 b 02, some 12349765 data
    97651234  00 b 02, some 97651234 data
    12345689  00 c 13, some 12345689 data
    98654321  00 c 13, some 98654321 data
    12349865  00 c 13, some 12349865 data
    98651234  00 c 13, some 98651234 data
-----------------------------------------
Read all primary keys less than 87654321
Prime < 87654321
    87651234  00 a 01, some 87651234 data
    12349865  00 c 13, some 12349865 data
    12349765  00 b 02, some 12349765 data
    12348765  00 a 01, some 12348765 data
    12345689  00 c 13, some 12345689 data
    12345679  00 b 02, some 12345679 data
    12345678  00 a 01, some 12345678 data
-----------------------------------------
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3165"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3195: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3195"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "rewriting key: 12345678
rewriting key: 87654321
rewriting key: 12348765
rewriting key: 87651234
rewriting key: 12345679
rewriting key: 97654321
rewriting key: 12349765
rewriting key: 97651234
rewriting key: 12345689
rewriting key: 98654321
rewriting key: 12349865
rewriting key: 98651234
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Read all 00b02 keys sequentially
Reading: 00b02
    12345679  00 b 02, some 12345679 data
    97654321  00 b 02, some 97654321 data
    12349765  00 b 02, some 12349765 data
    97651234  00 b 02, some 97651234 data
-----------------------------------------
Read all alternate keys greater than 00a02
Seeking >= 00a02
    12345679  00 b 02, some 12345679 data
    97654321  00 b 02, some 97654321 data
    12349765  00 b 02, some 12349765 data
    97651234  00 b 02, some 97651234 data
    12345689  00 c 13, some 12345689 data
    98654321  00 c 13, some 98654321 data
    12349865  00 c 13, some 12349865 data
    98651234  00 c 13, some 98651234 data
-----------------------------------------
Read all primary keys less than 87654321
Prime < 87654321
    87651234  00 a 01, some 87651234 data
    12349865  00 c 13, some 12349865 data
    12349765  00 b 02, some 12349765 data
    12348765  00 a 01, some 12348765 data
    12345689  00 c 13, some 12345689 data
    12345679  00 b 02, some 12345679 data
    12345678  00 a 01, some 12345678 data
-----------------------------------------
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3195"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_749
#AT_START_750
at_fn_group_banner 750 'run_file.at:3242' \
  "WRITE + REWRITE FILE name" "                      " 4
at_xfail=no
(
  $as_echo "750. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT FLATFILE ASSIGN EXTERNAL RELFIX
           ORGANIZATION RELATIVE
           ACCESS IS SEQUENTIAL RELATIVE KEY IS REC-NUM
           FILE STATUS IS CUST-STAT.

           SELECT FLATFILE2 ASSIGN EXTERNAL RELFIX
           ORGANIZATION RELATIVE
           ACCESS IS RANDOM RELATIVE KEY IS REC-NUM
           FILE STATUS IS CUST-STAT.

       DATA  DIVISION.
       FILE SECTION.
       FD  FLATFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSPFL-RECORD.
           10  CM-CUST-NUM                     PICTURE X(8).
           10  CM-COMPANY                      PICTURE X(25).
           10  CM-DISK                         PICTURE X(8).
           10  CM-NO-TERMINALS                 PICTURE 9(4).

       FD  FLATFILE2
           BLOCK CONTAINS 5 RECORDS.

       01  TSP2-RECORD.
           10  C2-CUST-NUM                     PICTURE X(8).
           10  C2-COMPANY                      PICTURE X(25).
           10  C2-DISK                         PICTURE X(8).
           10  C2-NO-TERMINALS                 PICTURE 9(4).

       WORKING-STORAGE SECTION.

       77  MAX-SUB           VALUE  6          PICTURE 9(4) COMP SYNC.
       77  CUST-STAT                           PICTURE X(2).
       77  REC-NUM           VALUE  1          PICTURE 9(4).

       01  TEST-DATA.

         02  DATA-CUST-NUM-TBL.

           05  FILLER PIC X(8) VALUE "ALP00000".
           05  FILLER PIC X(8) VALUE "BET00000".
           05  FILLER PIC X(8) VALUE "DEL00000".
           05  FILLER PIC X(8) VALUE "EPS00000".
           05  FILLER PIC X(8) VALUE "FOR00000".
           05  FILLER PIC X(8) VALUE "GAM00000".

         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
                                       PIC X(8) OCCURS 6.
         02  DATA-COMPANY-TBL.

           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
                                       PIC X(25) OCCURS 6.
         02  DATA-ADDRESS-2-TBL.

           05  FILLER PIC X(10) VALUE "ATLANTA   ".
           05  FILLER PIC X(10) VALUE "CALGARY   ".
           05  FILLER PIC X(10) VALUE "NEW YORK  ".
           05  FILLER PIC X(10) VALUE "TORONTO   ".
           05  FILLER PIC X(10) VALUE "WASHINGTON".
           05  FILLER PIC X(10) VALUE "WHITEPLAIN".
         02  DATA-ADDRESS   REDEFINES DATA-ADDRESS-2-TBL
                                       PIC X(10) OCCURS 6.

         02  DATA-NO-TERMINALS-TBL.

           05  FILLER PIC 9(3) COMP-3 VALUE 10.
           05  FILLER PIC 9(3) COMP-3 VALUE 13.
           05  FILLER PIC 9(3) COMP-3 VALUE 75.
           05  FILLER PIC 9(3) COMP-3 VALUE 10.
           05  FILLER PIC 9(3) COMP-3 VALUE 90.
           05  FILLER PIC 9(3) COMP-3 VALUE 254.

         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
                                       PIC 9(3) COMP-3 OCCURS 6.
       01  WORK-AREA.
           05  SUB                             PICTURE 9(4) COMP SYNC.
               88  ODD-RECORD                  VALUE 1 3 5.


       PROCEDURE DIVISION.

           PERFORM LOADFILE.

           OPEN I-O FLATFILE2.
           MOVE 2 TO REC-NUM
           READ FLATFILE2
           DISPLAY "Read    " C2-CUST-NUM " Sts:" CUST-STAT
                   " Trms:" C2-NO-TERMINALS.
           ADD 1 TO C2-NO-TERMINALS
           REWRITE FILE FLATFILE2 FROM TSP2-RECORD
           READ FLATFILE2
           DISPLAY "REWROTE " C2-CUST-NUM " Sts:" CUST-STAT
                   " Trms:" C2-NO-TERMINALS.
           CLOSE FLATFILE2.
           STOP RUN.

       LOADFILE.
           DISPLAY "Loading sample program data file."
                            UPON CONSOLE.

           OPEN OUTPUT FLATFILE.

           PERFORM LOAD-RECORD
                        VARYING SUB FROM 1 BY 1
                          UNTIL SUB > MAX-SUB.

           DISPLAY "Sample program data file load complete."
                            UPON CONSOLE.
           CLOSE FLATFILE.

       LOAD-RECORD.

           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.
           IF  ODD-RECORD
               MOVE "8417"                   TO CM-DISK
           ELSE
               MOVE "8470"                   TO CM-DISK.
           WRITE FILE FLATFILE FROM TSPFL-RECORD.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:3383: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3383"
( $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/run_file.at:3383"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:3385: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3385"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Loading sample program data file.
Sample program data file load complete.
Read    BET00000 Sts:00 Trms:0013
REWROTE BET00000 Sts:00 Trms:0014
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3385"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_750
#AT_START_751
at_fn_group_banner 751 'run_file.at:3395' \
  "START RELATIVE (1)" "                             " 4
at_xfail=no
(
  $as_echo "751. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT OPTIONAL TEST-FILE
              ASSIGN      "TESTFILE"
              ACCESS       DYNAMIC
              ORGANIZATION RELATIVE
              STATUS       TESTSTAT
              RELATIVE KEY TESTKEY
       .
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE.
       01  TEST-REC     PIC X(4).
       WORKING-STORAGE  SECTION.
       01  TESTKEY      USAGE BINARY-LONG UNSIGNED.
       01  TESTSTAT     PIC XX.
           88  V-OK     VALUE "00" "05".
       PROCEDURE        DIVISION.
           DELETE FILE TEST-FILE.
           OPEN  I-O   TEST-FILE.
           IF NOT V-OK
              DISPLAY "OPEN " TESTSTAT
              END-DISPLAY
              GOBACK
           END-IF.
           MOVE 99 TO TESTKEY.
           START TEST-FILE KEY < TESTKEY
           END-START.
           IF TESTSTAT NOT = "23"
              DISPLAY "START " TESTSTAT
              END-DISPLAY
           END-IF.
           CLOSE TEST-FILE.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:3438: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3438"
( $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/run_file.at:3438"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3439: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3439"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:3439"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_751
#AT_START_752
at_fn_group_banner 752 'run_file.at:3444' \
  "START RELATIVE (2)" "                             " 4
at_xfail=no
(
  $as_echo "752. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT OPTIONAL TEST-FILE
              ASSIGN      "TESTFILE"
              ACCESS       DYNAMIC
              ORGANIZATION RELATIVE
              STATUS       TESTSTAT
              RELATIVE KEY TESTKEY
       .
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE.
       01  TEST-REC     PIC X(4).
       WORKING-STORAGE  SECTION.
       01  TESTKEY      USAGE BINARY-LONG UNSIGNED.
       01  TESTSTAT     PIC XX.
           88  V-OK     VALUE "00" "05".
           88  V-ZERO   VALUE "00".
       PROCEDURE        DIVISION.
           OPEN  I-O   TEST-FILE.
           IF NOT V-OK
              DISPLAY "OPEN " TESTSTAT
              END-DISPLAY
              GOBACK
           END-IF.
           MOVE 3 TO TESTKEY.
           MOVE "0003" TO TEST-REC.
           WRITE TEST-REC INVALID KEY
                 DISPLAY "WRITE " TESTSTAT
                 END-DISPLAY
           END-WRITE.
           MOVE 2 TO TESTKEY.
           MOVE "0002" TO TEST-REC.
           WRITE TEST-REC INVALID KEY
                 DISPLAY "WRITE " TESTSTAT
                 END-DISPLAY
           END-WRITE.
           MOVE 99 TO TESTKEY.
           START TEST-FILE KEY < TESTKEY
           END-START.
           IF NOT V-ZERO
              DISPLAY "START " TESTSTAT
              END-DISPLAY
           END-IF.
           IF TESTKEY NOT = 99
              DISPLAY "TESTKEY " TESTKEY
              END-DISPLAY
           END-IF.
           MOVE  SPACE TO TEST-REC.
           READ  TEST-FILE NEXT
           END-READ.
           IF NOT V-ZERO
              DISPLAY "READ " TESTSTAT
              END-DISPLAY
           END-IF.
           IF TEST-REC NOT = "0003"
              DISPLAY "READ RECORD " TEST-REC
              END-DISPLAY
           END-IF.
           CLOSE TEST-FILE.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:3514: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3514"
( $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/run_file.at:3514"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3515: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3515"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:3515"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_752
#AT_START_753
at_fn_group_banner 753 'run_file.at:3520' \
  "START RELATIVE (3)" "                             " 4
at_xfail=no
(
  $as_echo "753. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN TO DISK
                    ORGANIZATION RELATIVE
                    ACCESS DYNAMIC RELATIVE KEY file1-key.
       DATA DIVISION.
       FILE SECTION.
       FD file1.
       1  file1-rec pic 999.
       WORKING-STORAGE SECTION.
       77  file1-key pic 9(6).
       PROCEDURE DIVISION.
          OPEN OUTPUT file1.
          CLOSE file1.
          OPEN I-O file1.
          MOVE 10 TO file1-key file1-rec.
          WRITE file1-rec.
          MOVE 11 TO file1-key file1-rec.
          WRITE file1-rec.
          MOVE 12 TO file1-key file1-rec.
          WRITE file1-rec.
          MOVE 13 TO file1-key file1-rec.
          WRITE file1-rec.
      *
          MOVE 0 TO file1-key.
          START file1 KEY > file1-key.
          READ file1 NEXT.
          IF (file1-rec <> 10)
             DISPLAY "FAILED: START key > 0".
      *
          MOVE 99 TO file1-key.
          START file1 KEY < file1-key.
          READ file1 NEXT.
          IF (file1-rec <> 13)
             DISPLAY "FAILED: START key < 99".
      *
          MOVE 0 TO file1-key.
          START file1 FIRST.
          READ file1 NEXT.
          IF (file1-rec <> 10)
             DISPLAY "FAILED: START key FIRST".
      *
          MOVE 0 TO file1-key.
          START file1 LAST.
          READ file1 NEXT.
          IF (file1-rec <> 13)
             DISPLAY "FAILED: START key LAST".
      *
          MOVE 0 TO file1-key.
          START file1 KEY >= file1-key.
          READ file1 NEXT.
          IF (file1-rec <> 10)
             DISPLAY "FAILED: START key >= 0".
      *
          MOVE 99 TO file1-key.
          START file1 KEY <= file1-key.
          READ file1 NEXT.
          IF (file1-rec <> 13)
             DISPLAY "FAILED: START key <= 99".
      *
          CLOSE file1.
          STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:3591: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3591"
( $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/run_file.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3592: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3592"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:3592"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_753
#AT_START_754
at_fn_group_banner 754 'run_file.at:3596' \
  "READ on OPTIONAL missing RELATIVE / SEQUENTIAL" " " 4
at_xfail=no
(
  $as_echo "754. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT OPTIONAL INFILE  ASSIGN TO
                "missing.txt"
                ORGANIZATION IS RELATIVE
                ACCESS IS SEQUENTIAL
                FILE STATUS IS WSFS.
           SELECT OPTIONAL INFILES ASSIGN TO
                "missings.txt"
                ORGANIZATION IS SEQUENTIAL
                ACCESS IS SEQUENTIAL
                FILE STATUS IS WSFS.
       DATA DIVISION.
       FILE SECTION.
       FD  INFILE.
       01  INREC             PIC X(80).
       FD  INFILES.
       01  INRECS            PIC X(80).
       WORKING-STORAGE SECTION.
       01  WSFS           PIC X(2).
           88  RECORDFOUND VALUE "00".
       01  WSINREC         PIC X(80).
       PROCEDURE DIVISION.
       MAIN-PROCEDURE.
      *    Open missing file
           OPEN INPUT INFILE
           DISPLAY "R: OPEN INPUT on missing optional file = " WSFS " "
                    NO ADVANCING
           IF WSFS = '05'
              DISPLAY "OK"
           ELSE
              DISPLAY "Bad"
           END-IF.
           OPEN INPUT INFILES
           DISPLAY "S: OPEN INPUT on missing optional file = " WSFS " "
                    NO ADVANCING
           IF WSFS = '05'
              DISPLAY "OK"
           ELSE
              DISPLAY "Bad"
           END-IF.
      *    First read, raise a FS 10 (AT END) which is expected
           READ INFILE INTO WSINREC
           DISPLAY "R: 1st READ on missing optional file = " WSFS " "
                    NO ADVANCING
           IF WSFS = '10'
              DISPLAY "OK"
           ELSE
              DISPLAY "Bad"
           END-IF.
           READ INFILES INTO WSINREC
           DISPLAY "S: 1st READ on missing optional file = " WSFS " "
                    NO ADVANCING
           IF WSFS = '10'
              DISPLAY "OK"
           ELSE
              DISPLAY "Bad"
           END-IF.

      *    Second read, should raise a FS 46 (READ AFTER AT END).
           READ INFILE INTO WSINREC
           DISPLAY "R: 2nd READ on missing optional file = " WSFS " "
                    NO ADVANCING
           IF WSFS = '46'
              DISPLAY "OK"
           ELSE
              DISPLAY "Bad"
           END-IF.
           READ INFILES INTO WSINREC
           DISPLAY "S: 2nd READ on missing optional file = " WSFS " "
                    NO ADVANCING
           IF WSFS = '46'
              DISPLAY "OK"
           ELSE
              DISPLAY "Bad"
           END-IF.
           READ INFILE
           DISPLAY "R: 3rd READ on missing optional file = " WSFS " "
                    NO ADVANCING
           IF WSFS = '46'
              DISPLAY "OK"
           ELSE
              DISPLAY "Bad"
           END-IF.
           READ INFILES
           DISPLAY "S: 3rd READ on missing optional file = " WSFS " "
                    NO ADVANCING
           IF WSFS = '46'
              DISPLAY "OK"
           ELSE
              DISPLAY "Bad"
           END-IF.

           CLOSE INFILE
           CLOSE INFILES
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:3702: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3702"
( $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/run_file.at:3702"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:3704: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3704"
( $at_check_trace; $COBCRUN_DIRECT ./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 "R: OPEN INPUT on missing optional file = 05 OK
S: OPEN INPUT on missing optional file = 05 OK
R: 1st READ on missing optional file = 10 OK
S: 1st READ on missing optional file = 10 OK
R: 2nd READ on missing optional file = 46 OK
S: 2nd READ on missing optional file = 46 OK
R: 3rd READ on missing optional file = 46 OK
S: 3rd READ on missing optional file = 46 OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:3704"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_754
#AT_START_755
at_fn_group_banner 755 'run_file.at:3718' \
  "READ on OPTIONAL missing INDEXED file" "          " 4
at_xfail=no
(
  $as_echo "755. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:3721" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:3721"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT OPTIONAL file1 ASSIGN "fileX"
               ORGANIZATION IS INDEXED
               RECORD KEY IS file1-key
               STATUS f-status.

       DATA DIVISION.
       FILE SECTION.
       FD  file1.
       01  file1-key PIC X.

       WORKING-STORAGE SECTION.
       01  f-status PIC XX.

       PROCEDURE DIVISION.
           DELETE FILE file1.
           OPEN INPUT file1.
           IF (f-status <> "05")
               DISPLAY "FAILED OPEN: fs=" f-status
           END-IF
           READ file1
               AT END
                   IF (f-status <> "10")
                       DISPLAY "FAILED READ AT END: fs=" f-status
                   END-IF

               NOT AT END
                   DISPLAY "FAILED READ NO AT END: status " f-status
           END-READ
           CLOSE file1
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:3762: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3762"
( $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/run_file.at:3762"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3763: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3763"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:3763"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_755
#AT_START_756
at_fn_group_banner 756 'run_file.at:3768' \
  "EXTERNAL RELATIVE file" "                         " 4
at_xfail=no
(
  $as_echo "756. $at_setup_line: testing $at_desc ..."
  $at_traceon

# FIXME: Check the function of the EXTERNAL file using a second program, too


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT my-file
               ASSIGN TO "somefile"
               ORGANIZATION IS RELATIVE
               RELATIVE KEY IS my-key.

       DATA DIVISION.
       FILE SECTION.
       FD my-file EXTERNAL.
       01 my-record.
           03 my-record-data PIC X(80).

       WORKING-STORAGE SECTION.
       01  my-key PIC 9.

       PROCEDURE DIVISION.
           CONTINUE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:3798: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3798"
( $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/run_file.at:3798"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3799: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3799"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:3799"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_756
#AT_START_757
at_fn_group_banner 757 'run_file.at:3804' \
  "DECLARATIVES procedure referencing" "             " 4
at_xfail=no
(
  $as_echo "757. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN "./TEST-FILE".
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(10).
       WORKING-STORAGE  SECTION.
       01 Z             USAGE BINARY-LONG VALUE 0.
       PROCEDURE        DIVISION.
       DECLARATIVES.
       P01 SECTION.
           USE AFTER ERROR PROCEDURE ON TEST-FILE.
       P0101.
           ADD 1 TO Z.
       END DECLARATIVES.
       MP01 SECTION.
       MP0101.
           OPEN INPUT TEST-FILE.
           PERFORM P0101.
           IF Z NOT = 2
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:3838: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3838"
( $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/run_file.at:3838"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3839: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3839"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:3839"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_757
#AT_START_758
at_fn_group_banner 758 'run_file.at:3844' \
  "DECLARATIVES procedure referencing (multiple)" "  " 4
at_xfail=no
(
  $as_echo "758. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN "./TEST-FILE".
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(10).
       WORKING-STORAGE  SECTION.
       01 Z             USAGE BINARY-LONG VALUE 0.
       PROCEDURE        DIVISION.
       DECLARATIVES.
       P01 SECTION.
           USE AFTER ERROR PROCEDURE ON TEST-FILE.
       P0101.
           ADD 1 TO Z.
       P02 SECTION.
           USE AFTER ERROR PROCEDURE ON OUTPUT.
       P0201.
           ADD 1 TO Z.
       END DECLARATIVES.
       MP01 SECTION.
       MP0101.
           OPEN  INPUT  TEST-FILE.
           PERFORM P01 THRU P02.
           IF Z NOT = 3
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:3882: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3882"
( $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/run_file.at:3882"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3883: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3883"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:3883"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_758
#AT_START_759
at_fn_group_banner 759 'run_file.at:3888' \
  "System routines for directories (1)" "            " 4
at_xfail=no
(
  $as_echo "759. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 DIR PIC X(4) VALUE 'ABCD'.

        PROCEDURE DIVISION.
        CALL 'CBL_CREATE_DIR' USING DIR END-CALL
        IF RETURN-CODE NOT = 0
            DISPLAY 'error creating dir ...' END-DISPLAY
        END-IF

        CALL 'CBL_CHANGE_DIR' USING DIR END-CALL
        IF RETURN-CODE NOT = 0
            DISPLAY 'error changing dir ...' END-DISPLAY
        END-IF

        CALL 'CBL_CHANGE_DIR' USING '..' END-CALL
        IF RETURN-CODE NOT = 0
            DISPLAY 'error changing dir up ...' END-DISPLAY
        END-IF

        CALL 'CBL_DELETE_DIR' USING DIR END-CALL
        IF RETURN-CODE NOT = 0
            DISPLAY 'error deleting dir' END-DISPLAY
        END-IF

        STOP RUN.
_ATEOF



{ set +x
$as_echo "$at_srcdir/run_file.at:3923: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:3923"
( $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/run_file.at:3923"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3924: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:3924"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:3924"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:3925: test -e abcd"
at_fn_check_prepare_trace "run_file.at:3925"
( $at_check_trace; test -e abcd
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=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/run_file.at:3925"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_759
#AT_START_760
at_fn_group_banner 760 'run_file.at:3930' \
  "System routines for directories (2)" "            " 4
at_xfail=no
(
  $as_echo "760. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION      DIVISION.
       PROGRAM-ID.         prog.

       DATA                DIVISION.
       WORKING-STORAGE     SECTION.
       01  fh              PIC X(4) COMP-5.
       01  rb              PIC X(8) COMP-X.
       01  cb-bfr          PIC X(4) COMP-X VALUE 16.
       01  w-dirname-1     PIC X(4) VALUE "tmp1".
       01  w-dirname-2     PIC X(9) VALUE "tmp1/tmp2".
       01  w-dirname-3     PIC X(14) VALUE "tmp1/tmp2/tmp3".
       01  w-filename      PIC X(20) VALUE "tmp1/tmp2/tmp3/file1".
       01  w-finfo         PIC X(16).

       PROCEDURE DIVISION.
           CALL "CBL_CREATE_DIR" USING w-dirname-1.
           IF RETURN-CODE <> 0
              DISPLAY "FAILED 1: CBL_CREATE_DIR (res=" RETURN-CODE ")"
           END-IF

           CALL "CBL_CREATE_DIR" USING w-dirname-2.
           IF RETURN-CODE <> 0
              DISPLAY "FAILED 2: CBL_CREATE_DIR (res=" RETURN-CODE ")"
           END-IF

      *    Should fail because directory does NOT exists yet.
           CALL "CBL_CREATE_FILE"
              USING w-filename, 1, 0, 0, fh.
           IF RETURN-CODE <> 35
              DISPLAY "FAILED 3: CBL_CREATE_FILE expected fail (res="
                      RETURN-CODE ")"
              IF RETURN-CODE = ZERO
                 CALL "CBL_CLOSE_FILE" USING fh
              END-IF
           END-IF

           CALL "CBL_CREATE_DIR" USING w-dirname-3.
           IF RETURN-CODE <> 0
              DISPLAY "FAILED 4: CBL_CREATE_DIR (res=" RETURN-CODE ")"
           END-IF

           CALL "CBL_CREATE_FILE"
              USING w-filename, 1, 0, 0, fh.
           IF RETURN-CODE <> 0
              DISPLAY "FAILED 5: CBL_CREATE_FILE (res="
                      RETURN-CODE ")"
           END-IF

           CALL "CBL_CLOSE_FILE" USING fh.
           IF RETURN-CODE <> 0
              DISPLAY "FAILED 6: CBL_CLOSE_FILE (res="
                      RETURN-CODE ")"
           END-IF

           CALL "CBL_CHECK_FILE_EXIST" USING w-filename, w-finfo.
           IF RETURN-CODE <> 0
              DISPLAY "FAILED 7: CBL_CHECK_FILE_EXIST (res="
                      RETURN-CODE ")"
           END-IF


      *    Should fail because directory is NOT empty.
           CALL "CBL_DELETE_DIR" USING w-dirname-1.
           IF RETURN-CODE = 0
              DISPLAY "FAILED 8: CBL_DELETE_DIR EXPECTED TO FAIL"
           END-IF
      ***********************
      * TO-DO: IMPLEMENT CBL_PURGE_DIR? NOT IN MF OR ACU.
      ***********************
      *    Remove all files (including sub-directories) in tmp1
      *    CALL "CBL_PURGE_DIR" USING w-dirname-1.
      *    IF RETURN-CODE <> 0
      *        DISPLAY "FAILED 9: CBL_PURGE_DIR (res=" RETURN-CODE ")"
      *  END-IF
      *
      *     Should succeed because directory is NOW empty.
      *     CALL "CBL_DELETE_DIR" USING w-dirname-1.
      *     IF RETURN-CODE <> 0
      *         DISPLAY "FAILED 10: CBL_DELETE_DIR (res=" RETURN-CODE ")"
      *     END-IF

           STOP RUN NORMAL
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:4021: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4021"
( $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/run_file.at:4021"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4022: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4022"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:4022"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_760
#AT_START_761
at_fn_group_banner 761 'run_file.at:4027' \
  "System routines for files" "                      " 4
at_xfail=no
(
  $as_echo "761. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >file1 <<'_ATEOF'

dummy
_ATEOF

cat >file2 <<'_ATEOF'

test
_ATEOF

cat >file3 <<'_ATEOF'

data
_ATEOF


cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID.     prog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 FNAME        PIC X(256) VALUE 'testtext.txt'.
        01 ACCESS-MODE  PIC X      USAGE COMP-X VALUE 2.
        01 FHANDLE      PIC X(4)   USAGE COMP-X.

        01 OFFSET       PIC X(8)   USAGE COMP-X.
        01 NBYTES       PIC X(4)   USAGE COMP-X.
        01 WRITE-BUFFER PIC X(20).

        PROCEDURE DIVISION.
        CALL 'CBL_CREATE_FILE' USING FNAME 55 11 22 FHANDLE
        END-CALL
        IF RETURN-CODE NOT = -1
           DISPLAY 'Wrong return codes ...' END-DISPLAY
        END-IF
        MOVE 0 TO RETURN-CODE

        CALL 'CBL_CREATE_FILE' USING
        FNAME ACCESS-MODE 0 0 FHANDLE
        END-CALL
        IF RETURN-CODE NOT = 0
           DISPLAY 'error creating file ...' END-DISPLAY
           MOVE 0 TO RETURN-CODE
        END-IF

        MOVE 'TestText.ABCD' TO WRITE-BUFFER.
        MOVE 0 TO OFFSET.
        MOVE 9 TO NBYTES.

        CALL 'CBL_WRITE_FILE' USING
        FHANDLE OFFSET NBYTES '0' WRITE-BUFFER
        END-CALL
        IF RETURN-CODE NOT = 0
           DISPLAY 'error writing file ...' END-DISPLAY
           MOVE 0 TO RETURN-CODE
        END-IF

        CALL 'CBL_FLUSH_FILE' USING FHANDLE END-CALL
        IF RETURN-CODE NOT = 0
           DISPLAY 'error flushing file ...' END-DISPLAY
           MOVE 0 TO RETURN-CODE
        END-IF

        CALL 'CBL_CLOSE_FILE' USING FHANDLE END-CALL
        IF RETURN-CODE NOT = 0
           DISPLAY 'error closing file ...' END-DISPLAY
           MOVE 0 TO RETURN-CODE
        END-IF

        STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID.     prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 FNAME        PIC X(256) VALUE 'testtext.txt'.
        01 RET          PIC -9.
        01 FHANDLE      PIC X(4)   USAGE COMP-X.

        01 OFFSET       PIC X(8)   USAGE COMP-X.
        01 NBYTES       PIC X(4)   USAGE COMP-X.
        01 READ-BUFFER  PIC X(10).

        PROCEDURE DIVISION.
        CALL 'CBL_OPEN_FILE' USING FNAME 1 0 0 FHANDLE
        END-CALL
        IF RETURN-CODE NOT = 0
           DISPLAY 'error opening file ...' END-DISPLAY
        END-IF

        MOVE SPACES TO READ-BUFFER.
        MOVE 2 TO OFFSET.
        MOVE 9 TO NBYTES.

        CALL 'CBL_READ_FILE' USING
        FHANDLE OFFSET NBYTES 0 READ-BUFFER
        END-CALL
        IF RETURN-CODE NOT = 0
           DISPLAY 'error reading file ...'
                   return-code
           END-DISPLAY
           MOVE 0 TO RETURN-CODE
        END-IF
        IF READ-BUFFER NOT = 'stText.' *> text from first test
           DISPLAY 'Wrong readbuffer ...' END-DISPLAY
        END-IF

        CALL 'CBL_CLOSE_FILE' USING FHANDLE END-CALL
        IF RETURN-CODE NOT = 0
           DISPLAY 'error closing file ...'
                   return-code
           END-DISPLAY
           MOVE 0 TO RETURN-CODE
        END-IF

        CALL 'CBL_RENAME_FILE' USING FNAME 'foo.txt' END-CALL
        IF RETURN-CODE NOT = 0
           DISPLAY 'error renaming file ...'
                   return-code
           END-DISPLAY
           MOVE 0 TO RETURN-CODE
        END-IF

        CALL 'CBL_DELETE_FILE' USING 'file1' END-CALL
        IF RETURN-CODE NOT = 0
           DISPLAY 'error deleting file1 ...'
                   return-code
           END-DISPLAY
           MOVE 0 TO RETURN-CODE
        END-IF
        CALL 'CBL_DELETE_FILE' USING 'file1' END-CALL
        IF RETURN-CODE = 0
           DISPLAY 'no error on deleting file1 for the second time...'
                   return-code
           END-DISPLAY
        END-IF
        MOVE 0 TO RETURN-CODE

        CALL 'C$DELETE' USING 'file2' 'S' END-CALL
        IF RETURN-CODE NOT = 0
           DISPLAY 'error deleting file2 ...'
                   return-code
           END-DISPLAY
           MOVE 0 TO RETURN-CODE
        END-IF
        CALL 'CBL_DELETE_FILE' USING 'file2' END-CALL
        IF RETURN-CODE = 0   *> note: should only return 0 or 1 when in ACUCOBOL mode
           DISPLAY 'no error on deleting file2 for the second time...'
                   return-code
           END-DISPLAY
        END-IF
        MOVE 0 TO RETURN-CODE

        STOP RUN.
_ATEOF


cat >prog3.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID.     prog3.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 FNAME        PIC X(256).
        01 RET          PIC -9.
        01 FHANDLE      PIC X(4)   USAGE COMP-X.

        01 OFFSET       PIC X(8)   USAGE COMP-X.
        01 NBYTES       PIC X(4)   USAGE COMP-X.
        01 READ-BUFFER  PIC X(10).

        PROCEDURE DIVISION CHAINING FNAME.
        DISPLAY 'RUN WITH ' FUNCTION TRIM (FNAME TRAILING).
        CALL 'CBL_OPEN_FILE' USING FNAME 1 0 0 FHANDLE.
        IF RETURN-CODE NOT = 0
           DISPLAY 'error opening file ...'
           MOVE 0 TO RETURN-CODE
           STOP RUN.

        CALL 'CBL_CLOSE_FILE' USING FHANDLE.
        IF RETURN-CODE NOT = 0
           DISPLAY 'error closing file ...'
                   return-code
           MOVE 0 TO RETURN-CODE.

        STOP RUN.
_ATEOF



{ set +x
$as_echo "$at_srcdir/run_file.at:4215: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4215"
( $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/run_file.at:4215"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4216: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4216"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:15: warning: call to CBL_CREATE_FILE with wrong file_lock: 11
libcob: prog.cob:15: warning: call to CBL_CREATE_FILE with wrong file_dev: 22
libcob: prog.cob:15: warning: call to CBL_OPEN_FILE with wrong access mode: 55
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4216"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:4222: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:4222"
( $at_check_trace; $COMPILE prog2.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/run_file.at:4222"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4223: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_file.at:4223"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4223"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:4225: mkdir -p sub"
at_fn_check_prepare_trace "run_file.at:4225"
( $at_check_trace; mkdir -p sub
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4225"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4226: \$COMPILE prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE prog3.cob" "run_file.at:4226"
( $at_check_trace; $COMPILE prog3.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/run_file.at:4226"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4227: \$COBCRUN_DIRECT ./prog3 notthere"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 notthere" "run_file.at:4227"
( $at_check_trace; $COBCRUN_DIRECT ./prog3 notthere
) >>"$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 "RUN WITH notthere
error opening file ...
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4227"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4231: \$COBCRUN_DIRECT ./prog3 prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 prog2" "run_file.at:4231"
( $at_check_trace; $COBCRUN_DIRECT ./prog3 prog2
) >>"$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 "RUN WITH prog2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4231"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4234: \$COBCRUN_DIRECT ./prog3 ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 ./prog2" "run_file.at:4234"
( $at_check_trace; $COBCRUN_DIRECT ./prog3 ./prog2
) >>"$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 "RUN WITH ./prog2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4234"
$at_failed && at_fn_log_failure
$at_traceon; }

# the first part is resolved by DD_var and dd_var
{ set +x
$as_echo "$at_srcdir/run_file.at:4238: DD_dot=\".\" dd_dot=\"A\" dot=\"B\"  \$COBCRUN_DIRECT ./prog3 'dot/prog'"
at_fn_check_prepare_dynamic "DD_dot=\".\" dd_dot=\"A\" dot=\"B\"  $COBCRUN_DIRECT ./prog3 'dot/prog'" "run_file.at:4238"
( $at_check_trace; DD_dot="." dd_dot="A" dot="B"  $COBCRUN_DIRECT ./prog3 'dot/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 "RUN WITH dot/prog
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4238"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4241: DD_dot=\"\" dd_dot=\".\" dot=\"A\"  \$COBCRUN_DIRECT ./prog3 'dot/prog'"
at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\".\" dot=\"A\"  $COBCRUN_DIRECT ./prog3 'dot/prog'" "run_file.at:4241"
( $at_check_trace; DD_dot="" dd_dot="." dot="A"  $COBCRUN_DIRECT ./prog3 'dot/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 "RUN WITH dot/prog
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4241"
$at_failed && at_fn_log_failure
$at_traceon; }

# MF would say (ignore for now as this conflicts with ACUCOBOL) don't resolve by $
# as it does not start with $:
#AT_CHECK([DD_dot="" dd_dot="" dot="." $COBCRUN_DIRECT ./prog3 'dot/prog'], [0],
#[RUN WITH dot/prog
#error opening file ...
#], [])
{ set +x
$as_echo "$at_srcdir/run_file.at:4250: DD_dot=\"\" dd_dot=\"\" dot=\".\" \$COBCRUN_DIRECT ./prog3 'dot/prog'"
at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\".\" $COBCRUN_DIRECT ./prog3 'dot/prog'" "run_file.at:4250"
( $at_check_trace; DD_dot="" dd_dot="" dot="." $COBCRUN_DIRECT ./prog3 'dot/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 "RUN WITH dot/prog
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4250"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4253: DD_dot=\"\" dd_dot=\"\" dot=\"\" \$COBCRUN_DIRECT ./prog3 'dot/prog'"
at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\"\" $COBCRUN_DIRECT ./prog3 'dot/prog'" "run_file.at:4253"
( $at_check_trace; DD_dot="" dd_dot="" dot="" $COBCRUN_DIRECT ./prog3 'dot/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 "RUN WITH dot/prog
error opening file ...
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4253"
$at_failed && at_fn_log_failure
$at_traceon; }

# the first part with $  is resolved by DD_var and dd_var and var
{ set +x
$as_echo "$at_srcdir/run_file.at:4258: DD_dot=\".\" dd_dot=\"\" dot=\"\"  \$COBCRUN_DIRECT ./prog3 '\$dot/prog'"
at_fn_check_prepare_dynamic "DD_dot=\".\" dd_dot=\"\" dot=\"\"  $COBCRUN_DIRECT ./prog3 '$dot/prog'" "run_file.at:4258"
( $at_check_trace; DD_dot="." dd_dot="" dot=""  $COBCRUN_DIRECT ./prog3 '$dot/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 "RUN WITH \$dot/prog
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4258"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4261: DD_dot=\"\" dd_dot=\".\" dot=\"\"  \$COBCRUN_DIRECT ./prog3 '\$dot/prog'"
at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\".\" dot=\"\"  $COBCRUN_DIRECT ./prog3 '$dot/prog'" "run_file.at:4261"
( $at_check_trace; DD_dot="" dd_dot="." dot=""  $COBCRUN_DIRECT ./prog3 '$dot/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 "RUN WITH \$dot/prog
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4261"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4264: DD_dot=\"\" dd_dot=\"\" dot=\".\"  \$COBCRUN_DIRECT ./prog3 '\$dot/prog'"
at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\".\"  $COBCRUN_DIRECT ./prog3 '$dot/prog'" "run_file.at:4264"
( $at_check_trace; DD_dot="" dd_dot="" dot="."  $COBCRUN_DIRECT ./prog3 '$dot/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 "RUN WITH \$dot/prog
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4264"
$at_failed && at_fn_log_failure
$at_traceon; }

# if a _leading_ $ does not exist it is removed, together with the following slash
# should ignore the variable and the first slash
{ set +x
$as_echo "$at_srcdir/run_file.at:4269: DD_dot=\"\" dd_dot=\"\" dot=\"\"  \$COBCRUN_DIRECT ./prog3 '\$dot/prog'"
at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\"\"  $COBCRUN_DIRECT ./prog3 '$dot/prog'" "run_file.at:4269"
( $at_check_trace; DD_dot="" dd_dot="" dot=""  $COBCRUN_DIRECT ./prog3 '$dot/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 "RUN WITH \$dot/prog
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4269"
$at_failed && at_fn_log_failure
$at_traceon; }

# would _possibly_ fail with MF (docs are wrong here in any case...)
# but this is by GnuCOBOL design here:
{ set +x
$as_echo "$at_srcdir/run_file.at:4274: DD_dot=\"\" dd_dot=\"\" dot=\"\"  \$COBCRUN_DIRECT ./prog3 '\$dot/\$dotter/prog'"
at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\"\"  $COBCRUN_DIRECT ./prog3 '$dot/$dotter/prog'" "run_file.at:4274"
( $at_check_trace; DD_dot="" dd_dot="" dot=""  $COBCRUN_DIRECT ./prog3 '$dot/$dotter/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 "RUN WITH \$dot/\$dotter/prog
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4274"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4277: DD_dot=\"\" dd_dot=\"\" dot=\"dot\"  \$COBCRUN_DIRECT ./prog3 '\$dot/prog'"
at_fn_check_prepare_dynamic "DD_dot=\"\" dd_dot=\"\" dot=\"dot\"  $COBCRUN_DIRECT ./prog3 '$dot/prog'" "run_file.at:4277"
( $at_check_trace; DD_dot="" dd_dot="" dot="dot"  $COBCRUN_DIRECT ./prog3 '$dot/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 "RUN WITH \$dot/prog
error opening file ...
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4277"
$at_failed && at_fn_log_failure
$at_traceon; }

# should try './prog'
{ set +x
$as_echo "$at_srcdir/run_file.at:4282: DD_prog=\"A\" dd_prog=\"B\" prog=\"C\"  \$COBCRUN_DIRECT ./prog3 './prog'"
at_fn_check_prepare_dynamic "DD_prog=\"A\" dd_prog=\"B\" prog=\"C\"  $COBCRUN_DIRECT ./prog3 './prog'" "run_file.at:4282"
( $at_check_trace; DD_prog="A" dd_prog="B" prog="C"  $COBCRUN_DIRECT ./prog3 './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 "RUN WITH ./prog
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4282"
$at_failed && at_fn_log_failure
$at_traceon; }

# should try './$prog'
{ set +x
$as_echo "$at_srcdir/run_file.at:4286: DD_prog=\"\" dd_prog=\"\" prog=\"\"  \$COBCRUN_DIRECT ./prog3 './\$prog'"
at_fn_check_prepare_dynamic "DD_prog=\"\" dd_prog=\"\" prog=\"\"  $COBCRUN_DIRECT ./prog3 './$prog'" "run_file.at:4286"
( $at_check_trace; DD_prog="" dd_prog="" prog=""  $COBCRUN_DIRECT ./prog3 './$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 "RUN WITH ./\$prog
error opening file ...
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4286"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4290: \$COBCRUN_DIRECT ./prog3 ../prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 ../prog2" "run_file.at:4290"
( $at_check_trace; $COBCRUN_DIRECT ./prog3 ../prog2
) >>"$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 "RUN WITH ../prog2
error opening file ...
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4290"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4294: \$COBCRUN_DIRECT ./prog3 sub/../prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 sub/../prog2" "run_file.at:4294"
( $at_check_trace; $COBCRUN_DIRECT ./prog3 sub/../prog2
) >>"$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 "RUN WITH sub/../prog2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4294"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_761
#AT_START_762
at_fn_group_banner 762 'run_file.at:4301' \
  "System routine CBL_COPY_FILE" "                   " 4
at_xfail=no
(
  $as_echo "762. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        PROCEDURE DIVISION.
        DISPLAY "test" END-DISPLAY
        STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog2.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 FILE1 PIC X(8) VALUE 'prog.cob'.
        01 FILE2 PIC X(9) VALUE 'prog3.cob'.

        PROCEDURE DIVISION.
        CALL 'CBL_COPY_FILE' USING
        FILE1 FILE2
        END-CALL
        STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:4329: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:4329"
( $at_check_trace; $COMPILE prog2.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/run_file.at:4329"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4330: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_file.at:4330"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4330"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4331: diff prog.cob prog3.cob"
at_fn_check_prepare_trace "run_file.at:4331"
( $at_check_trace; diff prog.cob prog3.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/run_file.at:4331"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_762
#AT_START_763
at_fn_group_banner 763 'run_file.at:4336' \
  "Default file external name" "                     " 4
at_xfail=no
(
  $as_echo "763. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >fexists_signed.c <<'_ATEOF'


#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <libcob.h>

/*
 * Check file is present and correct by comparing
 * its content to a given signature.
 */
COB_EXT_EXPORT int
fexists_signed (char *fid, char *signature, int signature_size)
{
	char *bfr;
	FILE *f;
	int res = -1;

	f = fopen (fid, "r");
	if (f != NULL) {
		 bfr = (char *) malloc (signature_size);
		 if (1 == fread (bfr, signature_size, 1, f)) {
				if (!memcmp (signature, bfr, signature_size)) {
					 res = 0;
				}
		 }
		 free (bfr);
	}
	return res;
}
_ATEOF

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN DISK.
       DATA DIVISION.
       FILE SECTION.
       FD file1.
       1  file1-rec.
          2  file1-date pic x(8).
          2  file1-time pic x(8).
       WORKING-STORAGE SECTION.
       77 erc PIC 9(8) COMP.
       77 rec-size PIC 9(8) COMP VALUE 16.
       PROCEDURE DIVISION.
           ACCEPT file1-date FROM DATE YYYYMMDD.
           ACCEPT file1-time FROM TIME.
           OPEN OUTPUT file1.
           WRITE file1-rec.
           CLOSE file1.
           CALL "fexists_signed" USING
                BY REFERENCE "./file1" file1-rec
                BY VALUE rec-size
                RETURNING erc.
           IF (erc <> 0)
              DISPLAY "FAILED file1".
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:4401: \$COMPILE_MODULE fexists_signed.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE fexists_signed.c" "run_file.at:4401"
( $at_check_trace; $COMPILE_MODULE fexists_signed.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/run_file.at:4401"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4402: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4402"
( $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/run_file.at:4402"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4403: unset COB_FILE_PATH ; ./prog"
at_fn_check_prepare_trace "run_file.at:4403"
( $at_check_trace; unset 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/run_file.at:4403"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_763
#AT_START_764
at_fn_group_banner 764 'run_file.at:4410' \
  "SEQUENTIAL basic I/O" "                           " 4
at_xfail=no
(
  $as_echo "764. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN DISK ORGANIZATION SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD file1.
       1  file1-rec pic x.
       PROCEDURE DIVISION.
           DELETE FILE file1.
           OPEN OUTPUT file1.
           MOVE "A" TO file1-rec.
           WRITE file1-rec.
           CLOSE file1.
           OPEN INPUT file1.
           READ file1.
           IF (file1-rec <> "A")
              display "FAILED".
           CLOSE file1.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:4438: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4438"
( $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/run_file.at:4438"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4439: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4439"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:4439"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_764
#AT_START_765
at_fn_group_banner 765 'run_file.at:4444' \
  "LINE SEQUENTIAL basic I/O" "                      " 4
at_xfail=no
(
  $as_echo "765. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN DISK ORGANIZATION LINE SEQUENTIAL.
       SELECT file2 ASSIGN DISK ORGANIZATION LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD file1.
       1  file1-rec pic x.
       FD file2.
       1  file2-rec pic xx.
       PROCEDURE DIVISION.
           DELETE FILE file1, file2
           OPEN OUTPUT file1, file2
           MOVE "A" TO file1-rec, file2-rec
           WRITE file1-rec
           WRITE file2-rec
           MOVE " " TO file1-rec, file2-rec
           WRITE file1-rec
           WRITE file2-rec
           WRITE file1-rec FROM "A"
           WRITE file2-rec FROM "AA"
           WRITE file1-rec FROM " "
           WRITE file2-rec FROM " A"
           CLOSE file1, file2
           OPEN INPUT file1, file2
           READ file1
           IF file1-rec NOT = "A"
              display "FAILED 1 file1 - '" file1-rec "'".
           READ file2
           IF file2-rec NOT = "A"
              display "FAILED 1 file2 - '" file2-rec "'".
           READ file1
           IF file1-rec NOT = SPACE
              display "FAILED 2 file1 - '" file1-rec "'".
           READ file2
           IF file2-rec NOT = SPACES
              display "FAILED 2 file2 - '" file2-rec "'".
           READ file1
           IF file1-rec NOT = "A"
              display "FAILED 3 file1 - '" file1-rec "'".
           READ file2
           IF file2-rec NOT = "AA"
              display "FAILED 3 file2 - '" file2-rec "'".
           READ file1
           IF file1-rec NOT = SPACE
              display "FAILED 4 file1 - '" file1-rec "'".
           READ file2
           IF file2-rec NOT = " A"
              display "FAILED 4 file2 - '" file2-rec "'".
           CLOSE file1, file2.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:4504: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4504"
( $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/run_file.at:4504"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4505: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4505"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:4505"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_765
#AT_START_766
at_fn_group_banner 766 'run_file.at:4510' \
  "LINE SEQUENTIAL record truncation" "              " 4
at_xfail=no
(
  $as_echo "766. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >TEST-FILE <<'_ATEOF'
a
ab
abc
abcd
abcde
abcdef
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN INPUT TEST-FILE.
           PERFORM 6 TIMES
               READ TEST-FILE
               DISPLAY "(" TEST-REC ")"
           END-PERFORM
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:4544: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4544"
( $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/run_file.at:4544"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4545: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4545"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_766
#AT_START_767
at_fn_group_banner 767 'run_file.at:4557' \
  "SEQUENTIAL file I/O with variable records" "      " 4
at_xfail=no
(
  $as_echo "767. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN DISK.

       DATA DIVISION.
       FILE SECTION.
       FD  f RECORD VARYING FROM 10 TO 20 DEPENDING rec-size.
       01  f-rec.
           02  f-x OCCURS 20 PIC X.

       WORKING-STORAGE SECTION.
       01  rec-size PIC 99.
       01  i PIC 99.
       01  1-template VALUE "+12345678++12345678+".
           02  1-x OCCURS 20 PIC X.

       PROCEDURE DIVISION.
           OPEN OUTPUT f
           PERFORM VARYING rec-size FROM 20 BY -1 UNTIL rec-size < 10
               WRITE f-rec FROM 1-template
           END-PERFORM
           CLOSE f

           OPEN INPUT f
      *    rec-size should not influence READ
           MOVE 15 TO rec-size
           PERFORM VARYING i FROM 20 BY -1 UNTIL i < 10
               READ f
                   AT END
                       DISPLAY "Failed: EOF"
                       STOP RUN ERROR
               END-READ

      *        Note the characters f-rec (rec-size + 1:) are all undefined,
      *        hence the refmod (1:rec-size).
               DISPLAY rec-size ": >" f-rec (1:rec-size) "<"
               IF rec-size NOT = i
                   DISPLAY "Failed: bad record size"
                   STOP RUN ERROR
               END-IF
               IF f-x (rec-size) NOT = 1-x (rec-size)
                   DISPLAY "Failed: bad data"
                   STOP RUN ERROR
               END-IF
           END-PERFORM
           CLOSE f
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:4614: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4614"
( $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/run_file.at:4614"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4615: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4615"
( $at_check_trace; $COBCRUN_DIRECT ./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 "20: >+12345678++12345678+<
19: >+12345678++12345678<
18: >+12345678++1234567<
17: >+12345678++123456<
16: >+12345678++12345<
15: >+12345678++1234<
14: >+12345678++123<
13: >+12345678++12<
12: >+12345678++1<
11: >+12345678++<
10: >+12345678+<
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4615"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_767
#AT_START_768
at_fn_group_banner 768 'run_file.at:4632' \
  "LINE SEQUENTIAL file I/O with variable records" " " 4
at_xfail=no
(
  $as_echo "768. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN DISK
               LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  f RECORD VARYING FROM 10 TO 20 DEPENDING rec-size.
       01  f-rec.
           02  f-x OCCURS 20 PIC X.

       WORKING-STORAGE SECTION.
       01  rec-size PIC 99.
       01  i PIC 99.
       01  1-template VALUE "+12345678++12345678+".
           02  1-x OCCURS 20 PIC X.

       PROCEDURE DIVISION.
           OPEN OUTPUT f
           PERFORM VARYING rec-size FROM 20 BY -1 UNTIL rec-size < 10
               WRITE f-rec FROM 1-template
           END-PERFORM
           CLOSE f

           OPEN INPUT f
      *    rec-size should not influence READ
           MOVE 15 TO rec-size
           PERFORM VARYING i FROM 20 BY -1 UNTIL i < 10
               READ f
                   AT END
                       DISPLAY "Failed: EOF"
                       STOP RUN ERROR
               END-READ

               DISPLAY rec-size ": >" f-rec (1:rec-size) "<"
               IF rec-size NOT = i
                   DISPLAY "Failed: bad record size"
                   STOP RUN ERROR
               END-IF
               IF f-x (rec-size) NOT = 1-x (rec-size)
                   DISPLAY "Failed: bad data"
                   STOP RUN ERROR
               END-IF
           END-PERFORM
           CLOSE f
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:4688: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4688"
( $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/run_file.at:4688"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4689: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4689"
( $at_check_trace; $COBCRUN_DIRECT ./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 "20: >+12345678++12345678+<
19: >+12345678++12345678<
18: >+12345678++1234567<
17: >+12345678++123456<
16: >+12345678++12345<
15: >+12345678++1234<
14: >+12345678++123<
13: >+12345678++12<
12: >+12345678++1<
11: >+12345678++<
10: >+12345678+<
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4689"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_768
#AT_START_769
at_fn_group_banner 769 'run_file.at:4706' \
  "SEQUENTIAL file REWRITE" "                        " 4
at_xfail=no
(
  $as_echo "769. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID.  prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT file1 ASSIGN DISK.

       DATA DIVISION.
       FILE SECTION.
       FD  file1.
       01  file1-rec.
           02  file1-serial-1 PIC 9(6).
           02  file1-xseen PIC 9(4).
           02  file1-serial-2 PIC 9(6).

       WORKING-STORAGE SECTION.
       01  w-count PIC 9(6) VALUE 0.
       01  w-eof PIC 9 VALUE 0.
           88  eof VALUE 1 FALSE 0.
       01  w-abort PIC 9 VALUE 0.
           88  abort VALUE 1 FALSE 0.

       PROCEDURE DIVISION.
           OPEN OUTPUT file1
           PERFORM VARYING w-count FROM 1 BY 1
                   UNTIL w-count > 20
               MOVE w-count TO file1-serial-1
               MOVE 0 TO file1-xseen
               ADD 100 w-count GIVING file1-serial-2
               WRITE file1-rec
           END-PERFORM
           CLOSE file1

           OPEN I-O file1
           SET eof TO FALSE
           PERFORM VARYING w-count FROM 1 BY 1
                   UNTIL eof OR abort
               READ file1
                   AT END
                       SET eof TO TRUE

                   NOT AT END
                       IF (file1-serial-1 <> w-count)
                           DISPLAY "FAIL 1: " w-count " :: "
                               file1-serial-1
                           SET abort TO TRUE
                       ELSE IF (file1-serial-2 <> (100 + w-count))
                           DISPLAY "FAIL 2: " w-count " :: "
                               file1-serial-2
                           SET abort TO TRUE
                       ELSE IF (file1-xseen <> 0)
                           DISPLAY "FAIL 3: " w-count " :: " file1-xseen
                           SET abort TO TRUE
                       ELSE IF (w-count = 5 OR 10 OR 15 OR 20)
                           ADD 1000 w-count GIVING file1-serial-2
                           ADD 1 TO file1-xseen
                           REWRITE file1-rec
                       END-IF
               END-READ
           END-PERFORM
           IF NOT ((w-count = 22) AND eof)
               DISPLAY "FAIL 4"
           END-IF
           CLOSE file1

           OPEN INPUT file1
           SET eof TO FALSE
           SET abort TO FALSE
           PERFORM VARYING w-count FROM 1 BY 1
                   UNTIL eof OR abort
               READ file1
                   AT END
                       SET eof TO TRUE

                   NOT AT END
                       IF (file1-serial-1 <> w-count)
                           DISPLAY "FAIL 5"
                           SET abort TO TRUE
                       ELSE IF (w-count = 5 OR 10 OR 15 OR 20)
                           IF NOT ((file1-serial-2 = (1000 + w-count))
                                   AND (file1-xseen = 1))
                               DISPLAY "FAIL 6"
                               SET abort TO TRUE
                           END-IF
                       ELSE
                           IF NOT ((file1-serial-2 = (100 + w-count))
                                   AND (file1-xseen = 0))
                               DISPLAY "FAIL 7"
                               SET abort TO TRUE
                           END-IF
                       END-IF
               END-READ
           END-PERFORM
           CLOSE file1
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:4809: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:4809"
( $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/run_file.at:4809"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4810: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:4810"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:4810"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_769
#AT_START_770
at_fn_group_banner 770 'run_file.at:4818' \
  "SEQUENTIAL file with LOCK MODE EXCLUSIVE" "       " 4
at_xfail=yes
(
  $as_echo "770. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           lock mode is exclusive
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec pic x.
       working-storage section.
       1    fs pic xx.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           close file1.
           open input file1.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open input file1.
           if fs not = "61"
              display "FAILED: " fs
              close file1
           end-if.
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:4879: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:4879"
( $at_check_trace; $COMPILE prog1.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/run_file.at:4879"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4880: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:4880"
( $at_check_trace; $COMPILE prog2.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/run_file.at:4880"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4881: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:4881"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4881"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_770
#AT_START_771
at_fn_group_banner 771 'run_file.at:4886' \
  "SEQUENTIAL file with OPEN WITH LOCK" "            " 4
at_xfail=yes
(
  $as_echo "771. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec pic x.
       working-storage section.
       1    fs pic xx.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           close file1.
           open input file1 with lock.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open input file1.
           if fs not = "61"
              display "FAILED: " fs
              close file1
           end-if.
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:4945: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:4945"
( $at_check_trace; $COMPILE prog1.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/run_file.at:4945"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4946: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:4946"
( $at_check_trace; $COMPILE prog2.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/run_file.at:4946"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:4947: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:4947"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:4947"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_771
#AT_START_772
at_fn_group_banner 772 'run_file.at:4952' \
  "SEQUENTIAL file with SHARING NO" "                " 4
at_xfail=yes
(
  $as_echo "772. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           sharing no
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec pic x.
       working-storage section.
       1    fs pic xx.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           close file1.
           open input file1.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open input file1.
           if fs not = "61"
              display "FAILED: " fs
              close file1
           end-if.
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5013: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5013"
( $at_check_trace; $COMPILE prog1.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/run_file.at:5013"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5014: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5014"
( $at_check_trace; $COMPILE prog2.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/run_file.at:5014"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5015: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5015"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5015"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_772
#AT_START_773
at_fn_group_banner 773 'run_file.at:5020' \
  "SEQUENTIAL file with SHARING READ ONLY" "         " 4
at_xfail=no
(
  $as_echo "773. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           sharing read only
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec pic x.
       working-storage section.
       1    fs pic xx.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           close file1.
           open input file1.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open i-o file1.
           if fs not = "61"
              display "FAILED 1: " fs
              close file1
           end-if.
           open input file1.
           if fs not = "00"
              display "FAILED 2: " fs
           else
              close file1
           end-if.
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5085: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5085"
( $at_check_trace; $COMPILE prog1.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/run_file.at:5085"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5086: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5086"
( $at_check_trace; $COMPILE prog2.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/run_file.at:5086"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5087: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5087"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5087"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_773
#AT_START_774
at_fn_group_banner 774 'run_file.at:5093' \
  "SEQUENTIAL file with blocked lock" "              " 4
at_xfail=yes
(
  $as_echo "774. $at_setup_line: testing $at_desc ..."
  $at_traceon





cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk.
       data division.
       file section.
       fd file1.
       1    file1-rec pic x.
       working-storage section.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           close file1.
           open input file1.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open input file1.
           if fs not = "00"
              display "FAILED: " fs
              stop run
           end-if.
           close file1
           open input file1 with lock.
           if fs not = "61"
              display "FAILED: " fs
              close file1
           end-if.
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5157: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5157"
( $at_check_trace; $COMPILE prog1.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/run_file.at:5157"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5158: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5158"
( $at_check_trace; $COMPILE prog2.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/run_file.at:5158"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5159: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5159"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5159"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_774
#AT_START_775
at_fn_group_banner 775 'run_file.at:5164' \
  "RELATIVE SEQUENTIAL basic I/O" "                  " 4
at_xfail=no
(
  $as_echo "775. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN DISK ORGANIZATION RELATIVE.
       DATA DIVISION.
       FILE SECTION.
       FD file1.
       1  file1-rec pic x.
       PROCEDURE DIVISION.
           DELETE FILE file1.
           OPEN OUTPUT file1.
           MOVE "A" TO file1-rec.
           WRITE file1-rec.
           CLOSE file1.
           OPEN INPUT file1.
           READ file1.
           IF (file1-rec <> "A")
              display "FAILED".
           CLOSE file1.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5192: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5192"
( $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/run_file.at:5192"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5193: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5193"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:5193"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_775
#AT_START_776
at_fn_group_banner 776 'run_file.at:5198' \
  "RELATIVE RANDOM basic I/O" "                      " 4
at_xfail=no
(
  $as_echo "776. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN DISK
          ORGANIZATION RELATIVE
          ACCESS RANDOM RELATIVE KEY file1-key.
       DATA DIVISION.
       FILE SECTION.
       FD file1.
       1  file1-rec pic x.
       WORKING-STORAGE SECTION.
       77  file1-key pic 99.
       PROCEDURE DIVISION.
           DELETE FILE file1.
           OPEN OUTPUT file1.
           MOVE 1 to file1-key.
           MOVE "A" TO file1-rec.
           WRITE file1-rec.
           MOVE 2 to file1-key.
           MOVE "B" TO file1-rec.
           WRITE file1-rec.
           MOVE 3 to file1-key.
           MOVE "C" TO file1-rec.
           WRITE file1-rec.
           CLOSE file1.
           OPEN INPUT file1.
           MOVE 2 to file1-key.
           READ file1.
           IF (file1-rec <> "B")
              display "FAILED".
           MOVE 1 to file1-key.
           READ file1.
           IF (file1-rec <> "A")
              display "FAILED".
           CLOSE file1.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5242: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5242"
( $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/run_file.at:5242"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5243: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5243"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:5243"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_776
#AT_START_777
at_fn_group_banner 777 'run_file.at:5248' \
  "RELATIVE SEQUENTIAL with variable records" "      " 4
at_xfail=no
(
  $as_echo "777. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN DISK
               ORGANIZATION RELATIVE.

       DATA DIVISION.
       FILE SECTION.
       FD  f RECORD VARYING FROM 10 TO 20 DEPENDING rec-size.
       01  f-rec.
           02  f-x OCCURS 20 PIC X.

       WORKING-STORAGE SECTION.
       01  rec-size PIC 99.
       01  i PIC 99.
       01  1-template VALUE "+12345678++12345678+".
           02  1-x OCCURS 20 PIC X.

       PROCEDURE DIVISION.
           OPEN OUTPUT f
           PERFORM VARYING rec-size FROM 20 BY -1 UNTIL rec-size < 10
               WRITE f-rec FROM 1-template
           END-PERFORM
           CLOSE f

           OPEN INPUT f
      *    rec-size should not influence READ
           MOVE 15 TO rec-size
           PERFORM VARYING i FROM 20 BY -1 UNTIL i < 10
               READ f
                   AT END
                       DISPLAY "Failed: EOF"
                       STOP RUN ERROR
               END-READ

               DISPLAY rec-size ": >" f-rec (1:rec-size) "<"
               IF rec-size NOT = i
                   DISPLAY "Failed: bad record size"
                   STOP RUN ERROR
               END-IF
               IF f-x (rec-size) NOT = 1-x (rec-size)
                   DISPLAY "Failed: bad data"
                   STOP RUN ERROR
               END-IF
           END-PERFORM
           CLOSE f
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5304: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5304"
( $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/run_file.at:5304"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5305: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5305"
( $at_check_trace; $COBCRUN_DIRECT ./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 "20: >+12345678++12345678+<
19: >+12345678++12345678<
18: >+12345678++1234567<
17: >+12345678++123456<
16: >+12345678++12345<
15: >+12345678++1234<
14: >+12345678++123<
13: >+12345678++12<
12: >+12345678++1<
11: >+12345678++<
10: >+12345678+<
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5305"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_777
#AT_START_778
at_fn_group_banner 778 'run_file.at:5322' \
  "INDEXED SEQUENTIAL basic I/O" "                   " 4
at_xfail=no
(
  $as_echo "778. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:5325" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5325"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT fileX ASSIGN DISK ORGANIZATION INDEXED
           RECORD KEY fileX-key.
       DATA DIVISION.
       FILE SECTION.
       FD fileX.
       1  fileX-rec.
          2 fileX-key pic x(6).
          2 fileX-data pic x(10).
       PROCEDURE DIVISION.
           OPEN OUTPUT fileX.
           MOVE ALL "A" TO fileX-rec.
           WRITE fileX-rec.
           CLOSE fileX.
           OPEN INPUT fileX.
           READ fileX.
           IF (fileX-rec <> ALL "A")
              display "FAILED".
           CLOSE fileX.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5354: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5354"
( $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/run_file.at:5354"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5355: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5355"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:5355"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_778
#AT_START_779
at_fn_group_banner 779 'run_file.at:5360' \
  "INDEXED SEQUENTIAL with variable records" "       " 4
at_xfail=no
(
  $as_echo "779. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:5363" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5363"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN DISK
               INDEXED
               RECORD KEY f-key
               ACCESS RANDOM.

       DATA DIVISION.
       FILE SECTION.
       FD  f RECORD VARYING FROM 12 TO 22 DEPENDING rec-size.
       01  f-rec.
           02  f-key PIC 99.
           02  f-data.
               03  f-x OCCURS 20 PIC X.

       WORKING-STORAGE SECTION.
       01  rec-size PIC 99.
       01  1-template VALUE "+12345678++12345678+".
           02  1-x OCCURS 20 PIC X.

       PROCEDURE DIVISION.
           OPEN OUTPUT f
           MOVE 1 TO f-key
           PERFORM VARYING rec-size FROM 22 BY -1 UNTIL rec-size < 12
               MOVE 1-template TO f-data
               WRITE f-rec
               ADD 1 TO f-key
           END-PERFORM
           CLOSE f

           OPEN INPUT f
      *    rec-size should not influence READ
           MOVE 15 TO rec-size
           PERFORM VARYING f-key FROM 1 BY 1 UNTIL f-key > 11
               READ f
                   AT END
                       DISPLAY "Failed: EOF"
                       STOP RUN ERROR
               END-READ

               DISPLAY rec-size ": >" f-rec (3:rec-size - 2) "<"
               IF rec-size NOT = (22 - f-key) + 1
                   DISPLAY "Failed: bad record size - " rec-size
                   STOP RUN ERROR
               END-IF
               IF f-x (rec-size - 2) NOT = 1-x (rec-size - 2)
                   DISPLAY "Failed: bad data - " f-data
                   STOP RUN ERROR
               END-IF
           END-PERFORM
           CLOSE f
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5424: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:5424"
( $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/run_file.at:5424"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5425: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:5425"
( $at_check_trace; $COBCRUN_DIRECT ./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 "22: >+12345678++12345678+<
21: >+12345678++12345678<
20: >+12345678++1234567<
19: >+12345678++123456<
18: >+12345678++12345<
17: >+12345678++1234<
16: >+12345678++123<
15: >+12345678++12<
14: >+12345678++1<
13: >+12345678++<
12: >+12345678+<
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5425"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_779
#AT_START_780
at_fn_group_banner 780 'run_file.at:5442' \
  "INDEXED file with LOCK MODE EXCLUSIVE" "          " 4
at_xfail=yes
(
  $as_echo "780. $at_setup_line: testing $at_desc ..."
  $at_traceon



## TO-DO: Support INDEXED file sharing/locking.
$as_echo "run_file.at:5446" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5446"


cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           organization indexed
           record key file1-key
           lock mode is exclusive
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           close file1.
           open input file1.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           organization indexed
           record key file1-key
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open input file1.
           if fs not = "61"
              display "FAILED: " fs
              close file1
           end-if.
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5512: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5512"
( $at_check_trace; $COMPILE prog1.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/run_file.at:5512"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5513: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5513"
( $at_check_trace; $COMPILE prog2.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/run_file.at:5513"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5514: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5514"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5514"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_780
#AT_START_781
at_fn_group_banner 781 'run_file.at:5519' \
  "INDEXED file with OPEN WITH LOCK" "               " 4
at_xfail=yes
(
  $as_echo "781. $at_setup_line: testing $at_desc ..."
  $at_traceon



## TO-DO: Support INDEXED file sharing/locking.
$as_echo "run_file.at:5523" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5523"


cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           organization indexed
           record key file1-key
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           close file1.
           open input file1 with lock.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           organization indexed
           record key file1-key
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open input file1.
           if fs not = "61"
              display "FAILED: " fs
              close file1
           end-if.
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5588: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5588"
( $at_check_trace; $COMPILE prog1.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/run_file.at:5588"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5589: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5589"
( $at_check_trace; $COMPILE prog2.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/run_file.at:5589"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5590: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5590"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5590"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_781
#AT_START_782
at_fn_group_banner 782 'run_file.at:5595' \
  "INDEXED file with SHARING NO" "                   " 4
at_xfail=yes
(
  $as_echo "782. $at_setup_line: testing $at_desc ..."
  $at_traceon



## TO-DO: Support INDEXED file sharing/locking.
$as_echo "run_file.at:5599" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5599"


cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           organization indexed
           record key file1-key
           sharing no
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           close file1.
           open input file1.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           organization indexed
           record key file1-key
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open input file1.
           if fs not = "61"
              display "FAILED: " fs
              close file1
           end-if.
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5665: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5665"
( $at_check_trace; $COMPILE prog1.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/run_file.at:5665"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5666: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5666"
( $at_check_trace; $COMPILE prog2.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/run_file.at:5666"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5667: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5667"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5667"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_782
#AT_START_783
at_fn_group_banner 783 'run_file.at:5672' \
  "INDEXED file with SHARING READ ONLY" "            " 4
at_xfail=yes
(
  $as_echo "783. $at_setup_line: testing $at_desc ..."
  $at_traceon



## TO-DO: Support INDEXED file sharing/locking.
$as_echo "run_file.at:5676" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5676"


cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           organization indexed
           record key file1-key
           sharing read only
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           close file1.
           open input file1.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           organization indexed
           record key file1-key
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open i-o file1.
           if fs not = "61"
              display "FAILED: " fs
              close file1
           end-if.
           open input file1.
           if fs not = "00"
              display "FAILED: " fs
           else
              close file1
           end-if.
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5748: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5748"
( $at_check_trace; $COMPILE prog1.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/run_file.at:5748"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5749: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5749"
( $at_check_trace; $COMPILE prog2.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/run_file.at:5749"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5750: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5750"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5750"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_783
#AT_START_784
at_fn_group_banner 784 'run_file.at:5756' \
  "INDEXED file with blocked lock" "                 " 4
at_xfail=yes
(
  $as_echo "784. $at_setup_line: testing $at_desc ..."
  $at_traceon



## TO-DO: Support INDEXED file sharing/locking.
$as_echo "run_file.at:5760" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5760"


cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           organization indexed
           record key file1-key.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           close file1.
           open input file1.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           organization indexed
           record key file1-key
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open input file1.
           if fs not = "00"
              display "FAILED: " fs
              stop run
           end-if.
           close file1
           open input file1 with lock.
           if fs not = "61"
              display "FAILED: " fs
              close file1
           end-if.
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5829: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5829"
( $at_check_trace; $COMPILE prog1.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/run_file.at:5829"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5830: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5830"
( $at_check_trace; $COMPILE prog2.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/run_file.at:5830"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5831: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5831"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5831"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_784
#AT_START_785
at_fn_group_banner 785 'run_file.at:5836' \
  "INDEXED file with LOCK AUTOMATIC (1)" "           " 4
at_xfail=yes
(
  $as_echo "785. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:5839" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5839"


cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           access mode is random
           organization indexed
           record key file1-key
           lock mode is automatic
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           move "X" to file1-key.
           write file1-rec.
           if fs not = "00"
              display "FAILED 1::w fs=" fs.
           close file1.
           open i-o file1.
           move "X" to file1-key.
           read file1.
           if fs not = "00"
              display "FAILED 1::r fs=" fs.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           access mode is random
           organization indexed
           record key file1-key
           lock mode is automatic
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open i-o file1.
           move "X" to file1-key.
           read file1.
           if fs not = "61"
              display "FAILED 2::r " fs.
           close file1
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:5917: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:5917"
( $at_check_trace; $COMPILE prog1.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/run_file.at:5917"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5918: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:5918"
( $at_check_trace; $COMPILE prog2.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/run_file.at:5918"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:5919: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:5919"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:5919"
$at_failed && at_fn_log_failure
$at_traceon; }



  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_785
#AT_START_786
at_fn_group_banner 786 'run_file.at:5925' \
  "INDEXED file with LOCK AUTOMATIC (2)" "           " 4
at_xfail=no
(
  $as_echo "786. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:5928" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:5928"

cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           access mode is random
           organization indexed
           record key file1-key
           lock mode is automatic
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           move "X" to file1-key.
           write file1-rec.
           if fs not = "00"
              display "FAILED 1::w fs=" fs.
           close file1.
           open i-o file1.
           move "X" to file1-key.
           read file1.
           if fs not = "00"
              display "FAILED 1::r fs=" fs.
           rewrite file1-rec.
           if fs not = "00"
              display "FAILED 1::rw fs=" fs.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           access mode is random
           organization indexed
           record key file1-key
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open input file1.
           move "X" to file1-key.
           read file1.
           if fs not = "00"
              display "FAILED 2::r " fs
           end-if.
           close file1
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:6008: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:6008"
( $at_check_trace; $COMPILE prog1.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/run_file.at:6008"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:6009: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:6009"
( $at_check_trace; $COMPILE prog2.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/run_file.at:6009"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:6010: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:6010"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6010"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_786
#AT_START_787
at_fn_group_banner 787 'run_file.at:6015' \
  "INDEXED file with LOCK MANUAL" "                  " 4
at_xfail=yes
(
  $as_echo "787. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:6018" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6018"


cat >prog1.cob <<'_ATEOF'

       identification division.
       program-id. prog1.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           access mode is random
           organization indexed
           record key file1-key
           lock mode is manual
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       1    os-check   pic x(7).
         88 os-is-windows-or-dos values 'WINDOWS' 'FREEDOS'.
       78  callee       value "./prog2".
       78  callee-wdos  value ".\prog2".
       procedure division.
           open output file1.
           move "X" to file1-key.
           write file1-rec.
           if fs not = "00"
              display "FAILED 1::w fs=" fs.
           close file1.
           open i-o file1.
           move "X" to file1-key.
           read file1 with lock.
           if fs not = "00"
              display "FAILED 1::r fs=" fs.
           accept os-check from environment "OS".
           if os-check = spaces
             accept os-check from environment "OS_NAME".
           inspect os-check converting "werfdosin" to "WERFDOSIN".
           if os-is-windows-or-dos
             call "SYSTEM" using callee-wdos
           else
             call "SYSTEM" using callee.
           close file1.
           stop run.
_ATEOF

cat >prog2.cob <<'_ATEOF'

       identification division.
       program-id. prog2.
       environment division.
       input-output section.
       file-control.
       select file1 assign disk
           access mode is random
           organization indexed
           record key file1-key
           status is fs.
       data division.
       file section.
       fd file1.
       1    file1-rec.
        2   file1-key pic x.
       working-storage section.
       1    fs pic xx.
       procedure division.
           open i-o file1.
           move "X" to file1-key.
           read file1.
           if fs not = "61"
              display "FAILED 2::r " fs
           end-if.
           close file1
           stop run.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:6096: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_file.at:6096"
( $at_check_trace; $COMPILE prog1.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/run_file.at:6096"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:6097: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_file.at:6097"
( $at_check_trace; $COMPILE prog2.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/run_file.at:6097"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:6098: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_file.at:6098"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6098"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_787
#AT_START_788
at_fn_group_banner 788 'run_file.at:6103' \
  "START INDEXED" "                                  " 4
at_xfail=no
(
  $as_echo "788. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:6106" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6106"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN TO "./file1X"
                    ORGANIZATION INDEXED
                    ACCESS DYNAMIC RECORD KEY file1-key.
       DATA DIVISION.
       FILE SECTION.
       FD file1.
       1  file1-rec.
          2  file1-key pic 999.
          2  file1-data pic 999.
       PROCEDURE DIVISION.
          OPEN OUTPUT file1.
          CLOSE file1.
          OPEN I-O file1.
          MOVE 10 TO file1-key file1-data.
          WRITE file1-rec.
          MOVE 11 TO file1-key file1-data.
          WRITE file1-rec.
          MOVE 12 TO file1-key file1-data.
          WRITE file1-rec.
          MOVE 13 TO file1-key file1-data.
          WRITE file1-rec.
      *
          MOVE 0 TO file1-key.
          START file1 KEY > file1-key.
          READ file1 NEXT.
          IF (file1-data <> 10)
             DISPLAY "FAILED: START key > 0".
      *
          MOVE 99 TO file1-key.
          START file1 KEY < file1-key.
          READ file1 NEXT.
          IF (file1-data <> 13)
             DISPLAY "FAILED: START key < 99".
      *
          MOVE 999 TO file1-key.
          START file1 FIRST.
          READ file1 NEXT.
          IF (file1-data <> 10)
             DISPLAY "FAILED: START key FIRST".
      *
          MOVE 0 TO file1-key.
          START file1 LAST.
          READ file1 NEXT.
          IF (file1-data <> 13)
             DISPLAY "FAILED: START key LAST".
      *
          MOVE 0 TO file1-key.
          START file1 KEY >= file1-key.
          READ file1 NEXT.
          IF (file1-data <> 10)
             DISPLAY "FAILED: START key >= 0".
      *
          MOVE 99 TO file1-key.
          START file1 KEY <= file1-key.
          READ file1 NEXT.
          IF (file1-data <> 13)
             DISPLAY "FAILED: START key <= 99".

          CLOSE file1.
          STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:6176: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:6176"
( $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/run_file.at:6176"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:6177: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:6177"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:6177"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_788
#AT_START_789
at_fn_group_banner 789 'run_file.at:6182' \
  "INDEXED partial keys" "                           " 4
at_xfail=no
(
  $as_echo "789. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:6185" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6185"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT OPTIONAL f ASSIGN "fileX"
               ORGANIZATION INDEXED
               ACCESS DYNAMIC
               RECORD KEY f-key1
               ALTERNATE RECORD f-key2
               ALTERNATE RECORD f-key3 DUPLICATES
               STATUS f-status.

       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  f-rec.
           02  f-key1.
               03  f-key1-1 PIC X(3).
               03  f-key1-2 PIC X(3).
           02  f-key2.
               03  f-key2-1 PIC X(3).
               03  f-key2-2 PIC X(3).
           02  f-key3.
               03  f-key3-1 PIC X(3).
               03  f-key3-2 PIC X(3).
           02  file1-serial PIC 99.

       WORKING-STORAGE SECTION.
       01  f-status PIC XX.
       01  w-serial PIC 99 VALUE 0.

       PROCEDURE DIVISION.
           DELETE FILE f
           OPEN I-O f
           MOVE "AAAAAAaaaaaaXX----" TO f-rec
           PERFORM write-f
           MOVE "AAAAABaaaaabXX----" TO f-rec
           PERFORM write-f
           MOVE "AAAABBaaaabbXX----" TO f-rec
           PERFORM write-f
           MOVE "AAABBBaaabbbXXX---" TO f-rec
           PERFORM write-f
           MOVE "AABBBBaabbbbXXX---" TO f-rec
           PERFORM write-f
           MOVE "ABBBBBabbbbbXXX---" TO f-rec
           PERFORM write-f
           MOVE "BBBBBBbbbbbbXXX---" TO f-rec
           PERFORM write-f

           MOVE "AAB" TO f-key1-1
           MOVE "~~~" TO f-key1-2
           START f KEY = f-key1-1
           READ f NEXT
           IF (f-status <> "00") OR
                   (file1-serial <> 4)
               DISPLAY "FAILED 1: status " f-status "-"
                       "serial: " file1-serial
           END-IF

           MOVE "AAB" TO f-key1-1
           MOVE "~~~" TO f-key1-2
           START f KEY < f-key1-1
           READ f PREVIOUS
           IF (f-status <> "00") OR
                   (file1-serial <> 3)
               DISPLAY "FAILED 2: status " f-status "-"
                       "serial: " file1-serial
           END-IF

           MOVE "AAA" TO f-key1-1
           MOVE "~~~" TO f-key1-2
           START f KEY > f-key1-1
           READ f NEXT
           IF (f-status <> "00") OR
                   (file1-serial <> 4)
               DISPLAY "FAILED 3: status " f-status "-"
                       "serial: " file1-serial
           END-IF

           MOVE "aab" TO f-key2-1
           MOVE "~~~" TO f-key2-2
           START f KEY = f-key2-1
           READ f NEXT
           IF (f-status <> "00") OR
                   (file1-serial <> 4)
               DISPLAY "FAILED 4: status " f-status "-"
                       "serial: " file1-serial
           END-IF

           MOVE "aab" TO f-key2-1
           MOVE "~~~" TO f-key2-2
           START f KEY < f-key2-1
           READ f PREVIOUS
           IF (f-status <> "00") OR
                   (file1-serial <> 3)
               DISPLAY "FAILED 5: status " f-status "-"
                       "serial: " file1-serial
           END-IF

           MOVE "aaa" TO f-key2-1
           MOVE "~~~" TO f-key2-2
           START f KEY > f-key2-1
           READ f NEXT
           IF (f-status <> "00") OR
                   (file1-serial <> 4)
               DISPLAY "FAILED 6: status " f-status "-"
                       "serial: " file1-serial
           END-IF

           MOVE "XX-" TO f-key3-1
           START f KEY > f-key3-1
           READ f NEXT
      *  CHECK: Return file-status "02" if duplicates exist
           IF (f-status <> "02"
      *    Depends on xISAM implementation and the way BDB is used (not yet
      *    implemented in 3.x)
            AND f-status <> "00"
               ) OR file1-serial <> 3
               DISPLAY "FAILED 7: status " f-status "-"
           END-IF
           CLOSE f
           STOP RUN
           .
       write-f.
           MOVE w-serial TO file1-serial
           WRITE f-rec
           ADD 1 TO w-serial
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:6320: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:6320"
( $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/run_file.at:6320"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:6321: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:6321"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:6321"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_789
#AT_START_790
at_fn_group_banner 790 'run_file.at:6329' \
  "INDEXED undeclared keys" "                        " 4
at_xfail=no
(
  $as_echo "790. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:6332" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6332"

# real ISAM has the key information and will "fail" one part,
# BDB hasn't and will "pass" this one but fail the other
# -> skip as 4.x feature
$as_echo "run_file.at:6337" >"$at_check_line_file"
at_fn_check_skip 77 "$at_srcdir/run_file.at:6337"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT file1 ASSIGN TO "./fileX"
                    ORGANIZATION INDEXED
                    ACCESS RANDOM
                    RECORD KEY file1-key1
                    ALTERNATE RECORD KEY file1-key2
                    ALTERNATE RECORD KEY file1-key3.
       SELECT file2 ASSIGN TO "./fileX"
                    ORGANIZATION INDEXED
                    ACCESS RANDOM
                    RECORD KEY file2-key1
                    ALTERNATE RECORD KEY file2-key2.
       SELECT file3 ASSIGN TO "./fileX"
                    ORGANIZATION INDEXED
                    ACCESS RANDOM
                    RECORD KEY file3-key1.
       DATA DIVISION.
       FILE SECTION.
       FD file1.
       1  file1-rec.
          2  file1-key1 pic 999.
          2  file1-key2 pic 999.
          2  file1-key3 pic 999.
          2  file1-data pic 999.
       FD file2.
       1  file2-rec.
          2  file2-key1 pic 999.
          2  file2-key2 pic 999.
          2  file2-key3 pic 999.
          2  file2-data pic 999.
       FD file3.
       1  file3-rec.
          2  file3-key1 pic 999.
          2  file3-key2 pic 999.
          2  file3-key3 pic 999.
          2  file3-data pic 999.
       WORKING-STORAGE SECTION.
       77 ix pic 9(6).
       PROCEDURE DIVISION.
          OPEN OUTPUT file1.
          PERFORM VARYING ix FROM 1 BY 1
             UNTIL ix > 10
             MOVE ix TO file1-key1 file1-data
             ADD 100 TO ix GIVING file1-key2
             ADD 200 TO ix GIVING file1-key3
             WRITE file1-rec
          END-PERFORM.
          CLOSE file1.
      *
          OPEN INPUT file1.
          PERFORM VARYING ix FROM 1 BY 1
             UNTIL ix > 10
             MOVE ix TO file1-key1
             READ file1 KEY file1-key1
             IF (file1-data <> ix)
                DISPLAY "FAILED 1-1"
             END-IF
          END-PERFORM.
          PERFORM VARYING ix FROM 1 BY 1
             UNTIL ix > 10
             ADD 100 TO ix GIVING file1-key2
             READ file1 KEY file1-key2
             IF (file1-data <> ix)
                DISPLAY "FAILED 1-2"
             END-IF
          END-PERFORM.
          PERFORM VARYING ix FROM 1 BY 1
             UNTIL ix > 10
             ADD 200 TO ix GIVING file1-key3
             READ file1 KEY file1-key3
             IF (file1-data <> ix)
                DISPLAY "FAILED 1-3"
             END-IF
          END-PERFORM.
          CLOSE file1.
      *
          OPEN INPUT file2.
          PERFORM VARYING ix FROM 1 BY 1
             UNTIL ix > 10
             MOVE ix TO file2-key1
             READ file2 KEY file2-key1
             IF (file2-data <> ix)
                DISPLAY "FAILED 2-1"
             END-IF
          END-PERFORM.
          PERFORM VARYING ix FROM 1 BY 1
             UNTIL ix > 10
             ADD 100 TO ix GIVING file2-key2
             READ file2 KEY file2-key2
             IF (file2-data <> ix)
                DISPLAY "FAILED 2-2"
             END-IF
          END-PERFORM.
          CLOSE file2.
      *
          OPEN INPUT file3.
          PERFORM VARYING ix FROM 1 BY 1
             UNTIL ix > 10
             MOVE ix TO file3-key1
             READ file3 KEY file3-key1
             IF (file3-data <> ix)
                DISPLAY "FAILED 3-1"
             END-IF
          END-PERFORM.
          CLOSE file3.
      *
      *   Insert rec via file with only 1 index declared
          OPEN I-O file3.
          MOVE 20 TO ix.
          MOVE ix TO file3-key1 file3-data
          ADD 100 TO ix GIVING file3-key2
          ADD 200 TO ix GIVING file3-key3
          WRITE file3-rec
          CLOSE file3
      *
      *   Check new rec is visible in other files
          OPEN INPUT file1.
          MOVE 10 TO file1-key1.
          READ file1 KEY file1-key1.
          IF (file1-data <> 10)
             DISPLAY "FAILED 1-4".
          MOVE SPACES TO file1-rec.
          MOVE 110 TO file1-key2.
          READ file1 KEY file1-key2.
          IF (file1-data <> 10)
             DISPLAY "FAILED 1-5".
          MOVE SPACES TO file1-rec.
          MOVE 210 TO file1-key3.
          READ file1 KEY file1-key3.
          IF (file1-data <> 10)
             DISPLAY "FAILED 1-6".
          CLOSE file1.
      *
          OPEN INPUT file2.
          MOVE 10 TO file2-key1.
          READ file2 KEY file2-key1.
          IF (file2-data <> 10)
             DISPLAY "FAILED 2-3".
          MOVE SPACES TO file2-rec.
          MOVE 110 TO file2-key2.
          READ file2 KEY file2-key2.
          IF (file2-data <> 10)
             DISPLAY "FAILED 2-4".
          CLOSE file2.
          STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:6491: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:6491"
( $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/run_file.at:6491"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:6492: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:6492"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:82: error: unknown file error (status = 39) for file file2 ('.' => ./fileX) on OPEN
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:6492"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:6495: COB_KEYCHECK=OFF \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_KEYCHECK=OFF $COBCRUN_DIRECT ./prog" "run_file.at:6495"
( $at_check_trace; COB_KEYCHECK=OFF $COBCRUN_DIRECT ./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/run_file.at:6495"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_790
#AT_START_791
at_fn_group_banner 791 'run_file.at:6500' \
  "READ INPUT pipe & WRITE OUTPUT pipe" "            " 4
at_xfail=yes
(
  $as_echo "791. $at_setup_line: testing $at_desc ..."
  $at_traceon



# only implemented with 4+


cat >test-data-in <<'_ATEOF'
NAME
STREET
TOWN
COUNTRY
_ATEOF


cat >provider <<'_ATEOF'

cat $1
_ATEOF


cat >consumer <<'_ATEOF'

cat
_ATEOF


cat >prog.cob <<'_ATEOF'

       identification division.
       program-id. prog.
       environment division.
       configuration section.
       input-output section.
       file-control.
           select pipe-in
               organization line sequential
               access sequential
               assign to w-command
               status is f-status.
           select pipe-out
               organization line sequential
               access sequential
               assign to w-command
               status is f-status.
       data division.
       file section.
       fd  pipe-in.
       1   pipe-msg-in pic x(132).
       fd  pipe-out.
       1   pipe-msg-out pic x(132).
       working-storage section.
       77  f-status pic xx.
           88  f-status-ok value "00".
       77  w-command pic x(100).
       procedure division.
           move "< sh ./provider ./test-data-in"
             to w-command.
           open input pipe-in.
           if not f-status-ok
              display "FAILED: OPEN INPUT"
              stop run
           end-if.
           move "> sh ./consumer > ./test-data-out"
             to w-command.
           open output pipe-out.
           if not f-status-ok
              display "FAILED: OPEN OUTPUT"
              stop run
           end-if.
           perform until not f-status-ok
              read pipe-in
              if f-status-ok
                 perform x01-100-map
                 write pipe-msg-out
              end-if
           end-perform.
           close pipe-in.
           close pipe-out.
           stop run.
      *
       x01-100-map.
           move "*** Jacques Tati ***" to pipe-msg-out.
           if (pipe-msg-in = "COUNTRY")
              move "Country: FRANCE" to pipe-msg-out.
           if (pipe-msg-in = "TOWN")
              move "Town: DEAUVILLE" to pipe-msg-out.
           if (pipe-msg-in = "NAME")
              move "Name: M. Hulot" to pipe-msg-out.
           if (pipe-msg-in = "STREET")
              move "Street: Rue des Anglais" to pipe-msg-out.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:6586: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_file.at:6586"
( $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/run_file.at:6586"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:6587: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:6587"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_file.at:6587"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:6588: cat test-data-out"
at_fn_check_prepare_trace "run_file.at:6588"
( $at_check_trace; cat test-data-out
) >>"$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 "Name: M. Hulot
Street: Rue des Anglais
Town: DEAUVILLE
Country: FRANCE
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:6588"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_791
#AT_START_792
at_fn_group_banner 792 'run_file.at:6598' \
  "EXTFH: using ISAM callback" "                     " 4
at_xfail=no
(
  $as_echo "792. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:6601" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:6601"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT OPTIONAL TSPFILE
           ASSIGN TO "testisam"
           ORGANIZATION INDEXED ACCESS DYNAMIC
           RECORD KEY IS CM-CUST-NUM
           ALTERNATE RECORD KEY IS CM-TELEPHONE WITH DUPLICATES
           ALTERNATE RECORD KEY IS CM-DISK WITH DUPLICATES
           FILE STATUS IS CUST-STAT .

           SELECT TSTFILE
           ASSIGN TO "testisam"
           ORGANIZATION INDEXED ACCESS DYNAMIC
           RECORD KEY IS TS-CUST-NUM
           ALTERNATE RECORD KEY IS TS-TELEPHONE WITH DUPLICATES
           ALTERNATE RECORD KEY IS TS-DISK WITH DUPLICATES
           FILE STATUS IS CUST-STAT .

           SELECT FLATFILE ASSIGN EXTERNAL RELFIX
           ORGANIZATION RELATIVE
           ACCESS IS RANDOM RELATIVE KEY IS REC-NUM
           FILE STATUS IS CUST-STAT.

       DATA  DIVISION.
       FILE SECTION.
       FD  TSPFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSPFL-RECORD.
           05  TSPFL-REC.
           10  CM-CUST-NUM.
             15  CM-CUST-PRE                   PICTURE X(3).
             15  CM-CUST-NNN                   PICTURE X(5).
           10  CM-STATUS                       PICTURE X.
           10  CM-COMPANY                      PICTURE X(25).
           10  CM-ADDRESS-1                    PICTURE X(25).
           10  CM-ADDRESS-2                    PICTURE X(25).
           10  CM-ADDRESS-3                    PICTURE X(25).
           10  CM-TELEPHONE                    PICTURE 9(10).
           10  CM-DP-MGR                       PICTURE X(25).
           10  CM-MACHINE                      PICTURE X(8).
           10  CM-MEMORY                       PICTURE X(4).
           10  CM-DISK                         PICTURE X(8).
           10  CM-TAPE                         PICTURE X(8).
           10  CM-NO-TERMINALS                 PICTURE 9(5).

       FD  TSTFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSTFL-RECORD.
           05  TSTFL-REC.
           10  TS-CUST-NUM                     PICTURE X(8).
           10  TS-STATUS                       PICTURE X.
           10  TS-COMPANY                      PICTURE X(25).
           10  TS-ADDRESS-1                    PICTURE X(25).
           10  TS-ADDRESS-2                    PICTURE X(25).
           10  TS-ADDRESS-3                    PICTURE X(25).
           10  TS-TELEPHONE                    PICTURE 9(10).
           10  TS-DP-MGR                       PICTURE X(25).
           10  TS-MACHINE                      PICTURE X(8).
           10  TS-MEMORY                       PICTURE X(4).
           10  TS-DISK                         PICTURE X(8).
           10  TS-TAPE                         PICTURE X(8).

       FD  FLATFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSP2-RECORD.
           10  C2-CUST-NUM                     PICTURE X(8).
           10  C2-COMPANY                      PICTURE X(25).
           10  C2-DISK                         PICTURE X(8).
           10  C2-NO-TERMINALS                 PICTURE 9(4) COMP-4.
           10  C2-PK-DATE                      PICTURE S9(14) COMP-3.

       WORKING-STORAGE SECTION.

       01  CUST-STAT.
           05  FILLER PICTURE XX.
       77  MAX-SUB           VALUE  16         PICTURE 9(5) COMP SYNC.

       01  TEST-DATA.

         02  DATA-CUST-NUM-TBL.

           05  FILLER PIC X(8) VALUE "ALP00000".
           05  FILLER PIC X(8) VALUE "BET00000".
           05  FILLER PIC X(8) VALUE "GAM00000".
           05  FILLER PIC X(8) VALUE "DEL00000".
           05  FILLER PIC X(8) VALUE "EPS00000".
           05  FILLER PIC X(8) VALUE "FOR00000".
           05  FILLER PIC X(8) VALUE "GIB00000".
           05  FILLER PIC X(8) VALUE "H&J00000".
           05  FILLER PIC X(8) VALUE "INC00000".
           05  FILLER PIC X(8) VALUE "JOH00000".
           05  FILLER PIC X(8) VALUE "KON00000".
           05  FILLER PIC X(8) VALUE "LEW00000".
           05  FILLER PIC X(8) VALUE "MOR00000".
           05  FILLER PIC X(8) VALUE "NEW00000".
           05  FILLER PIC X(8) VALUE "OLD00000".
           05  FILLER PIC X(8) VALUE "PRE00000".

         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
                                       PIC X(8) OCCURS 16.
         02  DATA-COMPANY-TBL.

           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
           05  FILLER PIC X(25) VALUE "GIBRALTER LIFE INSURANCE ".
           05  FILLER PIC X(25) VALUE "H & J PLUMBING SUPPLIES  ".
           05  FILLER PIC X(25) VALUE "INCREMENTAL BACKUP CORP. ".
           05  FILLER PIC X(25) VALUE "JOHNSON BOATING SUPPLIES ".
           05  FILLER PIC X(25) VALUE "KONFLAB PLASTIC PRODUCTS.".
           05  FILLER PIC X(25) VALUE "LEWISTON GRAPHICS LTD.   ".
           05  FILLER PIC X(25) VALUE "MORNINGSIDE CARPENTRY.   ".
           05  FILLER PIC X(25) VALUE "NEW WAVE SURF SHOPS INC. ".
           05  FILLER PIC X(25) VALUE "OLD TYME PIZZA MFG. CO.  ".
           05  FILLER PIC X(25) VALUE "PRESTIGE OFFICE FURNITURE".

         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
                                       PIC X(25) OCCURS 16.
         02  DATA-ADDRESS-1-TBL.

           05  FILLER PIC X(25) VALUE "123 MAIN STREET          ".
           05  FILLER PIC X(25) VALUE "1090 2ND AVE. WEST       ".
           05  FILLER PIC X(25) VALUE "1401 JEFFERSON BLVD.     ".
           05  FILLER PIC X(25) VALUE "1620 ARIZONA WAY         ".
           05  FILLER PIC X(25) VALUE "1184 EAST FIRST STREET   ".
           05  FILLER PIC X(25) VALUE "114 JOHN F. KENNEDY AVE. ".
           05  FILLER PIC X(25) VALUE "650 LIBERTY CRESCENT     ".
           05  FILLER PIC X(25) VALUE "77 SUNSET BLVD.          ".
           05  FILLER PIC X(25) VALUE "10908 SANTA MONICA BLVD. ".
           05  FILLER PIC X(25) VALUE "1134 PARIS ROAD          ".
           05  FILLER PIC X(25) VALUE "808 NORTHWEST MAIN ST.   ".
           05  FILLER PIC X(25) VALUE "9904 QUEEN STREET        ".
           05  FILLER PIC X(25) VALUE "1709 DUNDAS CRESCENT W.  ".
           05  FILLER PIC X(25) VALUE "3240 MARIS AVENUE        ".
           05  FILLER PIC X(25) VALUE "1705 WISCONSIN ROAD      ".
           05  FILLER PIC X(25) VALUE "114A MAPLE GROVE         ".

         02  DATA-ADDRESS-1 REDEFINES DATA-ADDRESS-1-TBL
                                       PIC X(25) OCCURS 16.
         02  DATA-ADDRESS-2-TBL.

           05  FILLER PIC X(10) VALUE "NEW YORK  ".
           05  FILLER PIC X(10) VALUE "ATLANTA   ".
           05  FILLER PIC X(10) VALUE "WASHINGTON".
           05  FILLER PIC X(10) VALUE "TORONTO   ".
           05  FILLER PIC X(10) VALUE "CALGARY   ".
           05  FILLER PIC X(10) VALUE "SAN DIEGO ".
           05  FILLER PIC X(10) VALUE "LOS RIOS  ".
           05  FILLER PIC X(10) VALUE "MADISON   ".
           05  FILLER PIC X(10) VALUE "WILBUR    ".
           05  FILLER PIC X(10) VALUE "TOPEKA    ".
           05  FILLER PIC X(10) VALUE "SEATTLE   ".
           05  FILLER PIC X(10) VALUE "NEW JERSEY".
           05  FILLER PIC X(10) VALUE "FORT WAYNE".
           05  FILLER PIC X(10) VALUE "COLUMBUS  ".
           05  FILLER PIC X(10) VALUE "RICHMOND  ".
           05  FILLER PIC X(10) VALUE "WHITEPLAIN".

         02  DATA-ADDRESS-2 REDEFINES DATA-ADDRESS-2-TBL
                                       PIC X(10) OCCURS 16.
         02  DATA-ADDRESS-3-TBL.

           05  FILLER PIC X(10) VALUE "N.Y.      ".
           05  FILLER PIC X(10) VALUE "GEORGIA   ".
           05  FILLER PIC X(10) VALUE "D.C.      ".
           05  FILLER PIC X(10) VALUE "CANADA    ".
           05  FILLER PIC X(10) VALUE "CANADA    ".
           05  FILLER PIC X(10) VALUE "CALIFORNIA".
           05  FILLER PIC X(10) VALUE "NEW MEXICO".
           05  FILLER PIC X(10) VALUE "WISCONSIN ".
           05  FILLER PIC X(10) VALUE "DELAWARE  ".
           05  FILLER PIC X(10) VALUE "KANSAS    ".
           05  FILLER PIC X(10) VALUE "WASHINGTON".
           05  FILLER PIC X(10) VALUE "N.J.      ".
           05  FILLER PIC X(10) VALUE "COLORADO  ".
           05  FILLER PIC X(10) VALUE "OHIO      ".
           05  FILLER PIC X(10) VALUE "VIRGINIA  ".
           05  FILLER PIC X(10) VALUE "N.Y.      ".

         02  DATA-ADDRESS-3 REDEFINES DATA-ADDRESS-3-TBL
                                       PIC X(10) OCCURS 16.
         02  DATA-TELEPHONE-TBL.

           05  FILLER PIC 9(10) VALUE 3131234432.
           05  FILLER PIC 9(10) VALUE 4082938498.
           05  FILLER PIC 9(10) VALUE 8372487274.
           05  FILLER PIC 9(10) VALUE 4169898509.
           05  FILLER PIC 9(10) VALUE 5292398745.
           05  FILLER PIC 9(10) VALUE 8009329492.
           05  FILLER PIC 9(10) VALUE 6456445643.
           05  FILLER PIC 9(10) VALUE 6546456333.
           05  FILLER PIC 9(10) VALUE 3455445444.
           05  FILLER PIC 9(10) VALUE 6456445643.
           05  FILLER PIC 9(10) VALUE 7456434355.
           05  FILLER PIC 9(10) VALUE 6554456433.
           05  FILLER PIC 9(10) VALUE 4169898509.
           05  FILLER PIC 9(10) VALUE 7534587453.
           05  FILLER PIC 9(10) VALUE 8787458374.
           05  FILLER PIC 9(10) VALUE 4169898509.

         02  DATA-TELEPHONE REDEFINES DATA-TELEPHONE-TBL
                                       PIC 9(10) OCCURS 16.
         02  DATA-DP-MGR-TBL.

           05  FILLER PIC X(20) VALUE "MR. DAVE HARRIS     ".
           05  FILLER PIC X(20) VALUE "MS. JANICE SILCOX   ".
           05  FILLER PIC X(20) VALUE "MR. ALLAN JONES     ".
           05  FILLER PIC X(20) VALUE "MR. PETER MACKAY    ".
           05  FILLER PIC X(20) VALUE "MRS. DONNA BREWER   ".
           05  FILLER PIC X(20) VALUE "MR. MICHAEL SMYTHE  ".
           05  FILLER PIC X(20) VALUE "MR. D.A. MORRISON   ".
           05  FILLER PIC X(20) VALUE "MR. BRIAN PATTERSON ".
           05  FILLER PIC X(20) VALUE "MR. DARRYL TOWNSEND ".
           05  FILLER PIC X(20) VALUE "MS. VALERIE HARPER  ".
           05  FILLER PIC X(20) VALUE "MR. FRED MILLER     ".
           05  FILLER PIC X(20) VALUE "MR. DONALD FISCHER  ".
           05  FILLER PIC X(20) VALUE "MR. STEVEN YOURDIN  ".
           05  FILLER PIC X(20) VALUE "MS. Goldie Hawn     ".
           05  FILLER PIC X(20) VALUE "MS. ALICE WINSTON   ".
           05  FILLER PIC X(20) VALUE "MR. THOMAS JEFFERSON".

         02  DATA-DP-MGR    REDEFINES DATA-DP-MGR-TBL
                                       PIC X(20) OCCURS 16.
         02  DATA-MACHINE-TBL.

           05  FILLER PIC X(8) VALUE "UNI-9030".
           05  FILLER PIC X(8) VALUE "UNI-9040".
           05  FILLER PIC X(8) VALUE "UNI-80/3".
           05  FILLER PIC X(8) VALUE "UNI-80/5".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-9040".
           05  FILLER PIC X(8) VALUE "UNI-9040".

         02  DATA-MACHINE   REDEFINES DATA-MACHINE-TBL
                                       PIC X(8) OCCURS 16.
         02  DATA-NO-TERMINALS-TBL.

           05  FILLER PIC 9(3) COMP-3 VALUE 85.
           05  FILLER PIC 9(3) COMP-3 VALUE 34.
           05  FILLER PIC 9(3) COMP-3 VALUE 75.
           05  FILLER PIC 9(3) COMP-3 VALUE 45.
           05  FILLER PIC 9(3) COMP-3 VALUE 90.
           05  FILLER PIC 9(3) COMP-3 VALUE 107.
           05  FILLER PIC 9(3) COMP-3 VALUE 67.
           05  FILLER PIC 9(3) COMP-3 VALUE 32.
           05  FILLER PIC 9(3) COMP-3 VALUE 16.
           05  FILLER PIC 9(3) COMP-3 VALUE 34.
           05  FILLER PIC 9(3) COMP-3 VALUE 128.
           05  FILLER PIC 9(3) COMP-3 VALUE 64.
           05  FILLER PIC 9(3) COMP-3 VALUE 110.
           05  FILLER PIC 9(3) COMP-3 VALUE 324.
           05  FILLER PIC 9(3) COMP-3 VALUE 124.
           05  FILLER PIC 9(3) COMP-3 VALUE 86.

         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
                                       PIC 9(3) COMP-3 OCCURS 16.

       01  WORK-AREA.
           05  REC-NUM                         PICTURE 9(6) VALUE 0.
           05  REC-MAX                         PICTURE 9(6) VALUE 10.
           05  SUB                             PICTURE 9(4) COMP SYNC.
               88  ODD-RECORD                  VALUE 1 3 5 7 9 10 11.

           05  TSPFL-KEY                       PICTURE X(8).

       PROCEDURE DIVISION.

       MAINFILE.
           OPEN OUTPUT TSPFILE
           CLOSE TSPFILE.

           OPEN I-O TSPFILE
           MOVE '99' TO CUST-STAT
           READ  TSPFILE NEXT RECORD WITH NO LOCK
           IF CUST-STAT NOT = "10"
               DISPLAY "Error " CUST-STAT " on read of empty file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           MOVE LOW-VALUES                     TO TSPFL-RECORD.
           START TSPFILE KEY GREATER THAN CM-CUST-NUM
           IF CUST-STAT NOT = "23"
               DISPLAY "Error " CUST-STAT " starting empty file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           READ  TSPFILE NEXT RECORD WITH NO LOCK
           IF CUST-STAT NOT = "46"
               DISPLAY "Error " CUST-STAT " start/read of empty file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           DISPLAY "OK: Operations on empty file"
           CLOSE TSPFILE.

           PERFORM LOADFILE.
           PERFORM LISTFILE.
           OPEN INPUT TSTFILE
           IF CUST-STAT NOT = "00"
               DISPLAY "Expected ERROR " CUST-STAT
                       " opening TSTFILE, Record size different"
                       UPON CONSOLE
           ELSE
               DISPLAY "Un-Expected open TSTFILE, Record size different"
                       UPON CONSOLE
               CLOSE TSTFILE
           END-IF.
           PERFORM LOADFLAT.
           STOP RUN.

       LOADFILE.
           DISPLAY "Loading sample data file."
                            UPON CONSOLE.

           OPEN OUTPUT TSPFILE
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT
               " opening 'testisam' file" UPON CONSOLE
               STOP RUN
           END-IF.

           PERFORM 1000-LOAD-RECORD
                        VARYING SUB FROM 1 BY 1
                          UNTIL SUB > MAX-SUB.

           DISPLAY "Sample data file load complete."
                            UPON CONSOLE.
           CLOSE TSPFILE.

      *---------------------------------------------------------------*
      *         LOAD A RECORD FROM DATA TABLES                        *
      *---------------------------------------------------------------*

       1000-LOAD-RECORD.

           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
           MOVE CM-CUST-NUM                  TO TSPFL-KEY.
           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
           MOVE DATA-ADDRESS-1     (SUB)     TO CM-ADDRESS-1.
           MOVE DATA-ADDRESS-2     (SUB)     TO CM-ADDRESS-2.
           MOVE DATA-ADDRESS-3     (SUB)     TO CM-ADDRESS-3.
           MOVE DATA-TELEPHONE     (SUB)     TO CM-TELEPHONE.
           MOVE DATA-DP-MGR        (SUB)     TO CM-DP-MGR.
           MOVE DATA-MACHINE       (SUB)     TO CM-MACHINE.
           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.

           IF  ODD-RECORD
               MOVE "8417"                   TO CM-DISK
               MOVE "1600 BPI"               TO CM-TAPE
               MOVE "1MEG"                   TO CM-MEMORY
           ELSE
               MOVE "8470"                   TO CM-DISK
               MOVE "6250 BPI"               TO CM-TAPE
               MOVE "3MEG"                   TO CM-MEMORY.

           WRITE TSPFL-RECORD.
           IF CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Load - Key: " TSPFL-KEY ", Status: " CUST-STAT
                                 UPON CONSOLE.

       LISTFILE.
           DISPLAY "LIST SAMPLE FILE" UPON CONSOLE.
           OPEN INPUT TSTFILE
           MOVE SPACES                       TO TSTFL-RECORD.
           MOVE "PRE00000" TO CM-CUST-NUM.
           START TSTFILE KEY GREATER THAN OR EQUAL TO TS-CUST-NUM
           READ  TSTFILE NEXT RECORD
           READ  TSTFILE NEXT RECORD
           CLOSE TSTFILE.

           MOVE ZERO TO REC-NUM
           OPEN INPUT TSPFILE
           IF CUST-STAT NOT = "00"
               DISPLAY "ERROR " CUST-STAT " OPENING INPUT FILE"
                                             UPON CONSOLE
               STOP RUN
           END-IF.
           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE "PRE00000" TO CM-CUST-NUM.
           START TSPFILE KEY GREATER THAN OR EQUAL TO CM-CUST-NUM
           READ  TSPFILE NEXT RECORD
           READ  TSPFILE NEXT RECORD

           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE "DEL00000" TO CM-CUST-NUM.
           START TSPFILE KEY GREATER THAN CM-CUST-NUM
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " starting file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           READ  TSPFILE NEXT RECORD WITH NO LOCK
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on 1st read of file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           PERFORM UNTIL CUST-STAT NOT = "00"
                      OR REC-NUM > REC-MAX
               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK "."
                         UPON CONSOLE
               READ TSPFILE NEXT RECORD
                    AT END
                        MOVE "99" TO CUST-STAT
                END-READ
                ADD 1 TO REC-NUM
           END-PERFORM
           IF CUST-STAT = "99"
               DISPLAY "Hit End of File" UPON CONSOLE
           END-IF.

           DISPLAY "LIST SAMPLE FILE DESCENDING" UPON CONSOLE.
           MOVE ZERO TO REC-NUM
           START TSPFILE KEY LESS THAN CM-CUST-NUM
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " starting file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           READ  TSPFILE PREVIOUS RECORD WITH NO LOCK
           IF CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on 1st read of file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           PERFORM UNTIL CUST-STAT NOT = "00"
                      OR REC-NUM > REC-MAX
               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK "."
                         UPON CONSOLE
               READ TSPFILE PREVIOUS RECORD
                    AT END
                        MOVE "99" TO CUST-STAT
                END-READ
                ADD 1 TO REC-NUM
           END-PERFORM.

           CLOSE TSPFILE.

           OPEN I-O TSPFILE.
           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
           MOVE 'X'                          TO CM-CUST-NUM (5:1).
           READ TSPFILE KEY IS CM-CUST-NUM
           IF  CUST-STAT NOT = "23"
               DISPLAY "Error " CUST-STAT " instead of 23."
                                UPON CONSOLE
           END-IF.
           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (2)       TO CM-COMPANY.
           READ TSPFILE KEY IS CM-CUST-NUM
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on primary read ."
                                UPON CONSOLE
           ELSE
               DISPLAY "Got: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK "."
                         UPON CONSOLE
           END-IF.
           READ TSPFILE NEXT RECORD
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " on next read"
                                UPON CONSOLE
           ELSE
               DISPLAY "Nxt: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK "."
                         UPON CONSOLE
           END-IF.
           MOVE DATA-TELEPHONE     (7)       TO CM-TELEPHONE.
           MOVE DATA-MACHINE       (7)       TO CM-MACHINE.
           READ TSPFILE KEY IS CM-TELEPHONE
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " instead of 23"
                                UPON CONSOLE
           ELSE
               DISPLAY "Ky2: " CM-CUST-NUM " is " CM-COMPANY
                        " Mach=" CM-MACHINE "."
                         UPON CONSOLE
           END-IF.
           WRITE TSPFL-RECORD
           IF  CUST-STAT NOT = "22"
               DISPLAY "Error " CUST-STAT " instead of 22"
                                UPON CONSOLE
           ELSE
               DISPLAY "  Write: " CM-CUST-NUM " got 22 as expected"
                         UPON CONSOLE
           END-IF.
           MOVE DATA-CUST-NUM      (3)       TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (3)       TO CM-COMPANY.
           READ TSPFILE KEY IS CM-CUST-NUM
           DISPLAY "   Read: " CM-CUST-NUM " got "
                         CUST-STAT " as expected "
                         CM-NO-TERMINALS " terminals"
                         UPON CONSOLE.
           ADD 5 TO CM-NO-TERMINALS
           REWRITE TSPFL-RECORD
           IF  CUST-STAT NOT = "02"
           AND CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " instead of 02"
                                UPON CONSOLE
           ELSE
               DISPLAY "ReWrite: " CM-CUST-NUM " got "
                         "00/02 as expected "
                         CM-NO-TERMINALS " terminals"
                         UPON CONSOLE
           END-IF.
           MOVE DATA-CUST-NUM      (2)       TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (2)       TO CM-COMPANY.
           READ TSPFILE KEY IS CM-CUST-NUM
           DISPLAY "   Read: " CM-CUST-NUM " got "
                         CUST-STAT " as expected "
                         CM-NO-TERMINALS " terminals"
                         UPON CONSOLE.
           MOVE DATA-CUST-NUM      (3)       TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (3)       TO CM-COMPANY.
           REWRITE TSPFL-RECORD
           IF  CUST-STAT NOT = "02"
           AND CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " instead of 02"
                                UPON CONSOLE
           ELSE
               DISPLAY "ReWrite: " CM-CUST-NUM " got "
                       "00/02 as expected"
                         UPON CONSOLE
           END-IF.
           MOVE DATA-CUST-NUM      (6)       TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (6)       TO CM-COMPANY.
           READ TSPFILE KEY IS CM-CUST-NUM
           MOVE DATA-TELEPHONE     (7)       TO CM-TELEPHONE.
           MOVE DATA-MACHINE       (7)       TO CM-MACHINE.
           REWRITE TSPFL-RECORD
           IF  CUST-STAT NOT = "02"
           AND CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " instead of 02"
                                UPON CONSOLE
           ELSE
               DISPLAY "ReWrite: " CM-CUST-NUM " got "
                        "00/02 as expected"
                         UPON CONSOLE
           END-IF.
           DELETE TSPFILE.
           CLOSE TSPFILE.

       LOADFLAT.
           OPEN OUTPUT FLATFILE.
           PERFORM FLAT-RECORD
                        VARYING SUB FROM 1 BY 1
                          UNTIL SUB > MAX-SUB
                             OR SUB > 5.
           CLOSE FLATFILE.
           OPEN INPUT FLATFILE.
           MOVE 3 TO REC-NUM
           READ FLATFILE
           MOVE 999 TO REC-NUM
           READ FLATFILE
           CLOSE FLATFILE.

       FLAT-RECORD.

           MOVE SPACES                       TO TSP2-RECORD.
           MOVE SUB                          TO REC-NUM.
           MOVE DATA-CUST-NUM      (SUB)     TO C2-CUST-NUM.
           MOVE DATA-COMPANY       (SUB)     TO C2-COMPANY.
           MOVE DATA-NO-TERMINALS  (SUB)     TO C2-NO-TERMINALS.
           MOVE 20070319                     TO C2-PK-DATE.
           IF  ODD-RECORD
               MOVE "8417"                   TO C2-DISK
           ELSE
               MOVE "8470"                   TO C2-DISK.
           WRITE TSP2-RECORD.
_ATEOF


cat >cmod.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

static char *txtOpCode(int opCode);

/*********************************************************
 *  TSTFH - External File Handler entry point.
*********************************************************/

COB_EXT_EXPORT int
TSTFH (unsigned char *opCodep, FCD3 *fcd)
{
   unsigned int   opCode;

   if (*opCodep == 0xfa)
      opCode = 0xfa00 + opCodep[1];
   else
      opCode = opCodep[1];

   if (fcd->fileOrg == ORG_LINE_SEQ
    || fcd->fileOrg == ORG_SEQ
    || fcd->fileOrg == ORG_INDEXED
    || fcd->fileOrg == ORG_RELATIVE) {
      switch (opCode) {
      case OP_OPEN_OUTPUT:
      case OP_OPEN_IO:
      case OP_OPEN_EXTEND:
      case OP_OPEN_OUTPUT_NOREWIND:
         return EXTFH(opCodep, fcd);
         break;

      case OP_OPEN_INPUT:
      case OP_OPEN_INPUT_NOREWIND:
      case OP_OPEN_INPUT_REVERSED:
         return EXTFH(opCodep, fcd);
         break;

      default:
         break;
      }

   }

   if (opCode == OP_CLOSE
    && (fcd->openMode & OPEN_NOT_OPEN) ) {
      return 0;
   }

   return EXTFH(opCodep, fcd);
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:7253: \$COMPILE -fcallfh=TSTFH prog.cob cmod.c"
at_fn_check_prepare_dynamic "$COMPILE -fcallfh=TSTFH prog.cob cmod.c" "run_file.at:7253"
( $at_check_trace; $COMPILE -fcallfh=TSTFH prog.cob cmod.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/run_file.at:7253"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:7255: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:7255"
( $at_check_trace; $COBCRUN_DIRECT ./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: Operations on empty file
Loading sample data file.
Sample data file load complete.
LIST SAMPLE FILE
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
LIST SAMPLE FILE DESCENDING
Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=8470    .
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=8470    .
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=8470    .
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=8417    .
Got: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
Nxt: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=8470    .
Ky2: GIB00000 is GIBRALTER LIFE INSURANCE  Mach=UNI-80/6.
  Write: GIB00000 got 22 as expected
   Read: GAM00000 got 00 as expected 00075 terminals
ReWrite: GAM00000 got 00/02 as expected 00080 terminals
   Read: BET00000 got 00 as expected 00034 terminals
ReWrite: GAM00000 got 00/02 as expected
ReWrite: FOR00000 got 00/02 as expected
Expected ERROR 39 opening TSTFILE, Record size different
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:7255"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_792
#AT_START_793
at_fn_group_banner 793 'run_file.at:7298' \
  "EXTFH: SEQUENTIAL files" "                        " 4
at_xfail=no
(
  $as_echo "793. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT FLATFILE ASSIGN EXTERNAL SEQFIX
           ORGANIZATION SEQUENTIAL
           FILE STATUS IS CUST-STAT .

       DATA DIVISION.
       FILE SECTION.
       FD  FLATFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSPFL-RECORD.
           10  CM-CUST-NUM                     PICTURE X(8).
           10  CM-COMPANY                      PICTURE X(25).
           10  CM-DISK                         PICTURE X(8).
           10  CM-NO-TERMINALS                 PICTURE 9(4) COMP-4.
           10  CM-PK-DATE                      PICTURE S9(14) COMP-3.
           10  CM-TRAILER                      PICTURE X(8).

       WORKING-STORAGE SECTION.

       77  MAX-SUB           VALUE  6          PICTURE 9(4) COMP SYNC.
       77  CUST-STAT                           PICTURE X(2).

       01  TEST-DATA.

         02  DATA-CUST-NUM-TBL.

           05  FILLER PIC X(8) VALUE "ALP00000".
           05  FILLER PIC X(8) VALUE "BET00000".
           05  FILLER PIC X(8) VALUE "GAM00000".
           05  FILLER PIC X(8) VALUE "DEL00000".
           05  FILLER PIC X(8) VALUE "EPS00000".
           05  FILLER PIC X(8) VALUE "FOR00000".

         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
                                       PIC X(8) OCCURS 6.
         02  DATA-COMPANY-TBL.

           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
                                       PIC X(25) OCCURS 6.
         02  DATA-ADDRESS-2-TBL.

           05  FILLER PIC X(10) VALUE "NEW YORK  ".
           05  FILLER PIC X(10) VALUE "ATLANTA   ".
           05  FILLER PIC X(10) VALUE "WASHINGTON".
           05  FILLER PIC X(10) VALUE "TORONTO   ".
           05  FILLER PIC X(10) VALUE "CALGARY   ".
           05  FILLER PIC X(10) VALUE "WHITEPLAIN".

         02  DATA-ADDRESS   REDEFINES DATA-ADDRESS-2-TBL
                                       PIC X(10) OCCURS 6.

         02  DATA-NO-TERMINALS-TBL.

           05  FILLER PIC 9(3) COMP-3 VALUE 10.
           05  FILLER PIC 9(3) COMP-3 VALUE 13.
           05  FILLER PIC 9(3) COMP-3 VALUE 75.
           05  FILLER PIC 9(3) COMP-3 VALUE 10.
           05  FILLER PIC 9(3) COMP-3 VALUE 90.
           05  FILLER PIC 9(3) COMP-3 VALUE 254.

         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
                                       PIC 9(3) COMP-3 OCCURS 6.
       01  WORK-AREA.
           05  SUB                             PICTURE 9(4) COMP SYNC.
               88  ODD-RECORD                  VALUE 1 3 5.


       PROCEDURE DIVISION.

           OPEN INPUT FLATFILE.
           DISPLAY "Open Input when no file Sts:" CUST-STAT
           OPEN EXTEND FLATFILE.
           DISPLAY "Open Extend when no file Sts:" CUST-STAT
           CLOSE FLATFILE.
           DISPLAY "Close when no open file Sts:" CUST-STAT
           OPEN OUTPUT FLATFILE.
           CLOSE FLATFILE.
           OPEN EXTEND FLATFILE.
           DISPLAY "Open Extend when empty file Sts:" CUST-STAT
           CLOSE FLATFILE.

           PERFORM LOADFILE.
           OPEN INPUT FLATFILE.
           DISPLAY "Open Sts:" CUST-STAT
           READ FLATFILE
           DISPLAY "Read " CM-CUST-NUM " Sts:" CUST-STAT.
           READ FLATFILE
           DISPLAY "Read " CM-CUST-NUM " Sts:" CUST-STAT.
           CLOSE FLATFILE.

           OPEN I-O FLATFILE.
           READ FLATFILE
           DISPLAY "Read " CM-CUST-NUM " Sts:" CUST-STAT.
           ADD 1 TO CM-NO-TERMINALS
           REWRITE TSPFL-RECORD
           DISPLAY "REWRITE " CM-CUST-NUM " Sts " CUST-STAT
                   " Trms:" CM-NO-TERMINALS.
           CLOSE FLATFILE.

           OPEN I-O FLATFILE.
           READ FLATFILE
           DISPLAY "Read " CM-CUST-NUM " Sts:" CUST-STAT.
           ADD 1 TO CM-NO-TERMINALS
           REWRITE TSPFL-RECORD
           DISPLAY "REWRITE " CM-CUST-NUM " Sts " CUST-STAT
                   " Trms:" CM-NO-TERMINALS.
           READ FLATFILE WITH LOCK
           DISPLAY "Read " CM-CUST-NUM
      *    DELETE FLATFILE
      *    DISPLAY "DELETE " CM-CUST-NUM " Sts " CUST-STAT.
           CLOSE FLATFILE.
           OPEN INPUT FLATFILE.
           DISPLAY "Re-list File Open Sts:" CUST-STAT
           PERFORM UNTIL CUST-STAT NOT = "00"
               PERFORM READ-RECORD
           END-PERFORM.
           CLOSE FLATFILE.
           OPEN EXTEND FLATFILE.
           MOVE 2 TO SUB
           PERFORM LOAD-RECORD
           CLOSE FLATFILE.
           OPEN INPUT FLATFILE.
           DISPLAY "List File afer EXTEND Open Sts:" CUST-STAT
           PERFORM UNTIL CUST-STAT NOT = "00"
               PERFORM READ-RECORD
           END-PERFORM.
           CLOSE FLATFILE.
           STOP RUN RETURNING 0.

       READ-RECORD.
           MOVE SPACES                       TO TSPFL-RECORD.
           READ FLATFILE
           IF CUST-STAT NOT = "00"
             DISPLAY "Read Status: " CUST-STAT
           ELSE
             DISPLAY "Read  " CM-CUST-NUM
                     " Trms:" CM-NO-TERMINALS
           END-IF.

       LOADFILE.
           DISPLAY "Loading sample data file.".

           OPEN OUTPUT FLATFILE.

           PERFORM LOAD-RECORD
                        VARYING SUB FROM 1 BY 1
                          UNTIL SUB > MAX-SUB.

           DISPLAY "Sample data file load complete.".
           CLOSE FLATFILE.

       LOAD-RECORD.

           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.
           MOVE 20070319                     TO CM-PK-DATE.
           IF SUB = 1 OR 4 OR 6
               MOVE -20070319                 TO CM-PK-DATE.

           IF  ODD-RECORD
               MOVE "8417"                   TO CM-DISK
           ELSE
               MOVE "8470"                   TO CM-DISK.
           WRITE TSPFL-RECORD.
_ATEOF


cat >cmod.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

static char *txtOpCode(int opCode);

static int
doOpenFile(
   unsigned char  *opCodep,
   FCD3  *fcd,
   char  *opmsg)
{
   int      sts;

   sts = EXTFH( opCodep, fcd );
   printf("EXFTH did %s; Status=%c%c; File now %s\n",
       opmsg, fcd->fileStatus[0], fcd->fileStatus[1],
       (fcd->openMode & OPEN_NOT_OPEN) ? "Closed" : "Open");
   return sts;
}

/*********************************************************
 *  TSTFH - External File Handler entry point.
*********************************************************/

COB_EXT_EXPORT int
TSTFH (unsigned char *opCodep, FCD3 *fcd)
{
   unsigned int   opCode;
   int      sts;

   if (*opCodep == 0xfa)
      opCode = 0xfa00 + opCodep[1];
   else
      opCode = opCodep[1];

   if (fcd->fileOrg == ORG_LINE_SEQ
    || fcd->fileOrg == ORG_SEQ
    || fcd->fileOrg == ORG_INDEXED
    || fcd->fileOrg == ORG_RELATIVE) {
      switch (opCode) {
      case OP_OPEN_OUTPUT:
      case OP_OPEN_IO:
      case OP_OPEN_EXTEND:
      case OP_OPEN_OUTPUT_NOREWIND:
         return doOpenFile( opCodep, fcd, txtOpCode(opCode));
         break;

      case OP_OPEN_INPUT:
      case OP_OPEN_INPUT_NOREWIND:
      case OP_OPEN_INPUT_REVERSED:
         return doOpenFile( opCodep, fcd, txtOpCode(opCode));
         break;

      case OP_CLOSE:
         return doOpenFile( opCodep, fcd, txtOpCode(opCode));
         break;

      default:
         break;
      }

   }

   if (opCode == OP_CLOSE
    && (fcd->openMode & OPEN_NOT_OPEN) ) {
      return 0;
   }

   sts = EXTFH(opCodep, fcd);
   printf("EXFTH did %s; Status=%c%c\n", txtOpCode(opCode),
       fcd->fileStatus[0], fcd->fileStatus[1]);
   return sts;
}

static char *           /* Return Text name of function */
txtOpCode(int opCode)
{
   static char tmp[32];
   switch (opCode) {
   case OP_OPEN_INPUT:     return "OPEN_IN";
   case OP_OPEN_OUTPUT:       return "OPEN_OUT";
   case OP_OPEN_IO:     return "OPEN_IO";
   case OP_OPEN_EXTEND:       return "OPEN_EXT";
   case OP_OPEN_INPUT_NOREWIND:  return "OPEN_IN_NOREW";
   case OP_OPEN_OUTPUT_NOREWIND: return "OPEN_OUT_NOREW";
   case OP_OPEN_INPUT_REVERSED:  return "OPEN_IN_REV";
   case OP_CLOSE:          return "CLOSE";
   case OP_CLOSE_LOCK:     return "CLOSE_LOCK";
   case OP_CLOSE_NOREWIND:    return "CLOSE_NORED";
   case OP_CLOSE_REEL:     return "CLOSE_REEL";
   case OP_CLOSE_REMOVE:      return "CLOSE_REMOVE";
   case OP_CLOSE_NO_REWIND:   return "CLOSE_NO_REW";
   case OP_START_EQ:       return "START_EQ";
   case OP_START_EQ_ANY:      return "START_EQ_ANY";
   case OP_START_GT:       return "START_GT";
   case OP_START_GE:       return "START_GE";
   case OP_START_LT:       return "START_LT";
   case OP_START_LE:       return "START_LE";
   case OP_READ_SEQ_NO_LOCK:  return "READ_SEQ_NO_LK";
   case OP_READ_SEQ:       return "READ_SEQ";
   case OP_READ_SEQ_LOCK:     return "READ_SEQ_LK";
   case OP_READ_SEQ_KEPT_LOCK:   return "READ_SEQ_KEPT_LK";
   case OP_READ_PREV_NO_LOCK:    return "READ_PREV_NO_LK";
   case OP_READ_PREV:      return "READ_PREV";
   case OP_READ_PREV_LOCK:    return "READ_PREV_LK";
   case OP_READ_PREV_KEPT_LOCK:  return "READ_PREV_KEPT_LK";
   case OP_READ_RAN:       return "READ_RAN";
   case OP_READ_RAN_NO_LOCK:  return "READ_RAN_NO_LK";
   case OP_READ_RAN_KEPT_LOCK:   return "READ_RAN_KEPT_LK";
   case OP_READ_RAN_LOCK:     return "READ_RAN_LK";
   case OP_READ_DIR:       return "READ_DIR";
   case OP_READ_DIR_NO_LOCK:  return "READ_DIR_NO_LK";
   case OP_READ_DIR_KEPT_LOCK:   return "READ_DIR_KEPT_LK";
   case OP_READ_DIR_LOCK:     return "READ_DIR_LK";
   case OP_READ_POSITION:     return "READ_POSITION";
   case OP_WRITE:          return "WRITE";
   case OP_REWRITE:     return "REWRITE";
   case OP_DELETE:      return "DELETE";
   case OP_DELETE_FILE:       return "DELETE_FILE";
   case OP_UNLOCK:      return "UNLOCK";
   case OP_ROLLBACK:       return "ROLLBACK";
   case OP_COMMIT:      return "COMMIT";
   case OP_WRITE_BEFORE:      return "WRITE_BEFORE";
   case OP_WRITE_BEFORE_TAB:  return "WRITE_BEFORE_TAB";
   case OP_WRITE_BEFORE_PAGE:    return "WRITE_BEFORE_PAGE";
   case OP_WRITE_AFTER:       return "WRITE_AFTER";
   case OP_WRITE_AFTER_TAB:   return "WRITE_AFTER_TAB";
   case OP_WRITE_AFTER_PAGE:  return "WRITE_AFTER_PAGE";
   }
   sprintf(tmp, "Func 0x%02X:", opCode);
   return tmp;
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:7619: \$COMPILE -fcallfh=TSTFH prog.cob cmod.c"
at_fn_check_prepare_dynamic "$COMPILE -fcallfh=TSTFH prog.cob cmod.c" "run_file.at:7619"
( $at_check_trace; $COMPILE -fcallfh=TSTFH prog.cob cmod.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/run_file.at:7619"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:7621: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:7621"
( $at_check_trace; $COBCRUN_DIRECT ./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 "EXFTH did OPEN_IN; Status=35; File now Closed
Open Input when no file Sts:35
EXFTH did OPEN_EXT; Status=35; File now Closed
Open Extend when no file Sts:35
EXFTH did CLOSE; Status=42; File now Closed
Close when no open file Sts:42
EXFTH did OPEN_OUT; Status=00; File now Open
EXFTH did CLOSE; Status=00; File now Closed
EXFTH did OPEN_EXT; Status=00; File now Open
Open Extend when empty file Sts:00
EXFTH did CLOSE; Status=00; File now Closed
Loading sample data file.
EXFTH did OPEN_OUT; Status=00; File now Open
EXFTH did WRITE; Status=00
EXFTH did WRITE; Status=00
EXFTH did WRITE; Status=00
EXFTH did WRITE; Status=00
EXFTH did WRITE; Status=00
EXFTH did WRITE; Status=00
Sample data file load complete.
EXFTH did CLOSE; Status=00; File now Closed
EXFTH did OPEN_IN; Status=00; File now Open
Open Sts:00
EXFTH did READ_SEQ; Status=00
Read ALP00000 Sts:00
EXFTH did READ_SEQ; Status=00
Read BET00000 Sts:00
EXFTH did CLOSE; Status=00; File now Closed
EXFTH did OPEN_IO; Status=00; File now Open
EXFTH did READ_SEQ; Status=00
Read ALP00000 Sts:00
EXFTH did REWRITE; Status=00
REWRITE ALP00000 Sts 00 Trms:0011
EXFTH did CLOSE; Status=00; File now Closed
EXFTH did OPEN_IO; Status=00; File now Open
EXFTH did READ_SEQ; Status=00
Read ALP00000 Sts:00
EXFTH did REWRITE; Status=00
REWRITE ALP00000 Sts 00 Trms:0012
EXFTH did READ_SEQ; Status=00
Read BET00000
EXFTH did CLOSE; Status=00; File now Closed
EXFTH did OPEN_IN; Status=00; File now Open
Re-list File Open Sts:00
EXFTH did READ_SEQ; Status=00
Read  ALP00000 Trms:0012
EXFTH did READ_SEQ; Status=00
Read  BET00000 Trms:0013
EXFTH did READ_SEQ; Status=00
Read  GAM00000 Trms:0075
EXFTH did READ_SEQ; Status=00
Read  DEL00000 Trms:0010
EXFTH did READ_SEQ; Status=00
Read  EPS00000 Trms:0090
EXFTH did READ_SEQ; Status=00
Read  FOR00000 Trms:0254
EXFTH did READ_SEQ; Status=10
Read Status: 10
EXFTH did CLOSE; Status=00; File now Closed
EXFTH did OPEN_EXT; Status=00; File now Open
EXFTH did WRITE; Status=00
EXFTH did CLOSE; Status=00; File now Closed
EXFTH did OPEN_IN; Status=00; File now Open
List File afer EXTEND Open Sts:00
EXFTH did READ_SEQ; Status=00
Read  ALP00000 Trms:0012
EXFTH did READ_SEQ; Status=00
Read  BET00000 Trms:0013
EXFTH did READ_SEQ; Status=00
Read  GAM00000 Trms:0075
EXFTH did READ_SEQ; Status=00
Read  DEL00000 Trms:0010
EXFTH did READ_SEQ; Status=00
Read  EPS00000 Trms:0090
EXFTH did READ_SEQ; Status=00
Read  FOR00000 Trms:0254
EXFTH did READ_SEQ; Status=00
Read  BET00000 Trms:0013
EXFTH did READ_SEQ; Status=10
Read Status: 10
EXFTH did CLOSE; Status=00; File now Closed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:7621"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_793
#AT_START_794
at_fn_group_banner 794 'run_file.at:7708' \
  "EXTFH: LINE SEQUENTIAL files, direct EXTFH" "     " 4
at_xfail=no
(
  $as_echo "794. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       DATA DIVISION.
       FILE SECTION.
       WORKING-STORAGE SECTION.

       01  I                       PIC XX COMP-X.

       01  WS-FCD-DDNAME           PIC X(8) VALUE SPACES.
       01  WS-FCD-PTR              POINTER   VALUE NULL.

       01  WS-FCD-SIZE             PIC 9(04) VALUE   0       COMP-5.
       01  WS-FCD-FLAGS            PIC 9(04) VALUE   0       COMP-5.

       01  DISPLAY-BYTE.
          05  DISPLAY-XXX             PIC X(03).
          05  DISPLAY-ZZ9             REDEFINES DISPLAY-XXX
                                      PIC ZZ9.
       01  ACTION-CODE                 pic x(2).
          78  OP-OPEN-INPUT           value x"fa00".
          78  OP-OPEN-OUTPUT          value x"fa01".
          78  OP-OPEN-I-O             value x"fa02".
          78  OP-WRITE                value x"faf3".
          78  OP-RELEASE              value x"faf3".
          78  OP-REWRITE              value x"faf4".
          78  OP-READ-NEXT            value x"faf5".
          78  OP-START-EQUAL          value x"fae9".
          78  OP-CLOSE                value x"fa80".
          78  OP-QUERY-FILE           value x"0006".

       01  ACTION-CODE-WORK            redefines ACTION-CODE.
          05  ACTION-CODE-1           PIC x(01)                 COMP-X.
          05  ACTION-CODE-2           PIC x(01)                 COMP-X.

       01  DISPLAY-A1-XXX              PIC X(03).
       01  DISPLAY-A1-ZZ9              REDEFINES DISPLAY-A1-XXX
                                      PIC ZZ9.
       01  DISPLAY-A2-XXX              PIC X(03).
       01  DISPLAY-A2-ZZ9              REDEFINES DISPLAY-A2-XXX
                                       PIC ZZ9.

       01  FCD-FILENAME               PIC X(80) value "test.out".
       01  FCD-RECORD                 PIC X(512) value spaces.

       LINKAGE SECTION.

       01  FCD-MAP.
           copy 'xfhfcd3.cpy'.

      *================================================================*
       PROCEDURE DIVISION.
      *----------------------------------------------------------------*
       000-MAIN.

          PERFORM 100-OPEN.

          PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
            MOVE I TO DISPLAY-A1-ZZ9
            MOVE DISPLAY-A1-ZZ9 TO FCD-RECORD
            PERFORM 300-WRITE
          END-PERFORM.

          PERFORM 400-CLOSE.
          STOP RUN.

      *----------------------------------------------------------------*
      *    Process the open request
      *
       100-OPEN.

          MOVE "TESTOUT" TO WS-FCD-DDNAME

          MOVE LENGTH OF FCD-MAP TO WS-FCD-SIZE
          DISPLAY "FCD SIZE " WS-FCD-SIZE.

          IF WS-FCD-PTR EQUAL NULL
             ALLOCATE ws-fcd-size characters
                                  returning WS-FCD-PTR

             SET  ADDRESS OF FCD-MAP  TO WS-FCD-PTR
             MOVE LOW-VALUES          TO FCD-MAP
             MOVE WS-FCD-SIZE         TO FCD-LENGTH
             move fcd--version-number TO FCD-VERSION
             MOVE "00"                TO FCD-FILE-STATUS
             move fcd--status-defined to FCD-ACCESS-MODE
             move fcd--open-closed    to FCD-OPEN-MODE
             move fcd--external-name  to FCD-OTHER-FLAGS
             SET  FCD-HANDLE          TO NULL
             MOVE 8                   TO FCD-NAME-LENGTH
             SET  FCD-FILENAME-ADDRESS TO ADDRESS
                                       OF WS-FCD-DDNAME
             SET  FCD-KEY-DEF-ADDRESS TO NULL
             move fcd--allow-readers  to FCD-LOCKTYPES
          ELSE
             SET  ADDRESS OF FCD-MAP  TO WS-FCD-PTR
             IF FCD-OPEN-MODE NOT = fcd--open-closed
                DISPLAY "ERRROR - FILE ALREADY OPEN"
                STOP RUN
             END-IF
          END-IF

          move fcd--line-sequential-org to FCD-ORGANIZATION
          move fcd--recmode-fixed       to FCD-RECORDING-MODE
          move 10 to FCD-MIN-REC-LENGTH, FCD-MAX-REC-LENGTH
          SET  FCD-RECORD-ADDRESS     TO ADDRESS OF FCD-RECORD

      * Move fcd--cr-delimiter for CR LF after each record
      *   move fcd--cr-delimiter        to FCD-STATUS-TYPE

          move op-open-output to action-code

          PERFORM 800-CALL-EXTFH
          .

      *----------------------------------------------------------------*
      *    Process the write request
      *
       300-WRITE.

          move 10 to FCD-CURRENT-REC-LEN
          move op-write to action-code
          PERFORM 800-CALL-EXTFH
          .
      *----------------------------------------------------------------*
      *    Process the close request
      *
       400-CLOSE.
          MOVE "00"                   TO FCD-FILE-STATUS
          move op-close               to action-code
          PERFORM 800-CALL-EXTFH
          .
      *----------------------------------------------------------------*
      *    External file handler interface -- all I/O goes through here
      *
        800-CALL-EXTFH.

            CALL "EXTFH" USING ACTION-CODE, FCD-MAP

            IF FCD-STATUS-KEY-1 = "9" AND FCD-BINARY = 199
               MOVE "10" TO FCD-FILE-STATUS
            END-IF
            .
_ATEOF


# FIXME: by default comp-x should not be truncated (see rw-branch)
{ set +x
$as_echo "$at_srcdir/run_file.at:7861: \$COMPILE -fnotrun prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fnotrun prog.cob" "run_file.at:7861"
( $at_check_trace; $COMPILE -fnotrun 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/run_file.at:7861"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:7863: TESTOUT=TEST-OUT \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "TESTOUT=TEST-OUT $COBCRUN_DIRECT ./prog" "run_file.at:7863"
( $at_check_trace; TESTOUT=TEST-OUT $COBCRUN_DIRECT ./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 "FCD SIZE 00216
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:7863"
$at_failed && at_fn_log_failure
$at_traceon; }





# note: currently with the same behaviour as MF
#       (ignoring minimal record length for line-sequential)
#       this may change in the future...
cat >reference <<'_ATEOF'
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:7885: diff reference TEST-OUT"
at_fn_check_prepare_trace "run_file.at:7885"
( $at_check_trace; diff reference TEST-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/run_file.at:7885"
$at_failed && at_fn_log_failure  \
"./TEST-OUT"
$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_794
#AT_START_795
at_fn_group_banner 795 'run_file.at:7890' \
  "INDEXED File READ/DELETE/READ" "                  " 4
at_xfail=no
(
  $as_echo "795. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_file.at:7893" >"$at_check_line_file"
(test "$COB_HAS_ISAM" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_file.at:7893"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.

       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT TSPFILE
           ASSIGN TO EXTERNAL TSPFILE
           ORGANIZATION INDEXED ACCESS DYNAMIC
           RECORD KEY IS CM-CUST-NUM

           ALTERNATE RECORD KEY IS SPLIT-KEY2
           SOURCE IS CM-TELEPHONE WITH DUPLICATES

           ALTERNATE RECORD KEY IS SPLIT-KEY3
           SOURCE IS CM-DISK,CM-TAPE WITH DUPLICATES
      *         SUPPRESS WHEN ALL "*"
           FILE STATUS IS CUST-STAT
           .

       DATA  DIVISION.
       FILE SECTION.
       FD  TSPFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSPFL-RECORD.
           05  TSPFL-REC.
           10  CM-CUST-NUM.
             15  CM-CUST-PRE                   PICTURE X(3).
             15  CM-CUST-NNN                   PICTURE X(5).
           10  CM-STATUS                       PICTURE X.
           10  CM-COMPANY                      PICTURE X(25).
           10  CM-ADDRESS-1                    PICTURE X(25).
           10  CM-ADDRESS-2                    PICTURE X(25).
           10  CM-ADDRESS-3                    PICTURE X(25).
           10  CM-TELEPHONE                    PICTURE 9(10).
           10  CM-DP-MGR                       PICTURE X(25).
           10  CM-MACHINE                      PICTURE X(8).
           10  CM-MEMORY                       PICTURE X(4).
           10  CM-DISK                         PICTURE X(8).
           10  CM-TAPE                         PICTURE X(8).
           10  CM-NO-TERMINALS                 PICTURE 9(5).

       WORKING-STORAGE SECTION.

       01  CUST-STAT.
           05  STAT-1 PICTURE 9(4) COMP SYNC.
           05  FILLER REDEFINES STAT-1.
               10  STAT-X1 PIC X COMP-X.
               10  STAT-X2 PIC X COMP-X.
       77  DATA-STAT                      PICTURE XX.
       77  ISAM-STAT                      PICTURE XX.
       77  BYTE-1  PICTURE 9(3).
       77  BYTE-2  PICTURE 9(3).
       77  MAX-SUB           VALUE  16         PICTURE 9(5) COMP SYNC.
       77  SAV-KEY   PIC X(8).

       01  TEST-DATA.

         02  DATA-CUST-NUM-TBL.

           05  FILLER PIC X(8) VALUE "ALP00000".
           05  FILLER PIC X(8) VALUE "BET00000".
           05  FILLER PIC X(8) VALUE "GAM00000".
           05  FILLER PIC X(8) VALUE "DEL00000".
           05  FILLER PIC X(8) VALUE "EPS00000".
           05  FILLER PIC X(8) VALUE "FOR00000".
           05  FILLER PIC X(8) VALUE "GIB00000".
           05  FILLER PIC X(8) VALUE "H&J00000".
           05  FILLER PIC X(8) VALUE "INC00000".
           05  FILLER PIC X(8) VALUE "JOH00000".
           05  FILLER PIC X(8) VALUE "KON00000".
           05  FILLER PIC X(8) VALUE "LEW00000".
           05  FILLER PIC X(8) VALUE "MOR00000".
           05  FILLER PIC X(8) VALUE "NEW00000".
           05  FILLER PIC X(8) VALUE "OLD00000".
           05  FILLER PIC X(8) VALUE "PRE00000".

         02  DATA-CUST-NUM REDEFINES DATA-CUST-NUM-TBL
                                       PIC X(8) OCCURS 16.
         02  DATA-COMPANY-TBL.

           05  FILLER PIC X(25) VALUE "ALPHA ELECTRICAL CO. LTD.".
           05  FILLER PIC X(25) VALUE "BETA SHOE MFG. INC.      ".
           05  FILLER PIC X(25) VALUE "GAMMA X-RAY TECHNOLOGY   ".
           05  FILLER PIC X(25) VALUE "DELTA LUGGAGE REPAIRS    ".
           05  FILLER PIC X(25) VALUE "EPSILON EQUIPMENT SUPPLY ".
           05  FILLER PIC X(25) VALUE "FORTUNE COOKIE COMPANY   ".
           05  FILLER PIC X(25) VALUE "GIBRALTER LIFE INSURANCE ".
           05  FILLER PIC X(25) VALUE "H & J PLUMBING SUPPLIES  ".
           05  FILLER PIC X(25) VALUE "INCREMENTAL BACKUP CORP. ".
           05  FILLER PIC X(25) VALUE "JOHNSON BOATING SUPPLIES ".
           05  FILLER PIC X(25) VALUE "KONFLAB PLASTIC PRODUCTS.".
           05  FILLER PIC X(25) VALUE "LEWISTON GRAPHICS LTD.   ".
           05  FILLER PIC X(25) VALUE "MORNINGSIDE CARPENTRY.   ".
           05  FILLER PIC X(25) VALUE "NEW WAVE SURF SHOPS INC. ".
           05  FILLER PIC X(25) VALUE "OLD TYME PIZZA MFG. CO.  ".
           05  FILLER PIC X(25) VALUE "PRESTIGE OFFICE FURNITURE".

         02  DATA-COMPANY  REDEFINES DATA-COMPANY-TBL
                                       PIC X(25) OCCURS 16.
         02  DATA-ADDRESS-1-TBL.

           05  FILLER PIC X(25) VALUE "123 MAIN STREET          ".
           05  FILLER PIC X(25) VALUE "1090 2ND AVE. WEST       ".
           05  FILLER PIC X(25) VALUE "1401 JEFFERSON BLVD.     ".
           05  FILLER PIC X(25) VALUE "1620 ARIZONA WAY         ".
           05  FILLER PIC X(25) VALUE "1184 EAST FIRST STREET   ".
           05  FILLER PIC X(25) VALUE "114 JOHN F. KENNEDY AVE. ".
           05  FILLER PIC X(25) VALUE "650 LIBERTY CRESCENT     ".
           05  FILLER PIC X(25) VALUE "77 SUNSET BLVD.          ".
           05  FILLER PIC X(25) VALUE "10908 SANTA MONICA BLVD. ".
           05  FILLER PIC X(25) VALUE "1134 PARIS ROAD          ".
           05  FILLER PIC X(25) VALUE "808 NORTHWEST MAIN ST.   ".
           05  FILLER PIC X(25) VALUE "9904 QUEEN STREET        ".
           05  FILLER PIC X(25) VALUE "1709 DUNDAS CRESCENT W.  ".
           05  FILLER PIC X(25) VALUE "3240 MARIS AVENUE        ".
           05  FILLER PIC X(25) VALUE "1705 WISCONSIN ROAD      ".
           05  FILLER PIC X(25) VALUE "114A MAPLE GROVE         ".

         02  DATA-ADDRESS-1 REDEFINES DATA-ADDRESS-1-TBL
                                       PIC X(25) OCCURS 16.
         02  DATA-ADDRESS-2-TBL.

           05  FILLER PIC X(10) VALUE "NEW YORK  ".
           05  FILLER PIC X(10) VALUE "ATLANTA   ".
           05  FILLER PIC X(10) VALUE "WASHINGTON".
           05  FILLER PIC X(10) VALUE "TORONTO   ".
           05  FILLER PIC X(10) VALUE "CALGARY   ".
           05  FILLER PIC X(10) VALUE "SAN DIEGO ".
           05  FILLER PIC X(10) VALUE "LOS RIOS  ".
           05  FILLER PIC X(10) VALUE "MADISON   ".
           05  FILLER PIC X(10) VALUE "WILBUR    ".
           05  FILLER PIC X(10) VALUE "TOPEKA    ".
           05  FILLER PIC X(10) VALUE "SEATTLE   ".
           05  FILLER PIC X(10) VALUE "NEW JERSEY".
           05  FILLER PIC X(10) VALUE "FORT WAYNE".
           05  FILLER PIC X(10) VALUE "COLUMBUS  ".
           05  FILLER PIC X(10) VALUE "RICHMOND  ".
           05  FILLER PIC X(10) VALUE "WHITEPLAIN".

         02  DATA-ADDRESS-2 REDEFINES DATA-ADDRESS-2-TBL
                                       PIC X(10) OCCURS 16.
         02  DATA-ADDRESS-3-TBL.

           05  FILLER PIC X(10) VALUE "N.Y.      ".
           05  FILLER PIC X(10) VALUE "GEORGIA   ".
           05  FILLER PIC X(10) VALUE "D.C.      ".
           05  FILLER PIC X(10) VALUE "CANADA    ".
           05  FILLER PIC X(10) VALUE "CANADA    ".
           05  FILLER PIC X(10) VALUE "CALIFORNIA".
           05  FILLER PIC X(10) VALUE "NEW MEXICO".
           05  FILLER PIC X(10) VALUE "WISCONSIN ".
           05  FILLER PIC X(10) VALUE "DELAWARE  ".
           05  FILLER PIC X(10) VALUE "KANSAS    ".
           05  FILLER PIC X(10) VALUE "WASHINGTON".
           05  FILLER PIC X(10) VALUE "N.J.      ".
           05  FILLER PIC X(10) VALUE "COLORADO  ".
           05  FILLER PIC X(10) VALUE "OHIO      ".
           05  FILLER PIC X(10) VALUE "VIRGINIA  ".
           05  FILLER PIC X(10) VALUE "N.Y.      ".

         02  DATA-ADDRESS-3 REDEFINES DATA-ADDRESS-3-TBL
                                       PIC X(10) OCCURS 16.
         02  DATA-TELEPHONE-TBL.

           05  FILLER PIC 9(10) VALUE 3131234432.
           05  FILLER PIC 9(10) VALUE 4169898509.
           05  FILLER PIC 9(10) VALUE 8372487274.
           05  FILLER PIC 9(10) VALUE 4169898509.
           05  FILLER PIC 9(10) VALUE 5292398745.
           05  FILLER PIC 9(10) VALUE 8009329492.
           05  FILLER PIC 9(10) VALUE 6456445643.
           05  FILLER PIC 9(10) VALUE 6546456333.
           05  FILLER PIC 9(10) VALUE 3455445444.
           05  FILLER PIC 9(10) VALUE 6456445643.
           05  FILLER PIC 9(10) VALUE 7456434355.
           05  FILLER PIC 9(10) VALUE 6554456433.
           05  FILLER PIC 9(10) VALUE 4169898509.
           05  FILLER PIC 9(10) VALUE 7534587453.
           05  FILLER PIC 9(10) VALUE 8787458374.
           05  FILLER PIC 9(10) VALUE 4169898509.

         02  DATA-TELEPHONE REDEFINES DATA-TELEPHONE-TBL
                                       PIC 9(10) OCCURS 16.
         02  DATA-DP-MGR-TBL.

           05  FILLER PIC X(20) VALUE "MR. DAVE HARRIS     ".
           05  FILLER PIC X(20) VALUE "MS. JANICE SILCOX   ".
           05  FILLER PIC X(20) VALUE "MR. ALLAN JONES     ".
           05  FILLER PIC X(20) VALUE "MR. PETER MACKAY    ".
           05  FILLER PIC X(20) VALUE "MRS. DONNA BREWER   ".
           05  FILLER PIC X(20) VALUE "MR. MICHAEL SMYTHE  ".
           05  FILLER PIC X(20) VALUE "MR. D.A. MORRISON   ".
           05  FILLER PIC X(20) VALUE "MR. BRIAN PATTERSON ".
           05  FILLER PIC X(20) VALUE "MR. DARRYL TOWNSEND ".
           05  FILLER PIC X(20) VALUE "MS. VALERIE HARPER  ".
           05  FILLER PIC X(20) VALUE "MR. FRED MILLER     ".
           05  FILLER PIC X(20) VALUE "MR. DONALD FISCHER  ".
           05  FILLER PIC X(20) VALUE "MR. STEVEN YOURDIN  ".
           05  FILLER PIC X(20) VALUE "MS. Goldie Hawn     ".
           05  FILLER PIC X(20) VALUE "MS. ALICE WINSTON   ".
           05  FILLER PIC X(20) VALUE "MR. THOMAS JEFFERSON".

         02  DATA-DP-MGR    REDEFINES DATA-DP-MGR-TBL
                                       PIC X(20) OCCURS 16.
         02  DATA-MACHINE-TBL.

           05  FILLER PIC X(8) VALUE "UNI-9030".
           05  FILLER PIC X(8) VALUE "UNI-9040".
           05  FILLER PIC X(8) VALUE "UNI-80/3".
           05  FILLER PIC X(8) VALUE "UNI-80/5".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/6".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-80/8".
           05  FILLER PIC X(8) VALUE "UNI-9040".
           05  FILLER PIC X(8) VALUE "UNI-9040".

         02  DATA-MACHINE   REDEFINES DATA-MACHINE-TBL
                                       PIC X(8) OCCURS 16.
         02  DATA-NO-TERMINALS-TBL.

           05  FILLER PIC 9(3) COMP-3 VALUE 85.
           05  FILLER PIC 9(3) COMP-3 VALUE 34.
           05  FILLER PIC 9(3) COMP-3 VALUE 75.
           05  FILLER PIC 9(3) COMP-3 VALUE 45.
           05  FILLER PIC 9(3) COMP-3 VALUE 90.
           05  FILLER PIC 9(3) COMP-3 VALUE 107.
           05  FILLER PIC 9(3) COMP-3 VALUE 67.
           05  FILLER PIC 9(3) COMP-3 VALUE 32.
           05  FILLER PIC 9(3) COMP-3 VALUE 16.
           05  FILLER PIC 9(3) COMP-3 VALUE 34.
           05  FILLER PIC 9(3) COMP-3 VALUE 128.
           05  FILLER PIC 9(3) COMP-3 VALUE 64.
           05  FILLER PIC 9(3) COMP-3 VALUE 110.
           05  FILLER PIC 9(3) COMP-3 VALUE 324.
           05  FILLER PIC 9(3) COMP-3 VALUE 124.
           05  FILLER PIC 9(3) COMP-3 VALUE 86.

         02  DATA-NO-TERMINALS REDEFINES DATA-NO-TERMINALS-TBL
                                       PIC 9(3) COMP-3 OCCURS 16.

       01  WORK-AREA.
           05  REC-NUM                PICTURE 9(8) COMP VALUE 0.
           05  REC-COUNT              PICTURE 9(8) COMP VALUE 0.
           05  REC-MAX                PICTURE 9(6) VALUE 16.
           05  SUB                    PICTURE 9(4) COMP SYNC.
               88  ODD-RECORD         VALUE 1 3 5 7 9 10 11.
               88  NULL-KEY           VALUE 4 5 8 12 14.

           05  TSPFL-KEY              PICTURE X(8).

       PROCEDURE DIVISION.

       MAINFILE.
           DISPLAY "Loading sample data file."
                            UPON CONSOLE.
           PERFORM LOADFILE.
           DISPLAY "Sample data file load complete."
                            UPON CONSOLE.
           PERFORM LIST-FILE.
           PERFORM LIST-PHONE.
           PERFORM DELSEQ-FILE.
           PERFORM LIST-PHONE.
           PERFORM LOADFILE.
           PERFORM LIST-PHONE.
           PERFORM DELPRV-FILE.
           PERFORM LIST-PHONE.
      *    PERFORM DEL-FILE.
           STOP RUN.

       LOADFILE.
           OPEN OUTPUT TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "05"
               DIVIDE STAT-1 BY 256 GIVING BYTE-1 REMAINDER BYTE-2
               DISPLAY "Error " CUST-STAT " " BYTE-1 " " BYTE-2
               " opening 'testisam' file"
                                UPON CONSOLE
               STOP RUN
           END-IF.

           PERFORM 1000-LOAD-RECORD
                        VARYING SUB FROM 1 BY 1
                          UNTIL SUB > MAX-SUB.

           CLOSE TSPFILE.

       DEL-FILE.
           DISPLAY "Rewrite sample data file: " CUST-STAT
                            UPON CONSOLE.

           OPEN I-O TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "05"
               DIVIDE STAT-1 BY 256 GIVING BYTE-1 REMAINDER BYTE-2
               DISPLAY "Error " CUST-STAT " " BYTE-1 " " BYTE-2
               " opening 'testisam' file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           MOVE "DEL00000" TO CM-CUST-NUM
           READ TSPFILE
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " read lock " CM-CUST-NUM
           END-IF
           DELETE TSPFILE
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
           END-IF
           MOVE "INC00000" TO CM-CUST-NUM
           READ TSPFILE
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " read lock " CM-CUST-NUM
           END-IF
           DELETE TSPFILE
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
           END-IF

           DISPLAY "Sample data file rewrite complete."
                            UPON CONSOLE.
           CLOSE TSPFILE.

       DELSEQ-FILE.
           DISPLAY "Test Read/Delete" UPON CONSOLE.
           MOVE "00" TO  CUST-STAT.
           OPEN I-O TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "05"
               DIVIDE STAT-1 BY 256 GIVING BYTE-1 REMAINDER BYTE-2
               DISPLAY "Error " CUST-STAT " " BYTE-1 " " BYTE-2
               " opening 'testisam' file"
                                UPON CONSOLE
               STOP RUN
           END-IF.
           MOVE "INC00000" TO CM-CUST-NUM
           READ TSPFILE
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           END-IF
           DELETE TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
           ELSE
               DISPLAY " Delete: " CM-CUST-NUM " random"
           END-IF
           MOVE "ALP00000" TO CM-CUST-NUM
           READ TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           END-IF
           DELETE TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
           ELSE
               DISPLAY " Delete: " CM-CUST-NUM " random"
           END-IF
           READ TSPFILE NEXT RECORD
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           ELSE
               DISPLAY "   Read: " CM-CUST-NUM " " CM-TELEPHONE
           END-IF
           MOVE "PRE00000" TO CM-CUST-NUM
           READ TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           END-IF
           DELETE TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
           ELSE
               DISPLAY " Delete: " CM-CUST-NUM " random"
           END-IF
           READ TSPFILE NEXT RECORD
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Expected " CUST-STAT
                       " after delete " CM-CUST-NUM
           ELSE
               DISPLAY "   Read: " CM-CUST-NUM " " CM-TELEPHONE
           END-IF

           MOVE SPACES TO TSPFL-RECORD
           MOVE '4169898509' TO CM-TELEPHONE
           START TSPFILE KEY GREATER THAN OR EQUAL TO SPLIT-KEY2
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           END-IF
           PERFORM 4 TIMES
             READ TSPFILE NEXT RECORD
             IF  CUST-STAT NOT = "00"
             AND CUST-STAT NOT = "02"
                 DISPLAY "Error " CUST-STAT " start " CM-CUST-NUM
             ELSE
                 DISPLAY "Initial: " CM-CUST-NUM " " CM-TELEPHONE
                 IF CM-TELEPHONE = '4169898509'
                    MOVE CM-CUST-NUM TO SAV-KEY
                 END-IF
             END-IF
           END-PERFORM
           MOVE SPACES TO TSPFL-RECORD
           MOVE '4169898509' TO CM-TELEPHONE
           START TSPFILE KEY GREATER THAN OR EQUAL TO SPLIT-KEY2
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           END-IF
           READ TSPFILE NEXT RECORD
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " start " CM-CUST-NUM
           ELSE
               DISPLAY "  Start: " CM-CUST-NUM " " CM-TELEPHONE
           END-IF
           READ TSPFILE NEXT RECORD
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           ELSE
               DISPLAY "   Next: " CM-CUST-NUM " " CM-TELEPHONE
           END-IF
           DELETE TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
           ELSE
               DISPLAY " Delete: " CM-CUST-NUM " sequential"
           END-IF
           READ TSPFILE NEXT RECORD
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           ELSE
               DISPLAY "   Next: " CM-CUST-NUM " " CM-TELEPHONE
               IF CM-CUST-NUM NOT = SAV-KEY
                  DISPLAY "Problem! Expected:" SAV-KEY
               END-IF
           END-IF
           READ TSPFILE NEXT RECORD
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           ELSE
               DISPLAY "   Next: " CM-CUST-NUM " " CM-TELEPHONE
           END-IF
           DELETE TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
           ELSE
               DISPLAY " Delete: " CM-CUST-NUM " sequential"
           END-IF

           CLOSE TSPFILE.

       DELPRV-FILE.
           DISPLAY "Read Prev/Delete" UPON CONSOLE.
           MOVE "00" TO  CUST-STAT.
           OPEN I-O TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "05"
               DIVIDE STAT-1 BY 256 GIVING BYTE-1 REMAINDER BYTE-2
               DISPLAY "Error " CUST-STAT " " BYTE-1 " " BYTE-2
               " opening 'testisam' file"
                                UPON CONSOLE
               STOP RUN
           END-IF.

           MOVE SPACES TO TSPFL-RECORD
           MOVE '5292398745' TO CM-TELEPHONE
           START TSPFILE KEY LESS THAN SPLIT-KEY2
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           END-IF
           PERFORM VARYING REC-NUM FROM 1 BY 1
                     UNTIL REC-NUM > 4
             READ TSPFILE PREVIOUS RECORD
             IF  CUST-STAT NOT = "00"
             AND CUST-STAT NOT = "02"
                 DISPLAY "Error " CUST-STAT " start " CM-CUST-NUM
             ELSE
                 DISPLAY REC-NUM " Initial: " CM-CUST-NUM
                         " " CM-TELEPHONE
                 IF REC-NUM = 3
                    MOVE CM-CUST-NUM TO SAV-KEY
                 END-IF
             END-IF
           END-PERFORM
           MOVE SPACES TO TSPFL-RECORD
           MOVE '5292398745' TO CM-TELEPHONE
           START TSPFILE KEY LESS THAN SPLIT-KEY2
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           END-IF
           READ TSPFILE PREVIOUS RECORD
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " start " CM-CUST-NUM
           ELSE
               DISPLAY "  Start: " CM-CUST-NUM " " CM-TELEPHONE
           END-IF
           READ TSPFILE PREVIOUS RECORD
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           ELSE
               DISPLAY "   Prev: " CM-CUST-NUM " " CM-TELEPHONE
           END-IF
           DELETE TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
           ELSE
               DISPLAY " Delete: " CM-CUST-NUM " sequential"
           END-IF
           READ TSPFILE PREVIOUS RECORD
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " read prev " CM-CUST-NUM
               CLOSE TSPFILE
               STOP RUN
           ELSE
               DISPLAY "   Prev: " CM-CUST-NUM " " CM-TELEPHONE
               IF CM-CUST-NUM NOT = SAV-KEY
                  DISPLAY "Problem! Expected:" SAV-KEY
                  CLOSE TSPFILE
                  STOP RUN
               END-IF
           END-IF
           READ TSPFILE PREVIOUS RECORD
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " read prev " CM-CUST-NUM
           ELSE
               DISPLAY "   Prev: " CM-CUST-NUM " " CM-TELEPHONE
           END-IF
           DELETE TSPFILE
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " delete " CM-CUST-NUM
           ELSE
               DISPLAY " Delete: " CM-CUST-NUM " sequential"
           END-IF

           CLOSE TSPFILE.

       LIST-FILE.
           DISPLAY "List sample data file"
                            UPON CONSOLE.
           MOVE "00" TO  CUST-STAT.
           MOVE 0 TO REC-NUM.
           OPEN I-O TSPFILE
           MOVE "        " TO CM-CUST-NUM
           START TSPFILE KEY GREATER THAN OR EQUAL TO CM-CUST-NUM
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           END-IF
           READ TSPFILE NEXT RECORD
                AT END
                    MOVE "99" TO CUST-STAT
           END-READ.
           IF  CUST-STAT NOT = "00"
               DISPLAY "Error " CUST-STAT " first read " CM-CUST-NUM
           END-IF
           PERFORM UNTIL CUST-STAT NOT = "00"
                      OR REC-NUM > REC-MAX
               DISPLAY "Key: " CM-CUST-NUM " is " CM-COMPANY
                        " Disk=" CM-DISK
                        "." UPON CONSOLE
               READ TSPFILE NEXT RECORD
                    AT END
                        MOVE "99" TO CUST-STAT
               END-READ
               ADD 1 TO REC-NUM
           END-PERFORM.
           IF CUST-STAT = "99"
               DISPLAY "Hit End of File" UPON CONSOLE
           END-IF.
           CLOSE TSPFILE.

       LIST-PHONE.
           DISPLAY "List sample data file by Phone"
                            UPON CONSOLE.
           MOVE "00" TO  CUST-STAT.
           MOVE 0 TO REC-NUM.
           OPEN I-O TSPFILE
           MOVE SPACES TO TSPFL-RECORD
           START TSPFILE KEY GREATER THAN OR EQUAL TO SPLIT-KEY2
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " read " CM-CUST-NUM
           END-IF
           READ TSPFILE NEXT RECORD
                AT END
                    MOVE "99" TO CUST-STAT
           END-READ.
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "Error " CUST-STAT " first read " CM-CUST-NUM
           END-IF
           PERFORM UNTIL CUST-STAT NOT = "00"
                     AND CUST-STAT NOT = "02"
               DISPLAY "Ph=" CM-TELEPHONE
                       " Key: " CM-CUST-NUM " is " CM-COMPANY
                       "." UPON CONSOLE
               READ TSPFILE NEXT RECORD
                    AT END
                        MOVE "99" TO CUST-STAT
               END-READ
               ADD 1 TO REC-NUM
           END-PERFORM.
           IF CUST-STAT = "99"
               DISPLAY "Hit End of File" UPON CONSOLE
           END-IF.
           CLOSE TSPFILE.

      *---------------------------------------------------------------*
      *         LOAD A RECORD FROM DATA TABLES                        *
      *---------------------------------------------------------------*

       1000-LOAD-RECORD.

           MOVE SPACES                       TO TSPFL-RECORD.
           MOVE DATA-CUST-NUM      (SUB)     TO CM-CUST-NUM.
           MOVE CM-CUST-NUM                  TO TSPFL-KEY.
           MOVE DATA-COMPANY       (SUB)     TO CM-COMPANY.
           MOVE DATA-ADDRESS-1     (SUB)     TO CM-ADDRESS-1.
           MOVE DATA-ADDRESS-2     (SUB)     TO CM-ADDRESS-2.
           MOVE DATA-ADDRESS-3     (SUB)     TO CM-ADDRESS-3.
           MOVE DATA-TELEPHONE     (SUB)     TO CM-TELEPHONE.
           MOVE DATA-DP-MGR        (SUB)     TO CM-DP-MGR.
           MOVE DATA-MACHINE       (SUB)     TO CM-MACHINE.
           MOVE DATA-NO-TERMINALS  (SUB)     TO CM-NO-TERMINALS.

           IF  ODD-RECORD
               MOVE "8417"                   TO CM-DISK
               MOVE "1600 BPI"               TO CM-TAPE
               MOVE "1MEG"                   TO CM-MEMORY
           ELSE
               MOVE "8470"                   TO CM-DISK
               MOVE "6250 BPI"               TO CM-TAPE
               MOVE "3MEG"                   TO CM-MEMORY.
           IF  NULL-KEY
               MOVE ALL "*"                  TO CM-DISK
               MOVE ALL "*"                  TO CM-TAPE.

           WRITE TSPFL-RECORD
           IF  CUST-STAT NOT = "00"
           AND CUST-STAT NOT = "02"
               DISPLAY "WRITE: " TSPFL-KEY ", Status: "
                       CUST-STAT UPON CONSOLE
           END-IF.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:8567: \$COBC -x -std=mf -w prog.cob "
at_fn_check_prepare_dynamic "$COBC -x -std=mf -w prog.cob " "run_file.at:8567"
( $at_check_trace; $COBC -x -std=mf -w 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/run_file.at:8567"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_file.at:8569: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:8569"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Loading sample data file.
Sample data file load complete.
List sample data file
Key: ALP00000 is ALPHA ELECTRICAL CO. LTD. Disk=8417    .
Key: BET00000 is BETA SHOE MFG. INC.       Disk=8470    .
Key: DEL00000 is DELTA LUGGAGE REPAIRS     Disk=********.
Key: EPS00000 is EPSILON EQUIPMENT SUPPLY  Disk=********.
Key: FOR00000 is FORTUNE COOKIE COMPANY    Disk=8470    .
Key: GAM00000 is GAMMA X-RAY TECHNOLOGY    Disk=8417    .
Key: GIB00000 is GIBRALTER LIFE INSURANCE  Disk=8417    .
Key: H&J00000 is H & J PLUMBING SUPPLIES   Disk=********.
Key: INC00000 is INCREMENTAL BACKUP CORP.  Disk=8417    .
Key: JOH00000 is JOHNSON BOATING SUPPLIES  Disk=8417    .
Key: KON00000 is KONFLAB PLASTIC PRODUCTS. Disk=8417    .
Key: LEW00000 is LEWISTON GRAPHICS LTD.    Disk=********.
Key: MOR00000 is MORNINGSIDE CARPENTRY.    Disk=8470    .
Key: NEW00000 is NEW WAVE SURF SHOPS INC.  Disk=********.
Key: OLD00000 is OLD TYME PIZZA MFG. CO.   Disk=8470    .
Key: PRE00000 is PRESTIGE OFFICE FURNITURE Disk=8470    .
Hit End of File
List sample data file by Phone
Ph=3131234432 Key: ALP00000 is ALPHA ELECTRICAL CO. LTD..
Ph=3455445444 Key: INC00000 is INCREMENTAL BACKUP CORP. .
Ph=4169898509 Key: BET00000 is BETA SHOE MFG. INC.      .
Ph=4169898509 Key: DEL00000 is DELTA LUGGAGE REPAIRS    .
Ph=4169898509 Key: MOR00000 is MORNINGSIDE CARPENTRY.   .
Ph=4169898509 Key: PRE00000 is PRESTIGE OFFICE FURNITURE.
Ph=5292398745 Key: EPS00000 is EPSILON EQUIPMENT SUPPLY .
Ph=6456445643 Key: GIB00000 is GIBRALTER LIFE INSURANCE .
Ph=6456445643 Key: JOH00000 is JOHNSON BOATING SUPPLIES .
Ph=6546456333 Key: H&J00000 is H & J PLUMBING SUPPLIES  .
Ph=6554456433 Key: LEW00000 is LEWISTON GRAPHICS LTD.   .
Ph=7456434355 Key: KON00000 is KONFLAB PLASTIC PRODUCTS..
Ph=7534587453 Key: NEW00000 is NEW WAVE SURF SHOPS INC. .
Ph=8009329492 Key: FOR00000 is FORTUNE COOKIE COMPANY   .
Ph=8372487274 Key: GAM00000 is GAMMA X-RAY TECHNOLOGY   .
Ph=8787458374 Key: OLD00000 is OLD TYME PIZZA MFG. CO.  .
Hit End of File
Test Read/Delete
 Delete: INC00000 random
 Delete: ALP00000 random
   Read: BET00000 4169898509
 Delete: PRE00000 random
Expected 10 after delete PRE00000
Initial: BET00000 4169898509
Initial: DEL00000 4169898509
Initial: MOR00000 4169898509
Initial: EPS00000 5292398745
  Start: BET00000 4169898509
   Next: DEL00000 4169898509
 Delete: DEL00000 sequential
   Next: MOR00000 4169898509
   Next: EPS00000 5292398745
 Delete: EPS00000 sequential
List sample data file by Phone
Ph=4169898509 Key: BET00000 is BETA SHOE MFG. INC.      .
Ph=4169898509 Key: MOR00000 is MORNINGSIDE CARPENTRY.   .
Ph=6456445643 Key: GIB00000 is GIBRALTER LIFE INSURANCE .
Ph=6456445643 Key: JOH00000 is JOHNSON BOATING SUPPLIES .
Ph=6546456333 Key: H&J00000 is H & J PLUMBING SUPPLIES  .
Ph=6554456433 Key: LEW00000 is LEWISTON GRAPHICS LTD.   .
Ph=7456434355 Key: KON00000 is KONFLAB PLASTIC PRODUCTS..
Ph=7534587453 Key: NEW00000 is NEW WAVE SURF SHOPS INC. .
Ph=8009329492 Key: FOR00000 is FORTUNE COOKIE COMPANY   .
Ph=8372487274 Key: GAM00000 is GAMMA X-RAY TECHNOLOGY   .
Ph=8787458374 Key: OLD00000 is OLD TYME PIZZA MFG. CO.  .
Hit End of File
List sample data file by Phone
Ph=3131234432 Key: ALP00000 is ALPHA ELECTRICAL CO. LTD..
Ph=3455445444 Key: INC00000 is INCREMENTAL BACKUP CORP. .
Ph=4169898509 Key: BET00000 is BETA SHOE MFG. INC.      .
Ph=4169898509 Key: DEL00000 is DELTA LUGGAGE REPAIRS    .
Ph=4169898509 Key: MOR00000 is MORNINGSIDE CARPENTRY.   .
Ph=4169898509 Key: PRE00000 is PRESTIGE OFFICE FURNITURE.
Ph=5292398745 Key: EPS00000 is EPSILON EQUIPMENT SUPPLY .
Ph=6456445643 Key: GIB00000 is GIBRALTER LIFE INSURANCE .
Ph=6456445643 Key: JOH00000 is JOHNSON BOATING SUPPLIES .
Ph=6546456333 Key: H&J00000 is H & J PLUMBING SUPPLIES  .
Ph=6554456433 Key: LEW00000 is LEWISTON GRAPHICS LTD.   .
Ph=7456434355 Key: KON00000 is KONFLAB PLASTIC PRODUCTS..
Ph=7534587453 Key: NEW00000 is NEW WAVE SURF SHOPS INC. .
Ph=8009329492 Key: FOR00000 is FORTUNE COOKIE COMPANY   .
Ph=8372487274 Key: GAM00000 is GAMMA X-RAY TECHNOLOGY   .
Ph=8787458374 Key: OLD00000 is OLD TYME PIZZA MFG. CO.  .
Hit End of File
Read Prev/Delete
00000001 Initial: PRE00000 4169898509
00000002 Initial: MOR00000 4169898509
00000003 Initial: DEL00000 4169898509
00000004 Initial: BET00000 4169898509
  Start: PRE00000 4169898509
   Prev: MOR00000 4169898509
 Delete: MOR00000 sequential
   Prev: DEL00000 4169898509
   Prev: BET00000 4169898509
 Delete: BET00000 sequential
List sample data file by Phone
Ph=3131234432 Key: ALP00000 is ALPHA ELECTRICAL CO. LTD..
Ph=3455445444 Key: INC00000 is INCREMENTAL BACKUP CORP. .
Ph=4169898509 Key: DEL00000 is DELTA LUGGAGE REPAIRS    .
Ph=4169898509 Key: PRE00000 is PRESTIGE OFFICE FURNITURE.
Ph=5292398745 Key: EPS00000 is EPSILON EQUIPMENT SUPPLY .
Ph=6456445643 Key: GIB00000 is GIBRALTER LIFE INSURANCE .
Ph=6456445643 Key: JOH00000 is JOHNSON BOATING SUPPLIES .
Ph=6546456333 Key: H&J00000 is H & J PLUMBING SUPPLIES  .
Ph=6554456433 Key: LEW00000 is LEWISTON GRAPHICS LTD.   .
Ph=7456434355 Key: KON00000 is KONFLAB PLASTIC PRODUCTS..
Ph=7534587453 Key: NEW00000 is NEW WAVE SURF SHOPS INC. .
Ph=8009329492 Key: FOR00000 is FORTUNE COOKIE COMPANY   .
Ph=8372487274 Key: GAM00000 is GAMMA X-RAY TECHNOLOGY   .
Ph=8787458374 Key: OLD00000 is OLD TYME PIZZA MFG. CO.  .
Hit End of File
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_file.at:8569"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_795
#AT_START_796
at_fn_group_banner 796 'run_file.at:8686' \
  "TURN EC-I-O" "                                    " 4
at_xfail=yes
(
  $as_echo "796. $at_setup_line: testing $at_desc ..."
  $at_traceon




# FIXME: FUNCTION EXCEPTION-STATUS should be empty when an EC occurs but has been
#   >>TURN'd off.

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT OPTIONAL f ASSIGN "out.txt"
               SEQUENTIAL
               FILE STATUS f-status.

           SELECT g ASSIGN "out.txt"
               SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  f-rec PIC X.

       FD  g.
       01  g-rec PIC X.

       WORKING-STORAGE SECTION.
       01  f-status PIC XX.

       PROCEDURE DIVISION.
           OPEN OUTPUT f
           WRITE f-rec FROM "a"
           CLOSE f

           SET LAST EXCEPTION TO OFF
           >>TURN EC-I-O CHECKING ON
           *> Read f too many times without libcob error
           OPEN INPUT f
           PERFORM 2 TIMES
               READ f
               DISPLAY f-rec
           END-PERFORM

           DISPLAY f-status
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
           SET LAST EXCEPTION TO OFF

           CLOSE f

           >>TURN EC-I-O g CHECKING ON

           *> Read f too many times without libcob error
           OPEN INPUT f
           PERFORM 2 TIMES
               READ f
               DISPLAY f-rec
           END-PERFORM

           DISPLAY f-status
           DISPLAY FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
           SET LAST EXCEPTION TO OFF

           CLOSE f

           *> Read g too many times with libcob error
           OPEN INPUT g
           PERFORM 2 TIMES
               READ g
               DISPLAY g-rec
           END-PERFORM

           CLOSE g
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_file.at:8764: \$COMPILE prog.cob "
at_fn_check_prepare_dynamic "$COMPILE prog.cob " "run_file.at:8764"
( $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/run_file.at:8764"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_file.at:8765: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_file.at:8765"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:61: error: end of file (status = 10) for file g ('out.txt') on READ
libcob: prog.cob:61: warning: implicit CLOSE of g ('out.txt')
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
a
10

a
a
10

a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_file.at:8765"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_796
#AT_START_797
at_fn_group_banner 797 'run_reportwriter.at:23' \
  "Report Line Order" "                              " 4
at_xfail=no
(
  $as_echo "797. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
      *>****************************************************************
      *> 11NOV2013 BUG 001 - RWCS Presents RF before it presents the  **
      *>                     last PF                                  **
      *>****************************************************************
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT REPORT-FILE     ASSIGN TO EXTERNAL PRINTOUT
                                       LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD  REPORT-FILE
           REPORT IS RWCS-Report.
       WORKING-STORAGE SECTION.
       REPORT SECTION.
       RD  RWCS-Report
           PAGE LIMIT 12
               HEADING 1
               FIRST DETAIL 4
               LAST DETAIL 7.

       01  TYPE REPORT HEADING LINE 1.
           05 COL 1 VALUE 'RH'.

       01  TYPE PAGE HEADING LINE PLUS 1.
           05 COL 1 VALUE 'PH'.

       01  Detail-Line TYPE DETAIL LINE PLUS 1.
           05 COL 1 VALUE 'DE'.

       01  TYPE PAGE FOOTING LINE NUMBER 10.
           05 COL 1 VALUE 'PF'.

       01  TYPE REPORT FOOTING LINE NUMBER PLUS 1.
           05 COL 1 VALUE 'RF'.

       PROCEDURE DIVISION.
       010-Main SECTION.
       1.  OPEN OUTPUT REPORT-FILE
           INITIATE RWCS-Report
           GENERATE Detail-Line
           GENERATE Detail-Line
           GENERATE Detail-Line
           GENERATE Detail-Line
           GENERATE Detail-Line
           GENERATE Detail-Line
           GENERATE Detail-Line
           GENERATE Detail-Line
           TERMINATE RWCS-Report
           CLOSE REPORT-FILE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:82: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:82"
( $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/run_reportwriter.at:82"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:84: DD_PRINTOUT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_PRINTOUT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:84"
( $at_check_trace; DD_PRINTOUT="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
RH
PH

DE
DE
DE
DE


PF

PH


DE
DE
DE
DE



PF

RF
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:115: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:115"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:115"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_797
#AT_START_798
at_fn_group_banner 798 'run_reportwriter.at:120' \
  "REPORT COL PLUS" "                                " 4
at_xfail=no
(
  $as_echo "798. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
      *>****************************************************************
      *> 11NOV2013 BUG 002 - RWCS Treats "COL PLUS n" the same as     **
      *>                     "COL n".                                 **
      *>****************************************************************
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT REPORT-FILE          ASSIGN TO EXTERNAL PRINTOUT
                                       LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD  REPORT-FILE
           REPORT IS RWCS-Report.
       WORKING-STORAGE SECTION.
       REPORT SECTION.
       RD  RWCS-Report
           PAGE LIMIT 12
               HEADING 1
               FIRST DETAIL 4
               LAST DETAIL 7.

       01  Detail-Line TYPE DETAIL.
           05 LINE NUMBER PLUS 1.
              10 COL 1      PIC X(20)  VALUE '12345678901234567890'.
              10 COL PLUS 3 PIC X(4)   VALUE 'ABCD'.
              10 COL 30     PIC X(1)   VALUE '!'.

       PROCEDURE DIVISION.
       010-Main SECTION.
       1.  OPEN OUTPUT REPORT-FILE
           INITIATE RWCS-Report
           GENERATE Detail-Line
           TERMINATE RWCS-Report
           CLOSE REPORT-FILE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:163: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:163"
( $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/run_reportwriter.at:163"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:165: DD_PRINTOUT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_PRINTOUT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:165"
( $at_check_trace; DD_PRINTOUT="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:165"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'



12345678901234567890  ABCD   !








_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:184: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:184"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:184"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_798
#AT_START_799
at_fn_group_banner 799 'run_reportwriter.at:189' \
  "Report Overlapping Fields" "                      " 4
at_xfail=no
(
  $as_echo "799. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
      *>****************************************************************
      *> 11NOV2013 BUG 003 - RWCS causes "Abort trap 6" if an attempt **
      *>                     is made to overwrite previous field on   **
      *>                     a line                                   **
      *>****************************************************************
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT REPORT-FILE          ASSIGN TO EXTERNAL PRINTOUT
                                       LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD  REPORT-FILE
           REPORT IS RWCS-Report.
       WORKING-STORAGE SECTION.
       REPORT SECTION.
       RD  RWCS-Report
           PAGE LIMIT 12
               HEADING 1
               FIRST DETAIL 4
               LAST DETAIL 7.

       01  Detail-Line TYPE DETAIL.
           05 LINE NUMBER PLUS 1.
              10 COL 1      PIC X(20)  VALUE '12345678901234567890'.
              10 COL 10     PIC X(4)   VALUE 'ABCD'.

       PROCEDURE DIVISION.
       010-Main SECTION.
       1.  OPEN OUTPUT REPORT-FILE
           INITIATE RWCS-Report
           GENERATE Detail-Line
           TERMINATE RWCS-Report
           CLOSE REPORT-FILE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:232: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:232"
( $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/run_reportwriter.at:232"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:234: DD_PRINTOUT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_PRINTOUT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:234"
( $at_check_trace; DD_PRINTOUT="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'



123456789ABCD4567890








_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:253: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:253"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:253"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_799
#AT_START_800
at_fn_group_banner 800 'run_reportwriter.at:258' \
  "EMPTY REPORT" "                                   " 4
at_xfail=no
(
  $as_echo "800. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
      *>****************************************************************
      *> 11NOV2013 BUG 004 - RWCS INITIATE TERMINATE W/O GENERATE     **
      *>                     IS NOT SUPPOSED TO PRODUCE ANY OUTPUT    **
      *>****************************************************************
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT REPORT-FILE          ASSIGN TO EXTERNAL PRINTOUT
                                       LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD  REPORT-FILE
           REPORT IS RWCS-Report.
       WORKING-STORAGE SECTION.
       REPORT SECTION.
       RD  RWCS-Report
           PAGE LIMIT 12
               HEADING 1
               FIRST DETAIL 4
               LAST DETAIL 7
           CONTROL IS FINAL.

       01  TYPE REPORT HEADING LINE 1.
           05 COL 1 VALUE 'RH'.

       01  TYPE PAGE HEADING LINE PLUS 1.
           05 COL 1 VALUE 'PH'.

       01  Detail-Line TYPE DETAIL LINE PLUS 1.
           05 COL 1 VALUE 'DE'.

       01  TYPE CONTROL FOOTING FINAL.
           05 COL 1 VALUE 'CFF'.

       01  TYPE PAGE FOOTING LINE NUMBER 10.
           05 COL 1 VALUE 'PF'.

       01  TYPE REPORT FOOTING LINE NUMBER 1.
           05 COL 1 VALUE 'RF'.

       PROCEDURE DIVISION.
       010-Main SECTION.
       1.  OPEN OUTPUT REPORT-FILE
           INITIATE RWCS-Report
           TERMINATE RWCS-Report
           CLOSE REPORT-FILE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:313: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:313"
( $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/run_reportwriter.at:313"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:315: DD_PRINTOUT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_PRINTOUT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:315"
( $at_check_trace; DD_PRINTOUT="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:315"
$at_failed && at_fn_log_failure
$at_traceon; }





: >reference

{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:322: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:322"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:322"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_800
#AT_START_801
at_fn_group_banner 801 'run_reportwriter.at:327' \
  "PAGE LIMIT REPORT" "                              " 4
at_xfail=no
(
  $as_echo "801. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT report-file ASSIGN EXTERNAL PRINTOUT
            ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  report-file REPORT rp.

       WORKING-STORAGE SECTION.
       01  foo  PIC X(20).
       01  hedpos PIC 99 VALUE 10.

       REPORT SECTION.
       RD  rp PAGE LIMIT 3.

       01  rp-detail TYPE DE.
         02  LINE + 1.
         03     COL 1; SOURCE foo, PIC X(30).
         03     COL + 2            PIC X(6) VALUE "<--->".

       PROCEDURE DIVISION.
           OPEN OUTPUT report-file.
           INITIATE rp.

           MOVE "hello" TO foo.
            GENERATE rp-detail.

           MOVE "goodbye" TO foo.
            GENERATE rp-detail.

           TERMINATE rp.
             CLOSE report-file.
           STOP RUN.
           END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:372: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:372"
( $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/run_reportwriter.at:372"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:374: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:374"
( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./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/run_reportwriter.at:374"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
hello                          <--->
goodbye                        <--->

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:384: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:384"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:384"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_801
#AT_START_802
at_fn_group_banner 802 'run_reportwriter.at:389' \
  "PAGE LIMIT REPORT 2" "                            " 4
at_xfail=no
(
  $as_echo "802. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT report-file ASSIGN EXTERNAL PRINTOUT
            ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  report-file REPORT rp.

       WORKING-STORAGE SECTION.
       01  foo  PIC X(20).

       REPORT SECTION.
       RD  rp PAGE LIMIT 3 LINES.

       01  rp-detail TYPE DE.
         02  LINE + 1.
         03            SOURCE foo, PIC X(30).
         03     COL + 2            PIC X(6) VALUE "<--->".

       PROCEDURE DIVISION.
           OPEN OUTPUT report-file.
           INITIATE rp.

           MOVE "hello" TO foo.
           GENERATE rp-detail.

           MOVE "world" TO foo.
           GENERATE rp-detail.

           MOVE "from" TO foo.
           GENERATE rp-detail.

           MOVE "REPORT WRITER" TO foo.
           GENERATE rp-detail.

           MOVE "goodbye" TO foo.
           GENERATE rp-detail.

           TERMINATE rp
           CLOSE report-file.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:441: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:441"
( $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/run_reportwriter.at:441"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:443: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:443"
( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./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/run_reportwriter.at:443"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
hello                          <--->
world                          <--->
from                           <--->
REPORT WRITER                  <--->
goodbye                        <--->

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:456: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:456"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:456"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_802
#AT_START_803
at_fn_group_banner 803 'run_reportwriter.at:461' \
  "Sample Customer Report" "                         " 4
at_xfail=no
(
  $as_echo "803. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
0152 J. LANGDON       87653 02475
0152 J. LANGDON       64025 00945
0152 J. LANGDON       41915 01370
0152 J. LANGDON       17410 00251
2468 L. MORRISEY      18520 00375
2468 L. MORRISEY      20012 00420
2468 L. MORRISEY      31572 01015
2468 L. MORRISEY      48792 03750
2468 L. MORRISEY      50407 01515
2468 L. MORRISEY      61575 02010
2468 L. MORRISEY      79204 05170
2468 L. MORRISEY      85075 03784
2468 L. MORRISEY      98476 08794
3451 M. JACKSON       37847 02790
3451 M. JACKSON       58492 06850
3451 M. JACKSON       60010 02040
3451 M. JACKSON       85260 07852
3451 M. JACKSON       90520 02752
4512 S. LEVITT        24680 03050
4512 S. LEVITT        56784 05253
4512 S. LEVITT        60410 01215
4512 S. LEVITT        78952 08925
4512 S. LEVITT        85278 04975
4512 S. LEVITT        87492 06425
4512 S. LEVITT        97204 08475
5417 K. CONKLIN       13579 03572
5417 K. CONKLIN       24615 01875
5417 K. CONKLIN       34928 03745
5417 K. CONKLIN       48527 08750
5417 K. CONKLIN       50150 01895
5417 K. CONKLIN       54652 03892
5417 K. CONKLIN       59765 09895
5417 K. CONKLIN       71572 01895
5417 K. CONKLIN       85175 08010
5417 K. CONKLIN       90275 00460
5417 K. CONKLIN       91572 01857
5417 K. CONKLIN       97576 08495
6213 Z. HAMPTON       15792 06425
6213 Z. HAMPTON       19975 09875
6213 Z. HAMPTON       34576 05115
6213 Z. HAMPTON       49512 08520
7545 M. LARSON        14676 03845
7545 M. LARSON        18592 08251
7545 M. LARSON        19994 09898
7545 M. LARSON        21214 01515
7545 M. LARSON        37515 08212
7545 M. LARSON        38592 09615
7545 M. LARSON        48485 08714
7545 M. LARSON        52762 03792
7545 M. LARSON        57684 08015
7545 M. LARSON        79015 09625
7545 M. LARSON        80123 00560
7545 M. LARSON        82462 02015
7545 M. LARSON        91520 01815
7545 M. LARSON        93715 04015
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

      * ************************************************************* *
      * REPORT WRITER EXAMPLE #1.                                     *
      * ************************************************************* *

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT TRANSACTION-DATA
               ASSIGN TO EXTERNAL DATAIN
                         ORGANIZATION IS LINE SEQUENTIAL.

           SELECT REPORT-FILE
               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.

       DATA DIVISION.
       FILE SECTION.

       FD  TRANSACTION-DATA.

       01  TRANSACTION-RECORD.
           03  TR-CUSTOMER-NUMBER      PIC 9(04).
           03  FILLER                  PIC X(01).
           03  TR-CUSTOMER-NAME        PIC X(16).
           03  FILLER                  PIC X(01).
           03  TR-ITEM-NUMBER          PIC 9(05).
           03  FILLER                  REDEFINES TR-ITEM-NUMBER.
               05  TR-ITEM-DEPARTMENT  PIC 9(01).
               05  FILLER              PIC 9(04).
           03  FILLER                  PIC X(01).
           03  TR-ITEM-COST            PIC 9(03)V99.
           03  FILLER                  PIC X(47).

       FD  REPORT-FILE
           REPORT IS CUSTOMER-REPORT.

       WORKING-STORAGE SECTION.
       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
           88  END-OF-FILE                         VALUE 'Y'.

       REPORT SECTION.
       RD  CUSTOMER-REPORT
           PAGE LIMIT IS 66 LINES
           HEADING 1
           FIRST DETAIL 5
           LAST DETAIL 58.

       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
           02  LINE 1.
               03  COLUMN 27   PIC X(41) VALUE
                   'C U S T O M E R  C H A R G E  R E P O R T'.
           02  LINE PLUS 2.
               03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
               03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
               03  COLUMN 30   PIC X(05) VALUE 'DEPT.'.
               03  COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
               03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.

       01  CHARGE-DETAIL TYPE DETAIL.
           02  LINE PLUS 1.
               03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
               03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
               03  COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
               03  COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
               03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.

       PROCEDURE DIVISION.

       000-INITIATE.

           OPEN INPUT TRANSACTION-DATA,
                OUTPUT REPORT-FILE.

           INITIATE CUSTOMER-REPORT.

           READ TRANSACTION-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH.
      *    END-READ.

           PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
               UNTIL END-OF-FILE.

       000-TERMINATE.
           TERMINATE CUSTOMER-REPORT.

           CLOSE TRANSACTION-DATA,
                 REPORT-FILE.

           STOP RUN.

       100-PROCESS-TRANSACTION-DATA.
           GENERATE CHARGE-DETAIL.
           READ TRANSACTION-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH.
      *    END-READ.

       199-EXIT.
           EXIT.


_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:631: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:631"
( $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/run_reportwriter.at:631"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:633: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:633"
( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:633"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
                          C U S T O M E R  C H A R G E  R E P O R T

CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST

   152   J. LANGDON            8       87653       $24.75
   152   J. LANGDON            6       64025        $9.45
   152   J. LANGDON            4       41915       $13.70
   152   J. LANGDON            1       17410        $2.51
  2468   L. MORRISEY           1       18520        $3.75
  2468   L. MORRISEY           2       20012        $4.20
  2468   L. MORRISEY           3       31572       $10.15
  2468   L. MORRISEY           4       48792       $37.50
  2468   L. MORRISEY           5       50407       $15.15
  2468   L. MORRISEY           6       61575       $20.10
  2468   L. MORRISEY           7       79204       $51.70
  2468   L. MORRISEY           8       85075       $37.84
  2468   L. MORRISEY           9       98476       $87.94
  3451   M. JACKSON            3       37847       $27.90
  3451   M. JACKSON            5       58492       $68.50
  3451   M. JACKSON            6       60010       $20.40
  3451   M. JACKSON            8       85260       $78.52
  3451   M. JACKSON            9       90520       $27.52
  4512   S. LEVITT             2       24680       $30.50
  4512   S. LEVITT             5       56784       $52.53
  4512   S. LEVITT             6       60410       $12.15
  4512   S. LEVITT             7       78952       $89.25
  4512   S. LEVITT             8       85278       $49.75
  4512   S. LEVITT             8       87492       $64.25
  4512   S. LEVITT             9       97204       $84.75
  5417   K. CONKLIN            1       13579       $35.72
  5417   K. CONKLIN            2       24615       $18.75
  5417   K. CONKLIN            3       34928       $37.45
  5417   K. CONKLIN            4       48527       $87.50
  5417   K. CONKLIN            5       50150       $18.95
  5417   K. CONKLIN            5       54652       $38.92
  5417   K. CONKLIN            5       59765       $98.95
  5417   K. CONKLIN            7       71572       $18.95
  5417   K. CONKLIN            8       85175       $80.10
  5417   K. CONKLIN            9       90275        $4.60
  5417   K. CONKLIN            9       91572       $18.57
  5417   K. CONKLIN            9       97576       $84.95
  6213   Z. HAMPTON            1       15792       $64.25
  6213   Z. HAMPTON            1       19975       $98.75
  6213   Z. HAMPTON            3       34576       $51.15
  6213   Z. HAMPTON            4       49512       $85.20
  7545   M. LARSON             1       14676       $38.45
  7545   M. LARSON             1       18592       $82.51
  7545   M. LARSON             1       19994       $98.98
  7545   M. LARSON             2       21214       $15.15
  7545   M. LARSON             3       37515       $82.12
  7545   M. LARSON             3       38592       $96.15
  7545   M. LARSON             4       48485       $87.14
  7545   M. LARSON             5       52762       $37.92
  7545   M. LARSON             5       57684       $80.15
  7545   M. LARSON             7       79015       $96.25
  7545   M. LARSON             8       80123        $5.60
  7545   M. LARSON             8       82462       $20.15
  7545   M. LARSON             9       91520       $18.15







                          C U S T O M E R  C H A R G E  R E P O R T

CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST

  7545   M. LARSON             9       93715       $40.15





























































_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:771: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:771"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:771"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_803
#AT_START_804
at_fn_group_banner 804 'run_reportwriter.at:776' \
  "Sample Charge Report" "                           " 4
at_xfail=no
(
  $as_echo "804. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
0152 J. LANGDON       87653 02475
0152 J. LANGDON       64025 00945
0152 J. LANGDON       41915 01370
0152 J. LANGDON       17410 00251
2468 L. MORRISEY      18520 00375
2468 L. MORRISEY      20012 00420
2468 L. MORRISEY      31572 01015
2468 L. MORRISEY      48792 03750
2468 L. MORRISEY      50407 01515
2468 L. MORRISEY      61575 02010
2468 L. MORRISEY      79204 05170
2468 L. MORRISEY      85075 03784
2468 L. MORRISEY      98476 08794
3451 M. JACKSON       37847 02790
3451 M. JACKSON       58492 06850
3451 M. JACKSON       60010 02040
3451 M. JACKSON       85260 07852
3451 M. JACKSON       90520 02752
4512 S. LEVITT        24680 03050
4512 S. LEVITT        56784 05253
4512 S. LEVITT        60410 01215
4512 S. LEVITT        78952 08925
4512 S. LEVITT        85278 04975
4512 S. LEVITT        87492 06425
4512 S. LEVITT        97204 08475
5417 K. CONKLIN       13579 03572
5417 K. CONKLIN       24615 01875
5417 K. CONKLIN       34928 03745
5417 K. CONKLIN       48527 08750
5417 K. CONKLIN       50150 01895
5417 K. CONKLIN       54652 03892
5417 K. CONKLIN       59765 09895
5417 K. CONKLIN       71572 01895
5417 K. CONKLIN       85175 08010
5417 K. CONKLIN       90275 00460
5417 K. CONKLIN       91572 01857
5417 K. CONKLIN       97576 08495
6213 Z. HAMPTON       15792 06425
6213 Z. HAMPTON       19975 09875
6213 Z. HAMPTON       34576 05115
6213 Z. HAMPTON       49512 08520
7545 M. LARSON        14676 03845
7545 M. LARSON        18592 08251
7545 M. LARSON        19994 09898
7545 M. LARSON        21214 01515
7545 M. LARSON        37515 08212
7545 M. LARSON        38592 09615
7545 M. LARSON        48485 08714
7545 M. LARSON        52762 03792
7545 M. LARSON        57684 08015
7545 M. LARSON        79015 09625
7545 M. LARSON        80123 00560
7545 M. LARSON        82462 02015
7545 M. LARSON        91520 01815
7545 M. LARSON        93715 04015
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
      * ************************************************************* *
      * REPORT WRITER EXAMPLE #2.                                     *
      * ************************************************************* *

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT TRANSACTION-DATA
               ASSIGN TO EXTERNAL DATAIN
                         ORGANIZATION IS LINE SEQUENTIAL.

           SELECT REPORT-FILE
               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.

       DATA DIVISION.
       FILE SECTION.

       FD  TRANSACTION-DATA.

       01  TRANSACTION-RECORD.
           03  TR-CUSTOMER-NUMBER      PIC 9(04).
           03  FILLER                  PIC X(01).
           03  TR-CUSTOMER-NAME        PIC X(16).
           03  FILLER                  PIC X(01).
           03  TR-ITEM-NUMBER          PIC 9(05).
           03  FILLER                  REDEFINES TR-ITEM-NUMBER.
               05  TR-ITEM-DEPARTMENT  PIC 9(01).
               05  FILLER              PIC 9(04).
           03  FILLER                  PIC X(01).
           03  TR-ITEM-COST            PIC 9(03)V99.
           03  FILLER                  PIC X(47).

       FD  REPORT-FILE
           REPORT IS CUSTOMER-REPORT.

       WORKING-STORAGE SECTION.
       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
           88  END-OF-FILE                         VALUE 'Y'.

       01  DISCOUNT-TABLE.
           02  FILLER                  PIC 99      VALUE 05.
           02  FILLER                  PIC 99      VALUE 07.
           02  FILLER                  PIC 99      VALUE 10.
           02  FILLER                  PIC 99      VALUE 15.
           02  FILLER                  PIC 99      VALUE 06.
           02  FILLER                  PIC 99      VALUE 22.
           02  FILLER                  PIC 99      VALUE 12.
           02  FILLER                  PIC 99      VALUE 09.
           02  FILLER                  PIC 99      VALUE 20.
       01  FILLER                      REDEFINES DISCOUNT-TABLE.
           02  DISCOUNT                OCCURS 9 TIMES
                                       INDEXED BY DISCOUNT-IX
                                       PIC V99.

       01  CALCULATED-FIELDS.
           03  WS-DISCOUNT-AMT         PIC 9(3)V99.
           03  WS-CHARGE-AMT           PIC 9(3)V99.

       REPORT SECTION.
       RD  CUSTOMER-REPORT
           CONTROL IS TR-CUSTOMER-NUMBER
           PAGE LIMIT IS 66 LINES
           HEADING 1
           FIRST DETAIL 5
           LAST DETAIL 58.

       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
           02  LINE 1.
               03  COLUMN 27   PIC X(41) VALUE
                   'C U S T O M E R  C H A R G E  R E P O R T'.
               03  COLUMN 90   PIC X(04) VALUE 'PAGE'.
               03  COLUMN 95   PIC ZZZZ9 SOURCE PAGE-COUNTER.
           02  LINE PLUS 2.
               03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
               03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
               03  COLUMN 30   PIC X(05) VALUE 'DEPT.'.
               03  COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
               03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
               03  COLUMN 64   PIC X(08) VALUE 'DISCT. %'.
               03  COLUMN 76   PIC X(11) VALUE 'DISCT. AMT.'.
               03  COLUMN 91   PIC X(06) VALUE 'CHARGE'.

       01  CHARGE-DETAIL TYPE DETAIL.
           02  LINE PLUS 1.
               03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
               03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
               03  COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
               03  COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
               03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
               03  COLUMN 67   PIC V99 SOURCE DISCOUNT (DISCOUNT-IX).
               03  COLUMN 69   PIC X(01) VALUE '%'.
               03  COLUMN 78   PIC $$$$.99 SOURCE WS-DISCOUNT-AMT.
               03  COLUMN 93   PIC $$$$.99 SOURCE WS-CHARGE-AMT.

       01  CUSTOMER-TOTAL TYPE CONTROL FOOTING TR-CUSTOMER-NUMBER
           NEXT GROUP IS PLUS 2.
           02  LINE PLUS 1.
               03  COLUMN 92   PIC $$$$$.99 SUM WS-CHARGE-AMT.
               03  COLUMN 101  PIC X VALUE '*'.

       PROCEDURE DIVISION.

       000-INITIATE.

           OPEN INPUT TRANSACTION-DATA,
                OUTPUT REPORT-FILE.

           INITIATE CUSTOMER-REPORT.

           READ TRANSACTION-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH
           END-READ.

           PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
               UNTIL END-OF-FILE.

       000-TERMINATE.
           TERMINATE CUSTOMER-REPORT.

           CLOSE TRANSACTION-DATA,
                 REPORT-FILE.

           STOP RUN.

       100-PROCESS-TRANSACTION-DATA.
           SET DISCOUNT-IX TO TR-ITEM-DEPARTMENT.
           COMPUTE WS-DISCOUNT-AMT ROUNDED =
               TR-ITEM-COST * DISCOUNT (DISCOUNT-IX).
           COMPUTE WS-CHARGE-AMT =
               TR-ITEM-COST - WS-DISCOUNT-AMT.
           GENERATE CHARGE-DETAIL.
           READ TRANSACTION-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH
           END-READ.

       199-EXIT.
           EXIT.

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:984: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:984"
( $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/run_reportwriter.at:984"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:986: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:986"
( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:986"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
                          C U S T O M E R  C H A R G E  R E P O R T                      PAGE     1

CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST    DISCT. %    DISCT. AMT.    CHARGE

   152   J. LANGDON            8       87653       $24.75         09%          $2.23         $22.52
   152   J. LANGDON            6       64025        $9.45         22%          $2.08          $7.37
   152   J. LANGDON            4       41915       $13.70         15%          $2.06         $11.64
   152   J. LANGDON            1       17410        $2.51         05%           $.13          $2.38
                                                                                             $43.91 *


  2468   L. MORRISEY           1       18520        $3.75         05%           $.19          $3.56
  2468   L. MORRISEY           2       20012        $4.20         07%           $.29          $3.91
  2468   L. MORRISEY           3       31572       $10.15         10%          $1.02          $9.13
  2468   L. MORRISEY           4       48792       $37.50         15%          $5.63         $31.87
  2468   L. MORRISEY           5       50407       $15.15         06%           $.91         $14.24
  2468   L. MORRISEY           6       61575       $20.10         22%          $4.42         $15.68
  2468   L. MORRISEY           7       79204       $51.70         12%          $6.20         $45.50
  2468   L. MORRISEY           8       85075       $37.84         09%          $3.41         $34.43
  2468   L. MORRISEY           9       98476       $87.94         20%         $17.59         $70.35
                                                                                            $228.67 *


  3451   M. JACKSON            3       37847       $27.90         10%          $2.79         $25.11
  3451   M. JACKSON            5       58492       $68.50         06%          $4.11         $64.39
  3451   M. JACKSON            6       60010       $20.40         22%          $4.49         $15.91
  3451   M. JACKSON            8       85260       $78.52         09%          $7.07         $71.45
  3451   M. JACKSON            9       90520       $27.52         20%          $5.50         $22.02
                                                                                            $198.88 *


  4512   S. LEVITT             2       24680       $30.50         07%          $2.14         $28.36
  4512   S. LEVITT             5       56784       $52.53         06%          $3.15         $49.38
  4512   S. LEVITT             6       60410       $12.15         22%          $2.67          $9.48
  4512   S. LEVITT             7       78952       $89.25         12%         $10.71         $78.54
  4512   S. LEVITT             8       85278       $49.75         09%          $4.48         $45.27
  4512   S. LEVITT             8       87492       $64.25         09%          $5.78         $58.47
  4512   S. LEVITT             9       97204       $84.75         20%         $16.95         $67.80
                                                                                            $337.30 *


  5417   K. CONKLIN            1       13579       $35.72         05%          $1.79         $33.93
  5417   K. CONKLIN            2       24615       $18.75         07%          $1.31         $17.44
  5417   K. CONKLIN            3       34928       $37.45         10%          $3.75         $33.70
  5417   K. CONKLIN            4       48527       $87.50         15%         $13.13         $74.37
  5417   K. CONKLIN            5       50150       $18.95         06%          $1.14         $17.81
  5417   K. CONKLIN            5       54652       $38.92         06%          $2.34         $36.58
  5417   K. CONKLIN            5       59765       $98.95         06%          $5.94         $93.01
  5417   K. CONKLIN            7       71572       $18.95         12%          $2.27         $16.68
  5417   K. CONKLIN            8       85175       $80.10         09%          $7.21         $72.89
  5417   K. CONKLIN            9       90275        $4.60         20%           $.92          $3.68
  5417   K. CONKLIN            9       91572       $18.57         20%          $3.71         $14.86
  5417   K. CONKLIN            9       97576       $84.95         20%         $16.99         $67.96
                                                                                            $482.91 *


  6213   Z. HAMPTON            1       15792       $64.25         05%          $3.21         $61.04
  6213   Z. HAMPTON            1       19975       $98.75         05%          $4.94         $93.81







                          C U S T O M E R  C H A R G E  R E P O R T                      PAGE     2

CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST    DISCT. %    DISCT. AMT.    CHARGE

  6213   Z. HAMPTON            3       34576       $51.15         10%          $5.12         $46.03
  6213   Z. HAMPTON            4       49512       $85.20         15%         $12.78         $72.42
                                                                                            $273.30 *


  7545   M. LARSON             1       14676       $38.45         05%          $1.92         $36.53
  7545   M. LARSON             1       18592       $82.51         05%          $4.13         $78.38
  7545   M. LARSON             1       19994       $98.98         05%          $4.95         $94.03
  7545   M. LARSON             2       21214       $15.15         07%          $1.06         $14.09
  7545   M. LARSON             3       37515       $82.12         10%          $8.21         $73.91
  7545   M. LARSON             3       38592       $96.15         10%          $9.62         $86.53
  7545   M. LARSON             4       48485       $87.14         15%         $13.07         $74.07
  7545   M. LARSON             5       52762       $37.92         06%          $2.28         $35.64
  7545   M. LARSON             5       57684       $80.15         06%          $4.81         $75.34
  7545   M. LARSON             7       79015       $96.25         12%         $11.55         $84.70
  7545   M. LARSON             8       80123        $5.60         09%           $.50          $5.10
  7545   M. LARSON             8       82462       $20.15         09%          $1.81         $18.34
  7545   M. LARSON             9       91520       $18.15         20%          $3.63         $14.52
  7545   M. LARSON             9       93715       $40.15         20%          $8.03         $32.12
                                                                                            $723.30 *










































_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:1124: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:1124"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:1124"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_804
#AT_START_805
at_fn_group_banner 805 'run_reportwriter.at:1129' \
  "Sample Charge Report 2" "                         " 4
at_xfail=no
(
  $as_echo "805. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
0152 J. LANGDON       87653 02475
0152 J. LANGDON       64025 00945
0152 J. LANGDON       41915 01370
0152 J. LANGDON       17410 00251
2468 L. MORRISEY      18520 00375
2468 L. MORRISEY      20012 00420
2468 L. MORRISEY      31572 01015
2468 L. MORRISEY      48792 03750
2468 L. MORRISEY      50407 01515
2468 L. MORRISEY      61575 02010
2468 L. MORRISEY      79204 05170
2468 L. MORRISEY      85075 03784
2468 L. MORRISEY      98476 08794
3451 M. JACKSON       37847 02790
3451 M. JACKSON       58492 06850
3451 M. JACKSON       60010 02040
3451 M. JACKSON       85260 07852
3451 M. JACKSON       90520 02752
4512 S. LEVITT        24680 03050
4512 S. LEVITT        56784 05253
4512 S. LEVITT        60410 01215
4512 S. LEVITT        78952 08925
4512 S. LEVITT        85278 04975
4512 S. LEVITT        87492 06425
4512 S. LEVITT        97204 08475
5417 K. CONKLIN       13579 03572
5417 K. CONKLIN       24615 01875
5417 K. CONKLIN       34928 03745
5417 K. CONKLIN       48527 08750
5417 K. CONKLIN       50150 01895
5417 K. CONKLIN       54652 03892
5417 K. CONKLIN       59765 09895
5417 K. CONKLIN       71572 01895
5417 K. CONKLIN       85175 08010
5417 K. CONKLIN       90275 00460
5417 K. CONKLIN       91572 01857
5417 K. CONKLIN       97576 08495
6213 Z. HAMPTON       15792 06425
6213 Z. HAMPTON       19975 09875
6213 Z. HAMPTON       34576 05115
6213 Z. HAMPTON       49512 08520
7545 M. LARSON        14676 03845
7545 M. LARSON        18592 08251
7545 M. LARSON        19994 09898
7545 M. LARSON        21214 01515
7545 M. LARSON        37515 08212
7545 M. LARSON        38592 09615
7545 M. LARSON        48485 08714
7545 M. LARSON        52762 03792
7545 M. LARSON        57684 08015
7545 M. LARSON        79015 09625
7545 M. LARSON        80123 00560
7545 M. LARSON        82462 02015
7545 M. LARSON        91520 01815
7545 M. LARSON        93715 04015
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
      * ************************************************************* *
      * REPORT WRITER EXAMPLE #3.                                     *
      * ************************************************************* *

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT TRANSACTION-DATA
               ASSIGN TO EXTERNAL DATAIN
                         ORGANIZATION IS LINE SEQUENTIAL.

           SELECT REPORT-FILE
               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.

       DATA DIVISION.
       FILE SECTION.

       FD  TRANSACTION-DATA.

       01  TRANSACTION-RECORD.
           03  TR-CUSTOMER-NUMBER      PIC 9(04).
           03  FILLER                  PIC X(01).
           03  TR-CUSTOMER-NAME        PIC X(16).
           03  FILLER                  PIC X(01).
           03  TR-ITEM-NUMBER          PIC 9(05).
           03  FILLER                  REDEFINES TR-ITEM-NUMBER.
               05  TR-ITEM-DEPARTMENT  PIC 9(01).
               05  FILLER              PIC 9(04).
           03  FILLER                  PIC X(01).
           03  TR-ITEM-COST            PIC 9(03)V99.
           03  FILLER                  PIC X(47).

       FD  REPORT-FILE
           REPORT IS CUSTOMER-REPORT.

       WORKING-STORAGE SECTION.
       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
           88  END-OF-FILE                         VALUE 'Y'.

       01  DISCOUNT-TABLE.
           02  FILLER                  PIC 99      VALUE 05.
           02  FILLER                  PIC 99      VALUE 07.
           02  FILLER                  PIC 99      VALUE 10.
           02  FILLER                  PIC 99      VALUE 15.
           02  FILLER                  PIC 99      VALUE 06.
           02  FILLER                  PIC 99      VALUE 22.
           02  FILLER                  PIC 99      VALUE 12.
           02  FILLER                  PIC 99      VALUE 09.
           02  FILLER                  PIC 99      VALUE 20.
       01  FILLER                      REDEFINES DISCOUNT-TABLE.
           02  DISCOUNT                OCCURS 9 TIMES
                                       INDEXED BY DISCOUNT-IX
                                       PIC V99.

       01  CALCULATED-FIELDS.
           03  WS-DISCOUNT-AMT         PIC 9(3)V99.
           03  WS-CHARGE-AMT           PIC 9(3)V99.

       REPORT SECTION.
       RD  CUSTOMER-REPORT
           CONTROLS ARE FINAL, TR-CUSTOMER-NUMBER
           PAGE LIMIT IS 66 LINES
           HEADING 1
           FIRST DETAIL 5
           LAST DETAIL 58.

       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
           02  LINE 1.
               03  COLUMN 27   PIC X(41) VALUE
                   'C U S T O M E R  C H A R G E  R E P O R T'.
               03  COLUMN 90   PIC X(04) VALUE 'PAGE'.
               03  COLUMN 95   PIC ZZZZ9 SOURCE PAGE-COUNTER.
           02  LINE PLUS 2.
               03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
               03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
               03  COLUMN 30   PIC X(05) VALUE 'DEPT.'.
               03  COLUMN 39   PIC X(08) VALUE 'ITEM NO.'.
               03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
               03  COLUMN 64   PIC X(08) VALUE 'DISCT. %'.
               03  COLUMN 76   PIC X(11) VALUE 'DISCT. AMT.'.
               03  COLUMN 91   PIC X(06) VALUE 'CHARGE'.

       01  CHARGE-DETAIL TYPE DETAIL.
           02  LINE PLUS 1.
               03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER
                                                GROUP INDICATE.
               03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME
                                                GROUP INDICATE.
               03  COLUMN 32   PIC 9(01) SOURCE TR-ITEM-DEPARTMENT.
               03  COLUMN 40   PIC 9(05) SOURCE TR-ITEM-NUMBER.
               03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
               03  COLUMN 67   PIC V99 SOURCE DISCOUNT (DISCOUNT-IX).
               03  COLUMN 69   PIC X(01) VALUE '%'.
               03  COLUMN 78   PIC $$$$.99 SOURCE WS-DISCOUNT-AMT.
               03  COLUMN 93   PIC $$$$.99 SOURCE WS-CHARGE-AMT.

       01  CUSTOMER-TOTAL TYPE CONTROL FOOTING TR-CUSTOMER-NUMBER
           NEXT GROUP IS PLUS 2.
           02  LINE PLUS 1.
               03  COLUMN 50   PIC $$$$$.99 SUM TR-ITEM-COST.
               03  COLUMN 59   PIC X VALUE '*'.
               03  COLUMN 77   PIC $$$$$.99 SUM WS-DISCOUNT-AMT.
               03  COLUMN 86   PIC X VALUE '*'.
               03  COLUMN 92   PIC $$$$$.99 SUM WS-CHARGE-AMT.
               03  COLUMN 101  PIC X VALUE '*'.

       01  FINAL-TOTAL TYPE CONTROL FOOTING FINAL.
           02  LINE PLUS 1.
               03  COLUMN 10   PIC X(12) VALUE 'GRAND TOTALS'.
               03  COLUMN 48   PIC $$$,$$$.99 SUM TR-ITEM-COST.
               03  COLUMN 59   PIC XX VALUE '**'.
               03  COLUMN 75   PIC $$$,$$$.99 SUM WS-DISCOUNT-AMT.
               03  COLUMN 86   PIC XX VALUE '**'.
               03  COLUMN 90   PIC $$$,$$$.99 SUM WS-CHARGE-AMT.
               03  COLUMN 101  PIC XX VALUE '**'.

       PROCEDURE DIVISION.

       000-INITIATE.

           OPEN INPUT TRANSACTION-DATA,
                OUTPUT REPORT-FILE.

           INITIATE CUSTOMER-REPORT.

           READ TRANSACTION-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH.
      *    END-READ.

           PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
               UNTIL END-OF-FILE.

       000-TERMINATE.
           TERMINATE CUSTOMER-REPORT.

           CLOSE TRANSACTION-DATA,
               REPORT-FILE.

           STOP RUN.

       100-PROCESS-TRANSACTION-DATA.
           SET DISCOUNT-IX TO TR-ITEM-DEPARTMENT.
           COMPUTE WS-DISCOUNT-AMT ROUNDED =
               TR-ITEM-COST * DISCOUNT (DISCOUNT-IX).
           COMPUTE WS-CHARGE-AMT =
               TR-ITEM-COST - WS-DISCOUNT-AMT.
           GENERATE CHARGE-DETAIL.
           READ TRANSACTION-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH.
      *    END-READ.

       199-EXIT.
           EXIT.


_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:1354: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:1354"
( $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/run_reportwriter.at:1354"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:1356: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:1356"
( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:1356"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
                          C U S T O M E R  C H A R G E  R E P O R T                      PAGE     1

CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST    DISCT. %    DISCT. AMT.    CHARGE

   152   J. LANGDON            8       87653       $24.75         09%          $2.23         $22.52
                               6       64025        $9.45         22%          $2.08          $7.37
                               4       41915       $13.70         15%          $2.06         $11.64
                               1       17410        $2.51         05%           $.13          $2.38
                                                   $50.41 *                    $6.50 *       $43.91 *


  2468   L. MORRISEY           1       18520        $3.75         05%           $.19          $3.56
                               2       20012        $4.20         07%           $.29          $3.91
                               3       31572       $10.15         10%          $1.02          $9.13
                               4       48792       $37.50         15%          $5.63         $31.87
                               5       50407       $15.15         06%           $.91         $14.24
                               6       61575       $20.10         22%          $4.42         $15.68
                               7       79204       $51.70         12%          $6.20         $45.50
                               8       85075       $37.84         09%          $3.41         $34.43
                               9       98476       $87.94         20%         $17.59         $70.35
                                                  $268.33 *                   $39.66 *      $228.67 *


  3451   M. JACKSON            3       37847       $27.90         10%          $2.79         $25.11
                               5       58492       $68.50         06%          $4.11         $64.39
                               6       60010       $20.40         22%          $4.49         $15.91
                               8       85260       $78.52         09%          $7.07         $71.45
                               9       90520       $27.52         20%          $5.50         $22.02
                                                  $222.84 *                   $23.96 *      $198.88 *


  4512   S. LEVITT             2       24680       $30.50         07%          $2.14         $28.36
                               5       56784       $52.53         06%          $3.15         $49.38
                               6       60410       $12.15         22%          $2.67          $9.48
                               7       78952       $89.25         12%         $10.71         $78.54
                               8       85278       $49.75         09%          $4.48         $45.27
                               8       87492       $64.25         09%          $5.78         $58.47
                               9       97204       $84.75         20%         $16.95         $67.80
                                                  $383.18 *                   $45.88 *      $337.30 *


  5417   K. CONKLIN            1       13579       $35.72         05%          $1.79         $33.93
                               2       24615       $18.75         07%          $1.31         $17.44
                               3       34928       $37.45         10%          $3.75         $33.70
                               4       48527       $87.50         15%         $13.13         $74.37
                               5       50150       $18.95         06%          $1.14         $17.81
                               5       54652       $38.92         06%          $2.34         $36.58
                               5       59765       $98.95         06%          $5.94         $93.01
                               7       71572       $18.95         12%          $2.27         $16.68
                               8       85175       $80.10         09%          $7.21         $72.89
                               9       90275        $4.60         20%           $.92          $3.68
                               9       91572       $18.57         20%          $3.71         $14.86
                               9       97576       $84.95         20%         $16.99         $67.96
                                                  $543.41 *                   $60.50 *      $482.91 *


  6213   Z. HAMPTON            1       15792       $64.25         05%          $3.21         $61.04
                               1       19975       $98.75         05%          $4.94         $93.81







                          C U S T O M E R  C H A R G E  R E P O R T                      PAGE     2

CUST. NO.     CUST. NAME     DEPT.    ITEM NO.    ITEM COST    DISCT. %    DISCT. AMT.    CHARGE

  6213   Z. HAMPTON            3       34576       $51.15         10%          $5.12         $46.03
                               4       49512       $85.20         15%         $12.78         $72.42
                                                  $299.35 *                   $26.05 *      $273.30 *


  7545   M. LARSON             1       14676       $38.45         05%          $1.92         $36.53
                               1       18592       $82.51         05%          $4.13         $78.38
                               1       19994       $98.98         05%          $4.95         $94.03
                               2       21214       $15.15         07%          $1.06         $14.09
                               3       37515       $82.12         10%          $8.21         $73.91
                               3       38592       $96.15         10%          $9.62         $86.53
                               4       48485       $87.14         15%         $13.07         $74.07
                               5       52762       $37.92         06%          $2.28         $35.64
                               5       57684       $80.15         06%          $4.81         $75.34
                               7       79015       $96.25         12%         $11.55         $84.70
                               8       80123        $5.60         09%           $.50          $5.10
                               8       82462       $20.15         09%          $1.81         $18.34
                               9       91520       $18.15         20%          $3.63         $14.52
                               9       93715       $40.15         20%          $8.03         $32.12
                                                  $798.87 *                   $75.57 *      $723.30 *
         GRAND TOTALS                           $2,566.39 **                 $278.12 **   $2,288.27 **









































_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:1494: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:1494"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:1494"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_805
#AT_START_806
at_fn_group_banner 806 'run_reportwriter.at:1499' \
  "Sample Charge Report 3" "                         " 4
at_xfail=no
(
  $as_echo "806. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
0152 J. LANGDON       87653 02475
0152 J. LANGDON       64025 00945
0152 J. LANGDON       41915 01370
0152 J. LANGDON       17410 00251
2468 L. MORRISEY      18520 00375
2468 L. MORRISEY      20012 00420
2468 L. MORRISEY      31572 01015
2468 L. MORRISEY      48792 03750
2468 L. MORRISEY      50407 01515
2468 L. MORRISEY      61575 02010
2468 L. MORRISEY      79204 05170
2468 L. MORRISEY      85075 03784
2468 L. MORRISEY      98476 08794
3451 M. JACKSON       37847 02790
3451 M. JACKSON       58492 06850
3451 M. JACKSON       60010 02040
3451 M. JACKSON       85260 07852
3451 M. JACKSON       90520 02752
4512 S. LEVITT        24680 03050
4512 S. LEVITT        56784 05253
4512 S. LEVITT        60410 01215
4512 S. LEVITT        78952 08925
4512 S. LEVITT        85278 04975
4512 S. LEVITT        87492 06425
4512 S. LEVITT        97204 08475
5417 K. CONKLIN       13579 03572
5417 K. CONKLIN       24615 01875
5417 K. CONKLIN       34928 03745
5417 K. CONKLIN       48527 08750
5417 K. CONKLIN       50150 01895
5417 K. CONKLIN       54652 03892
5417 K. CONKLIN       59765 09895
5417 K. CONKLIN       71572 01895
5417 K. CONKLIN       85175 08010
5417 K. CONKLIN       90275 00460
5417 K. CONKLIN       91572 01857
5417 K. CONKLIN       97576 08495
6213 Z. HAMPTON       15792 06425
6213 Z. HAMPTON       19975 09875
6213 Z. HAMPTON       34576 05115
6213 Z. HAMPTON       49512 08520
7545 M. LARSON        14676 03845
7545 M. LARSON        18592 08251
7545 M. LARSON        19994 09898
7545 M. LARSON        21214 01515
7545 M. LARSON        37515 08212
7545 M. LARSON        38592 09615
7545 M. LARSON        48485 08714
7545 M. LARSON        52762 03792
7545 M. LARSON        57684 08015
7545 M. LARSON        79015 09625
7545 M. LARSON        80123 00560
7545 M. LARSON        82462 02015
7545 M. LARSON        91520 01815
7545 M. LARSON        93715 04015
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
      * ************************************************************* *
      * * MODIFICATIONS:                                              *
      * * ADDED GROUP ITEM TO INPUT RECORD DEFINITION AND CHANGED     * 20110227
      * * REPORT SECTION REFERENCES TO ELEMENTS UNDER GROUP TO FIX    * 20110227
      * * MISMATCHED CUSTOMER NAME/NUMBER ON REPORT.                  * 20110227
      * ************************************************************* *

      * ************************************************************* *
      * REPORT WRITER EXAMPLE #4.                                     *
      * ************************************************************* *

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT TRANSACTION-DATA
               ASSIGN TO EXTERNAL DATAIN
                         ORGANIZATION IS LINE SEQUENTIAL.

           SELECT REPORT-FILE
               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.

       DATA DIVISION.
       FILE SECTION.

       FD  TRANSACTION-DATA.

       01  TRANSACTION-RECORD.
           03  TR-CUSTOMER.                                             20110227
               05  TR-CUSTOMER-NUMBER  PIC 9(04).                       20110227
               05  FILLER              PIC X(01).                       20110227
               05  TR-CUSTOMER-NAME    PIC X(16).                       20110227
           03  FILLER                  PIC X(01).
           03  TR-ITEM-NUMBER          PIC 9(05).
           03  FILLER                  REDEFINES TR-ITEM-NUMBER.
               05  TR-ITEM-DEPARTMENT  PIC 9(01).
               05  FILLER              PIC 9(04).
           03  FILLER                  PIC X(01).
           03  TR-ITEM-COST            PIC 9(03)V99.
           03  FILLER                  PIC X(47).

       FD  REPORT-FILE
           REPORT IS CUSTOMER-REPORT.

       WORKING-STORAGE SECTION.
       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
           88  END-OF-FILE                         VALUE 'Y'.

       01  DISCOUNT-TABLE.
           02  FILLER                  PIC 99      VALUE 05.
           02  FILLER                  PIC 99      VALUE 07.
           02  FILLER                  PIC 99      VALUE 10.
           02  FILLER                  PIC 99      VALUE 15.
           02  FILLER                  PIC 99      VALUE 06.
           02  FILLER                  PIC 99      VALUE 22.
           02  FILLER                  PIC 99      VALUE 12.
           02  FILLER                  PIC 99      VALUE 09.
           02  FILLER                  PIC 99      VALUE 20.
       01  FILLER                      REDEFINES DISCOUNT-TABLE.
           02  DISCOUNT                OCCURS 9 TIMES
                                       INDEXED BY DISCOUNT-IX
                                       PIC V99.

       01  CALCULATED-FIELDS.
           03  WS-DISCOUNT-AMT         PIC 9(3)V99.
           03  WS-CHARGE-AMT           PIC 9(3)V99.

       REPORT SECTION.
       RD  CUSTOMER-REPORT
           CONTROLS ARE FINAL, TR-CUSTOMER
           PAGE LIMIT IS 66 LINES
           HEADING 1
           FIRST DETAIL 5
           LAST DETAIL 58.

       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
           02  LINE 1.
               03  COLUMN 27   PIC X(41) VALUE
                   'C U S T O M E R  C H A R G E  R E P O R T'.
               03  COLUMN 90   PIC X(04) VALUE 'PAGE'.
               03  COLUMN + 2  PIC ZZZZ9 SOURCE PAGE-COUNTER.
           02  LINE PLUS 2.
               03  COLUMN 01   PIC X(09) VALUE 'CUST. NO.'.
               03  COLUMN 15   PIC X(10) VALUE 'CUST. NAME'.
               03  COLUMN 51   PIC X(09) VALUE 'ITEM COST'.
               03  COLUMN 76   PIC X(11) VALUE 'DISCT. AMT.'.
               03  COLUMN 91   PIC X(06) VALUE 'CHARGE'.

       01  CHARGE-DETAIL TYPE DETAIL.
           02  LINE PLUS 1.
               03  COLUMN 51   PIC $$$$.99 SOURCE TR-ITEM-COST.
               03  COLUMN 78   PIC $$$$.99 SOURCE WS-DISCOUNT-AMT.
               03  COLUMN 93   PIC $$$$.99 SOURCE WS-CHARGE-AMT.

       01  CUSTOMER-TOTAL TYPE CONTROL FOOTING TR-CUSTOMER              20110227
           NEXT GROUP IS PLUS 2.
           02  LINE PLUS 1.
               03  COLUMN 03   PIC Z(04) SOURCE TR-CUSTOMER-NUMBER.
               03  COLUMN 10   PIC X(16) SOURCE TR-CUSTOMER-NAME.
               03  COLUMN 50   PIC $$$$$.99 SUM TR-ITEM-COST.
               03  COLUMN 77   PIC $$$$$.99 SUM WS-DISCOUNT-AMT.
               03  COLUMN 92   PIC $$$$$.99 SUM WS-CHARGE-AMT.

       01  FINAL-TOTAL TYPE CONTROL FOOTING FINAL.
           02  LINE PLUS 1.
               03  COLUMN 10   PIC X(12) VALUE 'GRAND TOTALS'.
               03  COLUMN 48   PIC $$$,$$$.99 SUM TR-ITEM-COST.
               03  COLUMN 59   PIC X VALUE '*'.
               03  COLUMN 75   PIC $$$,$$$.99 SUM WS-DISCOUNT-AMT.
               03  COLUMN 86   PIC X VALUE '*'.
               03  COLUMN 90   PIC $$$,$$$.99 SUM WS-CHARGE-AMT.
               03  COLUMN 101  PIC X VALUE '*'.

       PROCEDURE DIVISION.

       000-INITIATE.

           OPEN INPUT TRANSACTION-DATA,
                OUTPUT REPORT-FILE.

           INITIATE CUSTOMER-REPORT.

           READ TRANSACTION-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH
           END-READ.

           PERFORM 100-PROCESS-TRANSACTION-DATA THRU 199-EXIT
               UNTIL END-OF-FILE.

       000-TERMINATE.
           TERMINATE CUSTOMER-REPORT.

           CLOSE TRANSACTION-DATA,
                 REPORT-FILE.

           STOP RUN.

       100-PROCESS-TRANSACTION-DATA.
           SET DISCOUNT-IX TO TR-ITEM-DEPARTMENT.
           COMPUTE WS-DISCOUNT-AMT ROUNDED =
               TR-ITEM-COST * DISCOUNT (DISCOUNT-IX).
           COMPUTE WS-CHARGE-AMT =
               TR-ITEM-COST - WS-DISCOUNT-AMT.
           GENERATE CUSTOMER-REPORT.
           READ TRANSACTION-DATA
             AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH.
      *    END-READ.

       199-EXIT.
           EXIT.

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:1719: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:1719"
( $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/run_reportwriter.at:1719"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:1721: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:1721"
( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:1721"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
                          C U S T O M E R  C H A R G E  R E P O R T                      PAGE     1

CUST. NO.     CUST. NAME                          ITEM COST                DISCT. AMT.    CHARGE

   152   J. LANGDON                                $50.41                      $6.50         $43.91


  2468   L. MORRISEY                              $268.33                     $39.66        $228.67


  3451   M. JACKSON                               $222.84                     $23.96        $198.88


  4512   S. LEVITT                                $383.18                     $45.88        $337.30


  5417   K. CONKLIN                               $543.41                     $60.50        $482.91


  6213   Z. HAMPTON                               $299.35                     $26.05        $273.30


  7545   M. LARSON                                $798.87                     $75.57        $723.30
         GRAND TOTALS                           $2,566.39 *                  $278.12 *    $2,288.27 *










































_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:1794: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:1794"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:1794"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_806
#AT_START_807
at_fn_group_banner 807 'run_reportwriter.at:1799' \
  "Sample Charge Report 4" "                         " 4
at_xfail=no
(
  $as_echo "807. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
05 A 007328
05 A 090620
05 A 034602
05 A 017837
13 A 005035
13 A 049851
13 A 012139
22 A 077572
29 A 013491
33 A 050628
33 A 044987
33 A 050162
39 A 068745
39 A 058384
39 A 053005
44 A 085669
44 A 057891
49 A 065134
03 B 032035
03 B 054694
03 B 069591
03 B 046023
03 B 025725
19 B 045550
19 B 099371
19 B 049703
25 B 047000
25 B 087106
31 B 049157
34 B 005994
09 C 007980
14 C 092224
14 C 062942
23 C 002974
28 C 042394
28 C 014745
34 C 053467
34 C 054332
42 C 089295
42 C 073826
04 D 029685
04 D 060676
06 D 013230
06 D 042290
15 D 013076
15 D 024104
15 D 013078
38 D 078771
38 D 085871
11 E 099350
17 E 066301
27 E 038144
27 E 097807
27 E 008055
08 F 073201
09 F 008278
09 F 040898
09 F 039688
16 F 019308
16 F 015173
16 F 022865
16 F 003568
36 F 029276
40 F 078631
40 F 010249
40 F 059583
48 F 043877
48 F 006755
01 G 018347
20 G 098123
21 G 077346
22 G 025953
26 G 009587
41 G 083126
41 G 073046
32 H 038823
32 H 009989
32 H 065838
32 H 024994
32 H 016065
32 H 097042
43 H 077895
45 H 038692
46 H 088151
46 H 069538
09 J 039764
18 J 088890
18 J 039421
37 J 044560
45 J 018770
45 J 032993
45 J 089631
45 J 072659
02 K 075925
02 K 072909
02 K 040544
12 K 002138
12 K 029239
35 K 065936
35 K 093046
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

      * ************************************************************* *
      * REPORT WRITER EXAMPLE #5.                                     *
      * ************************************************************* *

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT SALES-DATA
               ASSIGN TO EXTERNAL DATAIN
                         ORGANIZATION IS LINE SEQUENTIAL.

           SELECT REPORT-FILE
               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.

       DATA DIVISION.
       FILE SECTION.

       FD  SALES-DATA.

       01  SALES-RECORD.
           03  SR-SALESMAN-NUMBER      PIC 9(02).
           03  FILLER                  PIC X(01).
           03  SR-DISTRICT-CODE        PIC X(01).
           03  FILLER                  PIC X(01).
           03  SR-SALE-AMOUNT          PIC 9(04)V99.
           03  FILLER                  PIC X(69).

       FD  REPORT-FILE
           REPORT IS DISTRICT-SALES-REPORT.

       WORKING-STORAGE SECTION.
       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
           88  END-OF-FILE                         VALUE 'Y'.

       01  COMMISSION-TABLE.
           02  FILLER                  PIC X(03)   VALUE 'A20'.
           02  FILLER                  PIC X(03)   VALUE 'B18'.
           02  FILLER                  PIC X(03)   VALUE 'C15'.
           02  FILLER                  PIC X(03)   VALUE 'D12'.
           02  FILLER                  PIC X(03)   VALUE 'E10'.
           02  FILLER                  PIC X(03)   VALUE 'F12'.
           02  FILLER                  PIC X(03)   VALUE 'G10'.
           02  FILLER                  PIC X(03)   VALUE 'H08'.
           02  FILLER                  PIC X(03)   VALUE 'J05'.
           02  FILLER                  PIC X(03)   VALUE 'K07'.
       01  FILLER                      REDEFINES COMMISSION-TABLE.
           02  COMMISSION-ENTRY        OCCURS 10 TIMES
                                       INDEXED BY COMMISSION-IX.
               03  CE-DISTRICT         PIC X(01).
               03  CE-RATE             PIC V99.

       01  CALCULATED-FIELDS.
           03  WS-COMMISSION           PIC 9(5)V99.

       REPORT SECTION.
       RD  DISTRICT-SALES-REPORT
           CONTROLS ARE FINAL, SR-DISTRICT-CODE, SR-SALESMAN-NUMBER
           PAGE LIMIT IS 66 LINES
           HEADING 1
           FIRST DETAIL 5
           LAST DETAIL 58.

       01  PAGE-HEAD-GROUP TYPE PAGE HEADING.
           02  LINE 1.
               03  COLUMN 27   PIC X(41) VALUE
                   'D I S T R I C T   S A L E S   R E P O R T'.
               03  COLUMN 90   PIC X(04) VALUE 'PAGE'.
               03  COLUMN 95   PIC ZZZZ9 SOURCE PAGE-COUNTER.
           02  LINE 3.
               03  COLUMN 20   PIC X(26) VALUE
                   '-------- SALESMAN --------'.
               03  COLUMN 54   PIC X(15) VALUE
                   '-- DISTRICT --'.
           02  LINE 4.
               03  COLUMN 20   PIC X(03) VALUE 'NO.'.
               03  COLUMN 28   PIC X(05) VALUE 'SALES'.
               03  COLUMN 37   PIC X(10) VALUE 'COMMISSION'.
               03  COLUMN 54   PIC X(03) VALUE 'NO.'.
               03  COLUMN 61   PIC X(05) VALUE 'SALES'.

       01  SALE-DETAIL TYPE DETAIL.
           02  LINE PLUS 1.
               03  COLUMN 01   PIC 99      SOURCE SR-SALESMAN-NUMBER.
               03  COLUMN 04   PIC X       SOURCE SR-DISTRICT-CODE.
               03  COLUMN 06   PIC 9999.99 SOURCE SR-SALE-AMOUNT.

       01  SALESMAN-TOTAL TYPE CONTROL FOOTING SR-SALESMAN-NUMBER.
           02  LINE PLUS 1.
               03  COLUMN 20   PIC 99    SOURCE SR-SALESMAN-NUMBER.
               03  ST-SALES-AMT COLUMN 24 PIC $$$,$$9.99 SUM
                       SR-SALE-AMOUNT.
               03  COLUMN 37 PIC $$$,$$9.99 SOURCE WS-COMMISSION.

       01  DISTRICT-TOTAL TYPE CONTROL FOOTING SR-DISTRICT-CODE
           NEXT GROUP PLUS 2.
           02  LINE PLUS 1.
               03  COLUMN 54   PIC X     SOURCE SR-DISTRICT-CODE.
               03  COLUMN 58   PIC $$$,$$9.99 SUM ST-SALES-AMT.

       01  FINAL-TOTAL TYPE CONTROL FOOTING FINAL.
           02  LINE PLUS 2.
               03  COLUMN 15   PIC X(19) VALUE
                   'MONTHLY TOTAL SALES'.
               03  COLUMN 57   PIC $$$$,$$9.99 SUM ST-SALES-AMT.
               03  COLUMN 69   PIC XX VALUE '**'.

       PROCEDURE DIVISION.

       DECLARATIVES.
       USE-SALESMAN-TOTAL SECTION. USE BEFORE REPORTING SALESMAN-TOTAL.
       USE-SALESMAN-TOTAL-PROC.
           SET COMMISSION-IX TO 1.
           SEARCH COMMISSION-ENTRY
               AT END
                   MOVE 0.00 TO WS-COMMISSION
               WHEN CE-DISTRICT (COMMISSION-IX) = SR-DISTRICT-CODE
                   COMPUTE WS-COMMISSION ROUNDED =
                       CE-RATE (COMMISSION-IX) * ST-SALES-AMT.

       USE-SALESMAN-TOTAL-EXIT.
           EXIT.

       END DECLARATIVES.

       000-INITIATE.

           OPEN INPUT SALES-DATA,
                OUTPUT REPORT-FILE.

           INITIATE DISTRICT-SALES-REPORT.

           READ SALES-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH
           END-READ.

           PERFORM 100-PROCESS-SALES-DATA THRU 199-EXIT
               UNTIL END-OF-FILE.

       000-TERMINATE.
           TERMINATE DISTRICT-SALES-REPORT.

           CLOSE SALES-DATA,
                 REPORT-FILE.

           STOP RUN.

       100-PROCESS-SALES-DATA.
           GENERATE DISTRICT-SALES-REPORT.
           READ SALES-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH
           END-READ.

       199-EXIT.
           EXIT.

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:2070: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:2070"
( $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/run_reportwriter.at:2070"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:2072: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:2072"
( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:2072"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
                          D I S T R I C T   S A L E S   R E P O R T                      PAGE     1

                   -------- SALESMAN --------        -- DISTRICT --
                   NO.     SALES    COMMISSION       NO.    SALES
                   05   $1,503.87      $300.77
                   13     $670.25      $134.05
                   22     $775.72      $155.14
                   29     $134.91       $26.98
                   33   $1,457.77      $291.55
                   39   $1,801.34      $360.27
                   44   $1,435.60      $287.12
                   49     $651.34      $130.27
                                                     A    $8,430.80


                   03   $2,280.68      $410.52
                   19   $1,946.24      $350.32
                   25   $1,341.06      $241.39
                   31     $491.57       $88.48
                   34      $59.94       $10.79
                                                     B    $6,119.49


                   09      $79.80       $11.97
                   14   $1,551.66      $232.75
                   23      $29.74        $4.46
                   28     $571.39       $85.71
                   34   $1,077.99      $161.70
                   42   $1,631.21      $244.68
                                                     C    $4,941.79


                   04     $903.61      $108.43
                   06     $555.20       $66.62
                   15     $502.58       $60.31
                   38   $1,646.42      $197.57
                                                     D    $3,607.81


                   11     $993.50       $99.35
                   17     $663.01       $66.30
                   27   $1,440.06      $144.01
                                                     E    $3,096.57


                   08     $732.01       $87.84
                   09     $888.64      $106.64
                   16     $609.14       $73.10
                   36     $292.76       $35.13
                   40   $1,484.63      $178.16
                   48     $506.32       $60.76
                                                     F    $4,513.50


                   01     $183.47       $18.35
                   20     $981.23       $98.12
                   21     $773.46       $77.35
                   22     $259.53       $25.95







                          D I S T R I C T   S A L E S   R E P O R T                      PAGE     2

                   -------- SALESMAN --------        -- DISTRICT --
                   NO.     SALES    COMMISSION       NO.    SALES
                   26      $95.87        $9.59
                   41   $1,561.72      $156.17
                                                     G    $3,855.28


                   32   $2,527.51      $202.20
                   43     $778.95       $62.32
                   45     $386.92       $30.95
                   46   $1,576.89      $126.15
                                                     H    $5,270.27


                   09     $397.64       $19.88
                   18   $1,283.11       $64.16
                   37     $445.60       $22.28
                   45   $2,140.53      $107.03
                                                     J    $4,266.88


                   02   $1,893.78      $132.56
                   12     $313.77       $21.96
                   35   $1,589.82      $111.29
                                                     K    $3,797.37

              MONTHLY TOTAL SALES                        $47,899.76 **





































_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:2210: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:2210"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:2210"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_807
#AT_START_808
at_fn_group_banner 808 'run_reportwriter.at:2215' \
  "Sample Payroll Report" "                          " 4
at_xfail=no
(
  $as_echo "808. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
01 6622 M GAVIN SHAFER         19740201 026000 01521 03362 00075 021042
01 6622 M GAVIN SHAFER         19740215 026000 01521 03362 00175 020942
01 6622 M GAVIN SHAFER         19740301 026000 01521 03362 00175 020942
01 6622 M GAVIN SHAFER         19740315 026000 01521 03362 00050 021067
01 7078 F VERA ALSTON          19740101 030000 01755 02304 00050 025891
01 7078 F VERA ALSTON          19740115 030000 01755 02304 00100 025841
01 7078 F VERA ALSTON          19740201 030000 01755 02304 00050 025891
01 7078 F VERA ALSTON          19740215 030000 01755 02304 00000 025941
01 7078 F VERA ALSTON          19740301 030000 01755 02304 00075 025866
01 7078 F VERA ALSTON          19740315 030000 01755 02304 00100 025841
01 8093 M GRADY KAISER         19740101 045000 02633 05819 00175 036374
01 8093 M GRADY KAISER         19740115 045000 02633 05819 00100 036449
01 8093 M GRADY KAISER         19740201 045000 02633 05819 00100 036449
01 8093 M GRADY KAISER         19740215 047500 02779 03648 00100 040973
01 8093 M GRADY KAISER         19740301 047500 02779 03648 00175 040898
05 1720 F PAULINE WINSTON      19740101 013000 00761 20110 00050 010080
05 1720 F PAULINE WINSTON      19740115 013000 00761 02110 00000 010130
05 1720 F PAULINE WINSTON      19740201 014000 00819 02272 00075 010834
05 1720 F PAULINE WINSTON      19740215 014000 00819 02272 00175 010734
05 1720 F PAULINE WINSTON      19740301 014000 00819 02272 00050 010859
05 2116 M HERMAN COX           19740101 010000 00585 01293 00175 007947
05 2116 M HERMAN COX           19740115 010000 00585 01293 00175 007947
05 2116 M HERMAN COX           19740201 010000 00585 01293 00100 008022
05 2116 M HERMAN COX           19740215 010000 00585 01293 00100 008022
05 2116 M HERMAN COX           19740301 010000 00585 01293 00075 008047
05 2116 M HERMAN COX           19740315 011000 00644 01187 00100 009070
05 6925 M ADOLF TRUJILLO       19740115 012500 00731 02379 00050 009340
05 6925 M ADOLF TRUJILLO       19740201 012500 00731 02379 00100 009290
05 6925 M ADOLF TRUJILLO       19740215 012500 00731 02379 00175 009215
05 6925 M ADOLF TRUJILLO       19740301 012500 00731 02379 00075 009315
05 6925 M ADOLF TRUJILLO       19740315 012500 00731 02379 00000 009390
10 1504 F TIFFANY KEIR         19740101 029000 01697 03129 00050 024124
10 1504 F TIFFANY KEIR         19740115 029000 01697 03129 00000 024174
10 1504 F TIFFANY KEIR         19740201 029000 01697 03129 00075 024099
10 1504 F TIFFANY KEIR         19740215 029000 01697 03129 00000 024174
10 1504 F TIFFANY KEIR         19740301 029000 01697 03129 00000 024174
10 1504 F TIFFANY KEIR         19740315 029000 01697 03129 00050 024124
10 6640 M ALEXANDER CATHEY     19740101 032500 01901 06185 00000 024414
10 6640 M ALEXANDER CATHEY     19740115 032500 01901 06185 00175 024239
10 6640 M ALEXANDER CATHEY     19740201 032500 01901 06185 00175 024239
10 6640 M ALEXANDER CATHEY     19740215 032500 01901 06185 00175 024239
10 6640 M ALEXANDER CATHEY     19740301 032500 01901 06185 00100 024314
10 6640 M ALEXANDER CATHEY     19740315 032500 01901 06185 00100 024314
10 9465 M STEVE HUGHES         19740101 029500 01726 04788 00175 022811
10 9465 M STEVE HUGHES         19740115 029500 01726 04788 00000 022986
10 9465 M STEVE HUGHES         19740201 029500 01726 04788 00000 022986
10 9465 M STEVE HUGHES         19740215 029500 01726 04788 00050 022936
10 9465 M STEVE HUGHES         19740301 029500 01726 04788 00075 022911
15 2903 F KAYLA VERBECK        19740101 014000 00819 02272 00050 010859
15 2903 F KAYLA VERBECK        19740115 014000 00819 02272 00175 010734
15 2903 F KAYLA VERBECK        19740201 014000 00819 02272 00050 010859
15 2903 F KAYLA VERBECK        19740215 014000 00819 02272 00175 010734
15 2903 F KAYLA VERBECK        19740301 014000 00819 02272 00000 010909
15 2903 F KAYLA VERBECK        19740315 014000 00819 02272 00075 010834
15 5196 F CLAIRE KELLAR        19740101 014500 00848 01114 00075 012463
15 5196 F CLAIRE KELLAR        19740115 014500 00848 01114 00100 012438
15 5196 F CLAIRE KELLAR        19740201 014500 00848 01114 00175 012363
15 5196 F CLAIRE KELLAR        19740215 014500 00848 01114 00050 012488
15 5196 F CLAIRE KELLAR        19740301 015300 00895 02912 00175 011318
15 5196 F CLAIRE KELLAR        19740315 015300 00895 02912 00100 011393
20 5190 F MARYANN GLAZENER     19740101 009000 00527 01164 00050 007260
20 5190 F MARYANN GLAZENER     19740115 009000 00527 01164 00075 007235
20 5190 F MARYANN GLAZENER     19740201 009000 00527 01164 00000 007310
20 5190 F MARYANN GLAZENER     19740215 009000 00527 01164 00075 007235
20 5190 F MARYANN GLAZENER     19740301 009000 00527 01164 00050 007260
20 5190 F MARYANN GLAZENER     19740315 009000 00527 01164 00100 007210
20 6580 F CAROLINE TROMBETTA   19740101 008000 00468 00863 00000 006669
20 6580 F CAROLINE TROMBETTA   19740115 008000 00468 00863 00075 006594
20 6580 F CAROLINE TROMBETTA   19740201 008000 00468 00863 00000 006569
20 6580 F CAROLINE TROMBETTA   19740215 008000 00468 00863 00075 006594
20 6580 F CAROLINE TROMBETTA   19740301 008000 00468 00863 00050 006619
20 6580 F CAROLINE TROMBETTA   19740315 008000 00468 00863 00075 006594
20 9507 F ADRIANA CHANGAZI     19740101 008300 00486 01347 00075 006392
20 9507 F ADRIANA CHANGAZI     19740115 008300 00486 01347 00175 006292
20 9507 F ADRIANA CHANGAZI     19740201 008300 00486 01347 00075 006392
20 9507 F ADRIANA CHANGAZI     19740215 008300 00486 01347 00175 006292
20 9507 F ADRIANA CHANGAZI     19740301 008300 00486 01347 00000 006467
20 9507 F ADRIANA CHANGAZI     19740315 008300 00486 01347 00175 006292
25 0428 M MELVIN BEHRENS       19740101 007800 00456 00842 00000 006502
25 0428 M MELVIN BEHRENS       19740115 007800 00456 00842 00175 006327
25 0428 M MELVIN BEHRENS       19740201 007800 00456 00842 00175 006327
25 0428 M MELVIN BEHRENS       19740215 007800 00456 00842 00075 006427
25 0428 M MELVIN BEHRENS       19740301 007800 00456 00842 00000 006502
25 0428 M MELVIN BEHRENS       19740315 007800 00456 00842 00075 006427
25 2003 M BALDWIN SIMONSEN     19740101 011000 00644 02093 00050 008213
25 2003 M BALDWIN SIMONSEN     19740115 011000 00644 02093 00075 008188
25 2003 M BALDWIN SIMONSEN     19740201 011000 00644 02093 00000 008263
25 2003 M BALDWIN SIMONSEN     19740215 011000 00644 02093 00100 008163
25 2003 M BALDWIN SIMONSEN     19740301 011500 00673 01487 00075 009265
25 2003 M BALDWIN SIMONSEN     19740315 011500 00673 01487 00175 009165
25 6491 M LEO TILLEY           19740101 010100 00591 00776 00050 008683
25 6491 M LEO TILLEY           19740115 010100 00591 00776 00075 008658
25 6491 M LEO TILLEY           19740201 010100 00591 00776 00050 008683
25 6491 M LEO TILLEY           19740215 010100 00591 00776 00075 008658
25 6491 M LEO TILLEY           19740301 010100 00591 00776 00100 008633
25 6491 M LEO TILLEY           19740315 010100 00591 00776 00000 008733
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
      * ************************************************************* *
      * * MODIFICATIONS:                                              *
      * * CORRECT PARAGRAPH NAME AND GO TO CODING ERRORS.             *
      * ************************************************************* *

      * ************************************************************* *
      * REPORT WRITER EXAMPLE #6.                                     *
      * ************************************************************* *

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT PAYROLL-REGISTER-DATA
               ASSIGN TO EXTERNAL DATAIN
                         ORGANIZATION IS LINE SEQUENTIAL.

           SELECT REPORT-FILE
               ASSIGN TO EXTERNAL LINE ADVANCING SYSPRINT.

       DATA DIVISION.
       FILE SECTION.

       FD  PAYROLL-REGISTER-DATA.

       01  PAYROLL-REGISTER-RECORD.
           03  PRR-DEPARTMENT-NUMBER   PIC 9(02).
           03  FILLER                  PIC X(01).
           03  PRR-EMPLOYEE-KEY.
               05  PRR-EMPLOYEE-NO     PIC 9(04).
               05  FILLER              PIC X(01).
               05  PRR-GENDER          PIC X(01).
               05  FILLER              PIC X(01).
               05  PRR-EMPLOYEE-NAME   PIC X(20).
           03  FILLER                  PIC X(01).
           03  PRR-PAY-DATE            PIC 9(08).
           03  FILLER                  REDEFINES PRR-PAY-DATE.
               05  PRR-PAY-DATE-YEAR   PIC 9(04).
               05  PRR-PAY-DATE-MONTH  PIC 9(02).
               05  PRR-PAY-DATE-DAY    PIC 9(02).
           03  FILLER                  PIC X(01).
           03  PRR-GROSS-PAY           PIC 9(04)V99.
           03  FILLER                  PIC X(01).
           03  PRR-FICA-WH             PIC 9(03)V99.
           03  FILLER                  PIC X(01).
           03  PRR-FED-WH              PIC 9(03)V99.
           03  FILLER                  PIC X(01).
           03  PRR-MISC-DED            PIC 9(03)V99.
           03  FILLER                  PIC X(01).
           03  PRR-NET-PAY             PIC 9(04)V99.
           03  FILLER                  PIC X(09).

       FD  REPORT-FILE
           REPORT IS QUARTERLY-PAY-REGISTER.

       WORKING-STORAGE SECTION.
       77  END-OF-FILE-SWITCH          PIC X(1)    VALUE 'N'.
           88  END-OF-FILE                         VALUE 'Y'.
       77  PR-SW                       PIC X(1)    VALUE 'N'.
       77  SUM-FED-WH                  PIC 9(04)V99 VALUE 0.
       77  HI-GROSS                    PIC 9(05) VALUE 2000.

       01  WS-EMPLOYEE-KEY.
           03  WS-EMPLOYEE-NUMBER      PIC 9(04).
           03  FILLER                  PIC X(03).
           03  WS-EMPLOYEE-NAME        PIC X(20).

       01  WS-PERCENTS-COMPUTED.
           03  WPC-DEPT                OCCURS 6 TIMES
                                       INDEXED BY WPCD-IX.
               05  WPC-PERCENT         OCCURS 5 TIMES
                                       INDEXED BY WPCC-IX
                                       PIC 9(3)V99.

       01  DEPARTMENT-TABLE.
           03  FILLER PIC X(17) VALUE '01MANAGEMENT     '.
           03  FILLER PIC X(50) VALUE ZEROS.
           03  FILLER PIC X(17) VALUE '05ADMINISTRATIVE '.
           03  FILLER PIC X(50) VALUE ZEROS.
           03  FILLER PIC X(17) VALUE '10SKILLED NURSING'.
           03  FILLER PIC X(50) VALUE ZEROS.
           03  FILLER PIC X(17) VALUE '15PATIENT SUPPORT'.
           03  FILLER PIC X(50) VALUE ZEROS.
           03  FILLER PIC X(17) VALUE '20HOUSEKEEPING   '.
           03  FILLER PIC X(50) VALUE ZEROS.
           03  FILLER PIC X(17) VALUE '25MAINTENANCE    '.
           03  FILLER PIC X(50) VALUE ZEROS.
       01  FILLER REDEFINES DEPARTMENT-TABLE.
           03  DEPARTMENT-ENTRY      OCCURS 6 TIMES
                                     INDEXED BY DE-IX.
               05  DE-NUMBER         PIC 9(02).
               05  DE-NAME           PIC X(15).
               05  DE-GROSS          PIC 9(08)V99.
               05  DE-FICA           PIC 9(08)V99.
               05  DE-FWT            PIC 9(08)V99.
               05  DE-MISC           PIC 9(08)V99.
               05  DE-NET            PIC 9(08)V99.

       REPORT SECTION.
       RD  QUARTERLY-PAY-REGISTER
           CONTROLS ARE FINAL, PRR-DEPARTMENT-NUMBER,
               PRR-EMPLOYEE-KEY
           PAGE LIMIT IS 66 LINES
           HEADING 1
           FIRST DETAIL 7
           LAST DETAIL 60.

       01  TYPE PAGE HEADING.
           02  LINE 1.
               03  COLUMN 39   PIC X(13) VALUE 'C E N T U R Y'.
               03  COLUMN 55   PIC X(13) VALUE 'M E D I C A L'.
               03  COLUMN 71   PIC X(11) VALUE 'C E N T E R'.
           02  LINE 2.
               03  COLUMN 35   PIC X(17) VALUE 'Q U A R T E R L Y'.
               03  COLUMN 55   PIC X(13) VALUE 'P A Y R O L L'.
               03  COLUMN 71   PIC X(15) VALUE 'R E G I S T E R'.
               03  COLUMN 111  PIC X(04) VALUE 'PAGE'.
               03  COLUMN 116  PIC ZZZZ9 SOURCE PAGE-COUNTER.
           02  LINE 4.
               03  COLUMN 06   PIC X(9) VALUE ALL '-'.
               03  COLUMN 15   PIC X(28) VALUE
                   ' EMPLOYEE ---------'.
               03  COLUMN 40   PIC X(05) VALUE 'GROSS'.
               03  COLUMN 54   PIC X(04) VALUE 'FICA'.
               03  COLUMN 66   PIC X(07) VALUE 'FED W/H'.
               03  COLUMN 80   PIC X(05) VALUE 'MISC.'.
               03  COLUMN 95   PIC X(03) VALUE 'NET'.
           02  LINE 5.
               03  COLUMN 07   PIC X(02) VALUE 'NO'.
               03  COLUMN 22   PIC X(04) VALUE 'NAME'.
               03  COLUMN 41   PIC X(03) VALUE 'PAY'.
               03  COLUMN 55   PIC X(03) VALUE 'TAX'.
               03  COLUMN 68   PIC X(03) VALUE 'TAX'.
               03  COLUMN 79   PIC X(07) VALUE 'DEDUCT.'.
               03  COLUMN 95   PIC X(03) VALUE 'PAY'.

       01  DEPT-HEAD TYPE CONTROL HEADING PRR-DEPARTMENT-NUMBER
           NEXT GROUP + 1.
           02  LINE PLUS 1.
               03  COLUMN 01   PIC X(18) VALUE
                     'DEPARTMENT NUMBER:'.
               03  COLUMN 21   PIC 9(02) SOURCE PRR-DEPARTMENT-NUMBER.
               03  COLUMN 24   PIC X(15) SOURCE DE-NAME (DE-IX).

       01  EMPLOYEE-DETAIL TYPE DETAIL.
           02  LINE + 1.
               03  COLUMN 01   PIC X(27) SOURCE PRR-EMPLOYEE-KEY.
               03  COLUMN 30   PIC X(5) VALUE "Hello"
                               PRESENT AFTER NEW PRR-EMPLOYEE-KEY
                                              OR PAGE.
               03  COLUMN 30   PIC X(5) VALUE " ''  "
                               ABSENT AFTER NEW PRR-EMPLOYEE-KEY
                                              OR PAGE.
               03  COLUMN 50   PIC 9(04).99 SOURCE PRR-GROSS-PAY.
               03  COLUMN 60   PIC 9(03).99 SOURCE PRR-FICA-WH.
               03  COLUMN 70   PIC 9(03).99 SOURCE PRR-FED-WH.
               03  COLUMN 80   PIC 9(03).99 SOURCE PRR-MISC-DED.
               03  COLUMN 90   PIC 9(04).99 SOURCE PRR-NET-PAY.

       01  EMPL-FOOT TYPE CONTROL FOOTING PRR-EMPLOYEE-KEY.
           02  LINE PLUS 1
                      PRESENT WHEN SUM-FED-WH > 80.00
                  .
               03  COLUMN 06   PIC ZZZ9  SOURCE WS-EMPLOYEE-NUMBER.
               03  COLUMN 14   PIC X(20) SOURCE WS-EMPLOYEE-NAME.
               03  COLUMN 38   PIC $$,$$9.99 SUM PRR-GROSS-PAY.
               03  COLUMN 53   PIC $$$9.99 SUM PRR-FICA-WH.
               03  COLUMN 66   PIC $$$9.99 SUM PRR-FED-WH.
               03  COLUMN 79   PIC $$$9.99 SUM PRR-MISC-DED.
               03  COLUMN 92   PIC $$,$$9.99 SUM PRR-NET-PAY.

       01  DEPT-FOOT TYPE CONTROL FOOTING PRR-DEPARTMENT-NUMBER
           NEXT GROUP PLUS 2.
           02  LINE PLUS 2.
               03  COLUMN 14   PIC X(20) VALUE
                   'DEPARTMENT TOTALS'.
               03  DEPT-FOOT-GROSS       COLUMN 38   PIC $$,$$9.99
                                         SUM PRR-GROSS-PAY.
               03  COLUMN 48   PIC X         VALUE '*'.
               03  DEPT-FOOT-FICA        COLUMN 53   PIC $$$9.99
                                         SUM PRR-FICA-WH.
               03  COLUMN 61   PIC X         VALUE '*'.
               03  DEPT-FOOT-FWT         COLUMN 66   PIC $$$9.99
                                         SUM PRR-FED-WH.
               03  COLUMN 74   PIC X         VALUE '*'.
               03  DEPT-FOOT-MISC        COLUMN 79   PIC $$$9.99
                                         SUM PRR-MISC-DED.
               03  COLUMN 87   PIC X         VALUE '*'.
               03  DEPT-FOOT-NET         COLUMN 92   PIC $$,$$9.99
                                         SUM PRR-NET-PAY.
               03  COLUMN 102  PIC X         VALUE '*'.

       01  COMP-FOOT TYPE CONTROL FOOTING FINAL.
           02  LINE PLUS 2.
               03  COLUMN 14   PIC X(20) VALUE
                   'COMPANY TOTALS'.
               03  CO-GROSS    COLUMN 37   PIC $$$,$$9.99
                               SUM PRR-GROSS-PAY.
               03  COLUMN 48   PIC XX        VALUE '**'.
               03  CO-FICA     COLUMN 51   PIC $$,$$9.99
                               SUM PRR-FICA-WH.
               03  COLUMN 61   PIC XX        VALUE '**'.
               03  CO-FWT      COLUMN 64   PIC $$,$$9.99
                               SUM PRR-FED-WH.
               03  COLUMN 74   PIC XX        VALUE '**'.
               03  CO-MISC     COLUMN 77   PIC $$,$$9.99
                               SUM PRR-MISC-DED.
               03  COLUMN 87   PIC XX        VALUE '**'.
               03  CO-NET      COLUMN 91   PIC $$$,$$9.99
                               SUM PRR-NET-PAY.
               03  COLUMN 102  PIC XX        VALUE '**'.

       01  REPORT-FOOT TYPE REPORT FOOTING.
           02  LINE 1.
               03  COLUMN 39   PIC X(13) VALUE 'C e n t u r y'.
               03  COLUMN 55   PIC X(13) VALUE 'M e d i c a l'.
               03  COLUMN 71   PIC X(11) VALUE 'C e n t e r'.
           02  LINE 2.
               03  COLUMN 35   PIC X(17) VALUE 'Q u a r t e r l y'.
               03  COLUMN 55   PIC X(13) VALUE 'P a y r o l l'.
               03  COLUMN 71   PIC X(15) VALUE 'R e g i s t e r'.
               03  COLUMN 111  PIC X(04) VALUE 'PAGE'.
               03  COLUMN 116  PIC ZZZZ9 SOURCE PAGE-COUNTER.
           02  LINE 4.
               03  COLUMN 40   PIC X(05) VALUE 'GROSS'.
               03  COLUMN 58   PIC X(04) VALUE 'FICA'.
               03  COLUMN 74   PIC X(07) VALUE 'FED W/H'.
               03  COLUMN 92   PIC X(05) VALUE 'MISC.'.
               03  COLUMN 111  PIC X(03) VALUE 'NET'.
           02  LINE 5.
               03  COLUMN 41   PIC X(03) VALUE 'PAY'.
               03  COLUMN 59   PIC X(03) VALUE 'TAX'.
               03  COLUMN 76   PIC X(03) VALUE 'TAX'.
               03  COLUMN 91   PIC X(07) VALUE 'DEDUCT.'.
               03  COLUMN 111  PIC X(03) VALUE 'PAY'.

           02  LINE PLUS 2.
               03  COLUMN 05   PIC X(29) VALUE
                   '* * * DEPARTMENT TOTALS * * *'.
           02  LINE PLUS 2.
               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (1).
               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (1).
               03  FILLER      PRESENT WHEN DE-GROSS (1) > HI-GROSS.
                 05  COLUMN 30 PIC X(4) VALUE "High".
               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (1).
               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (1 1).
               03  COLUMN 51   PIC X VALUE '%'.
               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (1).
               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (1 2).
               03  COLUMN 68   PIC X VALUE '%'.
               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (1).
               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (1 3).
               03  COLUMN 85   PIC X VALUE '%'.
               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (1).
               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (1 4).
               03  COLUMN 102  PIC X VALUE '%'.
               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (1).
               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (1 5).
               03  COLUMN 121  PIC X VALUE '%'.
               03  FILLER      PRESENT WHEN WPC-PERCENT (1 5) < 15 .
                 05  COLUMN PLUS 1 PIC X(2) VALUE "Lo".
           02  LINE PLUS 2.
               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (2).
               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (2).
               03  FILLER      PRESENT WHEN DE-GROSS (2) > HI-GROSS.
                 05  COLUMN 30 PIC X(4) VALUE "High".
               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (2).
               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (2 1).
               03  COLUMN 51   PIC X VALUE '%'.
               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (2).
               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (2 2).
               03  COLUMN 68   PIC X VALUE '%'.
               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (2).
               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (2 3).
               03  COLUMN 85   PIC X VALUE '%'.
               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (2).
               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (2 4).
               03  COLUMN 102  PIC X VALUE '%'.
               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (2).
               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (2 5).
               03  COLUMN 121  PIC X VALUE '%'.
               03  FILLER      PRESENT WHEN WPC-PERCENT (2 5) < 15 .
                 05  COLUMN PLUS 1 PIC X(2) VALUE "Lo".
           02  LINE PLUS 2.
               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (3).
               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (3).
               03  FILLER      PRESENT WHEN DE-GROSS (3) > HI-GROSS.
                 05  COLUMN 30 PIC X(4) VALUE "High".
               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (3).
               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (3 1).
               03  COLUMN 51   PIC X VALUE '%'.
               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (3).
               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (3 2).
               03  COLUMN 68   PIC X VALUE '%'.
               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (3).
               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (3 3).
               03  COLUMN 85   PIC X VALUE '%'.
               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (3).
               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (3 4).
               03  COLUMN 102  PIC X VALUE '%'.
               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (3).
               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (3 5).
               03  COLUMN 121  PIC X VALUE '%'.
               03  FILLER      PRESENT WHEN WPC-PERCENT (3 5) < 15 .
                 05  COLUMN PLUS 1 PIC X(2) VALUE "Lo".
           02  LINE PLUS 2.
               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (4).
               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (4).
               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (4).
               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (4 1).
               03  COLUMN 51   PIC X VALUE '%'.
               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (4).
               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (4 2).
               03  COLUMN 68   PIC X VALUE '%'.
               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (4).
               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (4 3).
               03  COLUMN 85   PIC X VALUE '%'.
               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (4).
               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (4 4).
               03  COLUMN 102  PIC X VALUE '%'.
               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (4).
               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (4 5).
               03  COLUMN 121  PIC X VALUE '%'.
           02  LINE PLUS 2.
               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (5).
               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (5).
               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (5).
               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (5 1).
               03  COLUMN 51   PIC X VALUE '%'.
               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (5).
               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (5 2).
               03  COLUMN 68   PIC X VALUE '%'.
               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (5).
               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (5 3).
               03  COLUMN 85   PIC X VALUE '%'.
               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (5).
               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (5 4).
               03  COLUMN 102  PIC X VALUE '%'.
               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (5).
               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (5 5).
               03  COLUMN 121  PIC X VALUE '%'.
           02  LINE PLUS 2.
               03  COLUMN 05   PIC 9(02) SOURCE DE-NUMBER (6).
               03  COLUMN 08   PIC X(15) SOURCE DE-NAME (6).
               03  COLUMN 38   PIC $$,$$9.99 SOURCE DE-GROSS (6).
               03  COLUMN 48   PIC ZZ9 SOURCE WPC-PERCENT (6 1).
               03  COLUMN 51   PIC X VALUE '%'.
               03  COLUMN 57   PIC $$$9.99   SOURCE DE-FICA (6).
               03  COLUMN 65   PIC ZZ9 SOURCE WPC-PERCENT (6 2).
               03  COLUMN 68   PIC X VALUE '%'.
               03  COLUMN 74   PIC $$$9.99   SOURCE DE-FWT (6).
               03  COLUMN 82   PIC ZZ9 SOURCE WPC-PERCENT (6 3).
               03  COLUMN 85   PIC X VALUE '%'.
               03  COLUMN 91   PIC $$$9.99   SOURCE DE-MISC (6).
               03  COLUMN 99   PIC ZZ9 SOURCE WPC-PERCENT (6 4).
               03  COLUMN 102  PIC X VALUE '%'.
               03  COLUMN 108  PIC $$,$$9.99 SOURCE DE-NET (6).
               03  COLUMN 118  PIC ZZ9 SOURCE WPC-PERCENT (6 5).
               03  COLUMN 121  PIC X VALUE '%'.
           02  LINE PLUS 2.
               03  COLUMN 37   PIC $$$,$$9.99 SOURCE CO-GROSS.
               03  COLUMN 48   PIC X(5) VALUE '100%'.
               03  COLUMN 55   PIC $$,$$9.99  SOURCE CO-FICA.
               03  COLUMN 65   PIC X(5) VALUE '100%'.
               03  COLUMN 72   PIC $$,$$9.99  SOURCE CO-FWT.
               03  COLUMN 82   PIC X(5) VALUE '100%'.
               03  COLUMN 89   PIC $$,$$9.99  SOURCE CO-MISC.
               03  COLUMN 99   PIC X(5) VALUE '100%'.
               03  COLUMN 107  PIC $$$,$$9.99 SOURCE CO-NET.
               03  COLUMN 118  PIC X(5) VALUE '100%'.

       PROCEDURE DIVISION.

       DECLARATIVES.

       DEPT-HEAD-USE SECTION. USE BEFORE REPORTING DEPT-HEAD.
       DEPT-HEAD-PROC.
           SET DE-IX TO +1.
           SEARCH DEPARTMENT-ENTRY
               WHEN DE-NUMBER (DE-IX) = PRR-DEPARTMENT-NUMBER
                   MOVE ZEROS TO DE-GROSS (DE-IX), DE-FICA (DE-IX),
                                 DE-FWT (DE-IX), DE-MISC (DE-IX),
                                 DE-NET (DE-IX).

       DEPT-HEAD-EXIT.
           EXIT.

       EMPL-FOOT-USE SECTION. USE BEFORE REPORTING EMPL-FOOT.
       EMPL-FOOT-PROC.
           MOVE PRR-EMPLOYEE-KEY TO WS-EMPLOYEE-KEY.
           MOVE 'Y' TO PR-SW.

       EMPL-FOOT-EXIT.
           EXIT.

       DEPT-FOOT-USE SECTION. USE BEFORE REPORTING DEPT-FOOT.
       DEPT-FOOT-PROC.
           MOVE DEPT-FOOT-GROSS TO DE-GROSS (DE-IX).
           MOVE DEPT-FOOT-FICA TO DE-FICA (DE-IX).
           MOVE DEPT-FOOT-FWT TO DE-FWT (DE-IX).
           MOVE DEPT-FOOT-MISC TO DE-MISC (DE-IX).
           MOVE DEPT-FOOT-NET TO DE-NET (DE-IX).
      *     SUPPRESS PRINTING.

       DEPT-FOOT-EXIT.
           EXIT.

       COMP-FOOT-USE SECTION. USE BEFORE REPORTING COMP-FOOT.
       COMP-FOOT-PROC.
           PERFORM COMP-FOOT-CALC
               VARYING WPCD-IX FROM +1 BY +1
               UNTIL WPCD-IX > +6.
           GO TO COMP-FOOT-EXIT.

       COMP-FOOT-CALC.
           SET DE-IX TO WPCD-IX.
           SET WPCC-IX TO +1.
           COMPUTE WPC-PERCENT (WPCD-IX WPCC-IX) ROUNDED =
               ((DE-GROSS (DE-IX) / CO-GROSS) * 100) + .5.
           SET WPCC-IX TO +2.
           COMPUTE WPC-PERCENT (WPCD-IX WPCC-IX) ROUNDED =
               ((DE-FICA (DE-IX) / CO-FICA) * 100) + .5.
           SET WPCC-IX TO +3.
           COMPUTE WPC-PERCENT (WPCD-IX WPCC-IX) ROUNDED =
               ((DE-FWT (DE-IX) / CO-FWT) * 100) + .5.
           SET WPCC-IX TO +4.
           COMPUTE WPC-PERCENT (WPCD-IX WPCC-IX) ROUNDED =
               ((DE-MISC (DE-IX) / CO-MISC) * 100) + .5.
           SET WPCC-IX TO +5.
           COMPUTE WPC-PERCENT (WPCD-IX WPCC-IX) ROUNDED =
               ((DE-NET (DE-IX) / CO-NET) * 100) + .5.

       COMP-FOOT-EXIT.
           EXIT.

       END DECLARATIVES.

       000-INITIATE.

           OPEN INPUT PAYROLL-REGISTER-DATA,
                OUTPUT REPORT-FILE.

           INITIATE QUARTERLY-PAY-REGISTER.

           READ PAYROLL-REGISTER-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH.

           PERFORM 100-PROCESS-PAYROLL-DATA THRU 199-EXIT
               UNTIL END-OF-FILE.

       000-TERMINATE.
           TERMINATE QUARTERLY-PAY-REGISTER.

           CLOSE PAYROLL-REGISTER-DATA,
                 REPORT-FILE.

           STOP RUN.

       100-PROCESS-PAYROLL-DATA.
           ADD PRR-FED-WH TO SUM-FED-WH.
           GENERATE QUARTERLY-PAY-REGISTER.
           IF PR-SW = 'Y'
               MOVE 'N' TO PR-SW
               MOVE ZERO TO SUM-FED-WH.
           READ PAYROLL-REGISTER-DATA
               AT END
                   MOVE 'Y' TO END-OF-FILE-SWITCH.

       199-EXIT.
           EXIT.

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:2795: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:2795"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:266: warning: PLUS is ignored on first field of line
prog.cob:288: warning: PLUS is ignored on first field of line
prog.cob:310: warning: PLUS is ignored on first field of line
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:2795"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:2801: DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_DATAIN=\"./inp_data\" DD_SYSPRINT=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:2801"
( $at_check_trace; DD_DATAIN="./inp_data" DD_SYSPRINT="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:2801"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
                                      C E N T U R Y   M E D I C A L   C E N T E R
                                  Q U A R T E R L Y   P A Y R O L L   R E G I S T E R                         PAGE     1

     --------- EMPLOYEE ---------      GROSS         FICA        FED W/H       MISC.          NET
      NO             NAME               PAY           TAX          TAX        DEDUCT.         PAY

DEPARTMENT NUMBER:  01 MANAGEMENT

     6622    GAVIN SHAFER            $1,040.00       $60.84      $134.48        $4.75        $839.93
     7078    VERA ALSTON             $1,800.00      $105.30      $138.24        $3.75      $1,552.71
     8093    GRADY KAISER            $2,300.00      $134.57      $247.53        $6.50      $1,911.43

             DEPARTMENT TOTALS       $5,140.00 *    $300.71 *    $520.25 *     $15.00 *    $4,304.07 *


DEPARTMENT NUMBER:  05 ADMINISTRATIVE

     1720    PAULINE WINSTON           $680.00       $39.79      $290.36        $3.50        $526.37
     2116    HERMAN COX                $610.00       $35.69       $76.52        $7.25        $490.55
     6925    ADOLF TRUJILLO            $625.00       $36.55      $118.95        $4.00        $465.50

             DEPARTMENT TOTALS       $1,915.00 *    $112.03 *    $485.83 *     $14.75 *    $1,482.42 *


DEPARTMENT NUMBER:  10 SKILLED NURSING

     1504    TIFFANY KEIR            $1,740.00      $101.82      $187.74        $1.75      $1,448.69
     6640    ALEXANDER CATHEY        $1,950.00      $114.06      $371.10        $7.25      $1,457.59
     9465    STEVE HUGHES            $1,475.00       $86.30      $239.40        $3.00      $1,146.30

             DEPARTMENT TOTALS       $5,165.00 *    $302.18 *    $798.24 *     $12.00 *    $4,052.58 *


DEPARTMENT NUMBER:  15 PATIENT SUPPORT

     2903    KAYLA VERBECK             $840.00       $49.14      $136.32        $5.25        $649.29
     5196    CLAIRE KELLAR             $886.00       $51.82      $102.80        $6.75        $724.63

             DEPARTMENT TOTALS       $1,726.00 *    $100.96 *    $239.12 *     $12.00 *    $1,373.92 *


DEPARTMENT NUMBER:  20 HOUSEKEEPING


             DEPARTMENT TOTALS       $1,518.00 *     $88.86 *    $202.44 *     $13.00 *    $1,212.76 *


DEPARTMENT NUMBER:  25 MAINTENANCE

     2003    BALDWIN SIMONSEN          $670.00       $39.22      $113.46        $4.75        $512.57

             DEPARTMENT TOTALS       $1,744.00 *    $102.04 *    $210.54 *     $13.25 *    $1,418.17 *

             COMPANY TOTALS         $17,208.00 ** $1,006.78 ** $2,456.42 **    $80.00 **  $13,843.92 **












                                      C e n t u r y   M e d i c a l   C e n t e r
                                  Q u a r t e r l y   P a y r o l l   R e g i s t e r                         PAGE     2

                                       GROSS             FICA            FED W/H           MISC.              NET
                                        PAY               TAX              TAX            DEDUCT.             PAY

    * * * DEPARTMENT TOTALS * * *

    01 MANAGEMENT            High    $5,140.00  30%     $300.71  30%     $520.25  21%      $15.00  19%     $4,304.07  31%

Lo  05 ADMINISTRATIVE                $1,915.00  11%     $112.03  11%     $485.83  20%      $14.75  18%     $1,482.42  11%

    10 SKILLED NURSING       High    $5,165.00  30%     $302.18  30%     $798.24  33%      $12.00  15%     $4,052.58  29%

    15 PATIENT SUPPORT               $1,726.00  10%     $100.96  10%     $239.12  10%      $12.00  15%     $1,373.92  10%

    20 HOUSEKEEPING                  $1,518.00   9%      $88.86   9%     $202.44   8%      $13.00  16%     $1,212.76   9%

    25 MAINTENANCE                   $1,744.00  10%     $102.04  10%     $210.54   9%      $13.25  17%     $1,418.17  10%

                                    $17,208.00 100%   $1,006.78 100%   $2,456.42 100%      $80.00 100%    $13,843.92 100%
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:2895: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:2895"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:2895"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_808
#AT_START_809
at_fn_group_banner 809 'run_reportwriter.at:2900' \
  "Sample REPORT with RIGHT/CENTER" "                " 4
at_xfail=no
(
  $as_echo "809. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
00099Dorken, Keith       CS 000008
00007Allinson, Sandy     MA 000118
00125Allinson, Nina      MA 012308
00126Allinson, Natalia   MA 000008
00127Allinson, Kristina  MBA000008
00131Norman, Nancy       SC 000006
00132Norman, Becky       SC 000116
00133Norman, Michelle    SC 112306
00134Norman, James       AM 000006
12345Norman, Ron         CS 000008
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.

       FILE-CONTROL.
               SELECT INPUT-FILE ASSIGN TO EXTERNAL STUDENT
                              ORGANIZATION IS LINE SEQUENTIAL.
               SELECT PRINT-FILE ASSIGN TO EXTERNAL
                              LINE ADVANCING REPORT1.

       DATA DIVISION.
       FILE SECTION.
       FD   INPUT-FILE.
       01   INPUT-REC.
               05  STUDENT-ID               PIC  9(5).
               05  STUDENT-NAME             PIC  X(20).
               05  MAJOR                    PIC  XXX.
               05  NUM-COURSES              PIC  9(6).

       FD   PRINT-FILE
             BLOCK CONTAINS 0 RECORDS
             RECORDING MODE IS F
             RECORD CONTAINS 132 CHARACTERS
            REPORT IS STUDENT-REPORT.
       01   RW-REC  PIC X(90).

       WORKING-STORAGE SECTION.
       01   ARE-THERE-MORE-RECORDS       PIC  XXX   VALUE  "YES".

       REPORT SECTION.
       RD   STUDENT-REPORT
           PAGE LIMIT 30
           HEADING 1
           FIRST DETAIL  5
           LAST  DETAIL 25
           FOOTING 28
           LINE LIMIT 90
           .
       01 HEADING-LINE.
          02 TYPE PAGE HEADING LINE PLUS 1.
            05  COLUMN 1      PIC X(50) VALUE
                "         1         2         3         4         5".
            05  COLUMN 51     PIC X(20) VALUE "         6         7".
          02 TYPE PAGE HEADING LINE PLUS 1.
            05  COLUMN 1      PIC X(50) VALUE
                "12345678901234567890123456789012345678901234567890".
            05  COLUMN 51     PIC X(20) VALUE "12345678901234567890".
          02 TYPE PAGE HEADING LINE PLUS 1.
            05  COLUMN 1      PIC X(2)  VALUE "Ln".
            05  COLUMN 5      PIC X(6)  VALUE "--ID--".
            05  COLUMN 16     PIC X(20) VALUE "--------Name--------".
            05  COLUMN 39     PIC X(5)  VALUE "Major".
            05  COLUMN 45     PIC XXX   VALUE "*-*".
            05  COLUMN 54     PIC X(5)  VALUE "+Odd+".
            05  COLUMN 61     PIC X(6)  VALUE "+Even+".

       01 REPORT-LINE
          TYPE DETAIL LINE PLUS  1.
            05  COLUMN PLUS 1 PIC Z9
                  SOURCE LINE-COUNTER OF STUDENT-REPORT.
            05  COLUMN LEFT PLUS 3   PIC Z(5)9 SOURCE STUDENT-ID.
            05  COLUMN CENTER 25     PIC X(20) SOURCE STUDENT-NAME.
            05  COLUMN RIGHT  43     PIC X(5)  SOURCE MAJOR.
            05  COLUMN        45     PIC XXX   VALUE ":-:".
            05  COLUMN CENTER 56     PIC Z(4)9 SOURCE NUM-COURSES.
            05  COLUMN CENTER 63     PIC Z(5)9 SOURCE NUM-COURSES.
            05  COLUMN        68     PIC X   VALUE ":".

       PROCEDURE DIVISION.
       A000-MAINLINE.
           OPEN  INPUT  INPUT-FILE
                 OUTPUT PRINT-FILE
           PERFORM DO-INIT.
           READ INPUT-FILE
               AT END
                   MOVE "NO" TO ARE-THERE-MORE-RECORDS.
           PERFORM A001-LOOP
               UNTIL ARE-THERE-MORE-RECORDS = "NO ".
           PERFORM DO-TERM.
           CLOSE INPUT-FILE
                 PRINT-FILE.
           STOP RUN.

       A001-LOOP.
           GENERATE REPORT-LINE.
           READ INPUT-FILE
               AT END
                   MOVE "NO " TO ARE-THERE-MORE-RECORDS.
       DO-INIT.
           INITIATE STUDENT-REPORT.

       DO-TERM.
           TERMINATE STUDENT-REPORT.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3014: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:3014"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:62: warning: PLUS is ignored on first field of line
prog.cob:64: error: PLUS is not allowed with LEFT, RIGHT or CENTER
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_reportwriter.at:3014"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3019: \$COMPILE -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_reportwriter.at:3019"
( $at_check_trace; $COMPILE -std=mf prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:62: warning: PLUS is ignored on first field of line
prog.cob:64: warning: PLUS is not recommended with LEFT, RIGHT or CENTER
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3019"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3024: DD_STUDENT=./inp_data DD_REPORT1=./report.txt \\
\$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'an embedded newline' "run_reportwriter.at:3024"
( $at_check_trace; DD_STUDENT=./inp_data DD_REPORT1=./report.txt \
$COBCRUN_DIRECT ./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/run_reportwriter.at:3024"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
         1         2         3         4         5         6         7
1234567890123456789012345678901234567890123456789012345678901234567890
Ln  --ID--     --------Name--------   Major *-*      +Odd+  +Even+

 5  99            Dorken, Keith          CS :-:        8      8    :
 6  7            Allinson, Sandy         MA :-:       118    118   :
 7  125          Allinson, Nina          MA :-:      12308  12308  :
 8  126         Allinson, Natalia        MA :-:        8      8    :
 9  127        Allinson, Kristina       MBA :-:        8      8    :
10  131           Norman, Nancy          SC :-:        6      6    :
11  132           Norman, Becky          SC :-:       116    116   :
12  133         Norman, Michelle         SC :-:      12306  112306 :
13  134           Norman, James          AM :-:        6      6    :
14  12345          Norman, Ron           CS :-:        8      8    :
















_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3063: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:3063"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3063"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_809
#AT_START_810
at_fn_group_banner 810 'run_reportwriter.at:3068' \
  "STUDENT REPORT with INITIAL" "                    " 4
at_xfail=no
(
  $as_echo "810. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
00123Dorken, Keith       CS 08
00124Allinson, Sandy     MA 08
00125Allinson, Nina      MA 08
00126Allinson, Natalia   MA 08
00127Allinson, Kristina  MBA08
00131Norman, Nancy       SC 06
00132Norman, Becky       SC 06
00133Norman, Michelle    SC 06
00134Norman, James       AM 06
12345Norman, Ron         CS 08
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog INITIAL.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
               SELECT INPUT-FILE ASSIGN TO EXTERNAL STUDENT
                              ORGANIZATION IS LINE SEQUENTIAL.
               SELECT PRINT-FILE ASSIGN TO EXTERNAL
                              LINE ADVANCING REPORT1.

       DATA DIVISION.
       FILE SECTION.
       FD   INPUT-FILE.
       01   INPUT-REC.
               05  STUDENT-ID               PIC  9(5).
               05  STUDENT-NAME             PIC  X(20).
               05  MAJOR                    PIC  XXX.
               05  NUM-COURSES              PIC  99.

       FD   PRINT-FILE
             REPORT IS STUDENT-REPORT STUDENT-REPORT2.

       WORKING-STORAGE SECTION.
       01   ARE-THERE-MORE-RECORDS       PIC  XXX   VALUE  "YES".

       REPORT SECTION.
       RD   STUDENT-REPORT
           PAGE LIMIT 30 LINES
           HEADING 2
           FIRST DETAIL 3
           LAST DETAIL 25
           FOOTING 28.
       01   REPORT-LINE
            TYPE DETAIL
             LINE PLUS  1.
            05  COLUMN 1 PIC 9(2)
                  SOURCE LINE-COUNTER OF STUDENT-REPORT.
            05  COLUMN 4      PIC 9(6)     SOURCE    STUDENT-ID.
            05  COLUMN 15     PIC X(20)    SOURCE    STUDENT-NAME.
            05  COLUMN 40     PIC XXX      SOURCE    MAJOR.
            05  COLUMN 45     PIC XXX      VALUE "-*-".
            05  COLUMN 52     PIC 99       SOURCE    NUM-COURSES.

       RD  STUDENT-REPORT2
           PAGE LIMIT 60 LINES
           HEADING 2
           FIRST DETAIL 5
           LAST DETAIL 55
           FOOTING 58.
       01   REPORT-LINE2
            TYPE DETAIL
             LINE PLUS  1.
            05  COLUMN 4      PIC 9(6)     SOURCE    STUDENT-ID.
            05  COLUMN 15     PIC X(20)    SOURCE    STUDENT-NAME.
            05  COLUMN 40     PIC XXX      SOURCE    MAJOR.
            05  COLUMN 45     PIC 99       SOURCE    NUM-COURSES.
       01   REPORT-LINE3
            TYPE DETAIL
             LINE PLUS  2.
            05  COLUMN 4      PIC 9(6)     SOURCE    STUDENT-ID.
            05  COLUMN 15     PIC X(20)    SOURCE    STUDENT-NAME.
            05  COLUMN 40     PIC XXX      SOURCE    MAJOR.

       PROCEDURE DIVISION.
       A000-MAINLINE.
           OPEN  INPUT  INPUT-FILE
                 OUTPUT PRINT-FILE
           PERFORM DO-INIT.
           READ INPUT-FILE
               AT END
                   MOVE "NO" TO ARE-THERE-MORE-RECORDS.
           PERFORM A001-LOOP
               UNTIL ARE-THERE-MORE-RECORDS = "NO ".
           PERFORM DO-TERM.
           CLOSE INPUT-FILE
                 PRINT-FILE.
           STOP RUN.

       A001-LOOP.
           GENERATE REPORT-LINE.
           READ INPUT-FILE
               AT END
                   MOVE "NO " TO ARE-THERE-MORE-RECORDS.
       DO-INIT.
           INITIATE STUDENT-REPORT.

       DO-TERM.
           TERMINATE STUDENT-REPORT.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3176: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:3176"
( $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/run_reportwriter.at:3176"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3178: DD_STUDENT=\"./inp_data\" DD_REPORT1=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_STUDENT=\"./inp_data\" DD_REPORT1=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:3178"
( $at_check_trace; DD_STUDENT="./inp_data" DD_REPORT1="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:3178"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'


03 000123     Dorken, Keith            CS   -*-    08
04 000124     Allinson, Sandy          MA   -*-    08
05 000125     Allinson, Nina           MA   -*-    08
06 000126     Allinson, Natalia        MA   -*-    08
07 000127     Allinson, Kristina       MBA  -*-    08
08 000131     Norman, Nancy            SC   -*-    06
09 000132     Norman, Becky            SC   -*-    06
10 000133     Norman, Michelle         SC   -*-    06
11 000134     Norman, James            AM   -*-    06
12 012345     Norman, Ron              CS   -*-    08


















_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3215: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:3215"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3215"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_810
#AT_START_811
at_fn_group_banner 811 'run_reportwriter.at:3220' \
  "ORDER REPORT; Test substring" "                   " 4
at_xfail=no
(
  $as_echo "811. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
10001090001012010590416      $
10001090002013016950416      $
10002090002023016950416      $
10002090001022010590416      $
10003090007023016950417      $
10003090008032010590417      $
10003090009023016950417      $
10003090010032010590417      $
10004090007023016950417      $
10004090008032010590417      $
10004090009023016950417      $
10004090010032010590417      $
10004090011032010590417      $
10004090012032010590417      $
10004090013032010590417      $
10004090014032010590417      $
10004090015032010590417      $
10005090007023016950417      $
10005090008032010590417      $
10005090009023016950417      $
10005090010032010590417      $
10005090011032010590417      $
10005090012032010590417      $
10005090013032010590417      $
10005090014032010590417      $
10005090015032010590417      $
10005090016032010590417      $
10005090017032010590417      $
10005090018032010590417      $
10006090007023016950417      $
10006090008032010590417      $
10006090009023016950417      $
10006090010032010590417      $
10006090011032010590417      $
10006090012032010590417      $
10006090013032010590417      $
10006090014032010590417      $
10006090015032010590417      $
10006090016032010590417      $
10006090017032010590417      $
10006090018032010590417      $
10006090019032010590417      $
10006090020032010590417      $
10007090007023016950417      $
10007090008032010590417      $
10007090009023016950417      $
10007090010032010590417      $
10007090011032010590417      $
10007090012032010590417      $
10007090013032010590417      $
10007090014032010590417      $
10007090015032010590417      $
10007090016032010590417      $
10007090017032010590417      $
10007090018032010590417      $
10007090019032010590417      $
10007090020032010590417      $
10007090021032010590417      $
10007090022032010590417      $
10008090007023016950417      $
10008090008032010590417      $
10008090009023016950417      $
10008090010032010590417      $
10008090011032010590417      $
10008090012032010590417      $
10008090013032010590417      $
10008090014032010590417      $
10008090015032010590417      $
10008090016032010590417      $
10008090017032010590417      $
10008090018032010590417      $
10008090019032010590417      $
10008090020032010590417      $
10008090021032010590417      $
10008090022032010590417      $
10009090007023016950417      $
10009090008032010590417      $
10009090009023016950417      $
10009090010032010590417      $
10009090011032010590417      $
10009090012032010590417      $
10009090013032010590417      $
10009090014032010590417      $
10009090015032010590417      $
10009090016032010590417      $
10009090017032010590417      $
10009090018032010590417      $
10009090019032010590417      $
10009090020032010590417      $
10009090021032010590417      $
10009090022032010590417      $
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT CUST-ORDER-FILE ASSIGN TO EXTERNAL CUSTORD
                          ORGANIZATION IS LINE SEQUENTIAL.
           SELECT CUST-PRINT-FILE ASSIGN TO EXTERNAL
                          LINE ADVANCING REPORT2.

       DATA DIVISION.
       FILE SECTION.
       FD  CUST-ORDER-FILE.
       01  CUST-ORDER-REC.
           05  CUST-NUM      PIC 9(5).
           05  ITEM-NUM      PIC 9(6).
           05  NUM-ORD       PIC 999.
           05  PRICE         PIC 999V99.
           05  SHIPPING      PIC 99V99.
           05  FILLER        PIC X(7).

       FD  CUST-PRINT-FILE
            REPORT IS ORDER-REPORT.

       WORKING-STORAGE SECTION.
       01    INDICATORS.
           05  ARE-THERE-MORE-RECORDS     PIC XXX   VALUE 'YES'.
               88  THERE-ARE-NO-MORE-RECORDS        VALUE 'NO '.
       01    CONSTANTS.
           05  SALES-TAX     PIC 9V99       VALUE 0.05.
       01      WORK-AREAS.
           05  AMT-TAX       PIC 9999V99    VALUE 0.
           05  AMT-ORDER     PIC 9(5)V99    VALUE 0.
           05  TOT-ORDER     PIC 9(6)V99    VALUE 0.
           05  CURRENT-TIME  PIC 9(8)       VALUE 14301275.

       REPORT SECTION.
       RD    ORDER-REPORT
           CONTROLS ARE FINAL
           PAGE 55 LINES
           FIRST DETAIL 6.
       01    TYPE REPORT HEADING
                  LINE 1.
           10    COLUMN 44    PIC X(21)
                                  VALUE 'CUSTOMER ORDER REPORT'.
       01  TYPE PAGE HEADING.
           05  LINE 2.
               10  COLUMN  10   PIC X(8) VALUE " Time:".
               10  COLUMN  20   PIC 99  SOURCE CURRENT-TIME (1:2).
               10  COLUMN  22   PIC X VALUE ':'.
               10  COLUMN  23   PIC 99  SOURCE CURRENT-TIME (3:2).
               10  COLUMN  25   PIC X VALUE ':'.
               10  COLUMN  26   PIC 99  SOURCE CURRENT-TIME (5:2).
               10  COLUMN  94   PIC X(5) VALUE 'Page'.
               10  COLUMN 106    PIC ZZ9
                      SOURCE PAGE-COUNTER.
           05  LINE 4.
               10  COLUMN 11    PIC X(8) VALUE 'CUST NUM'.
               10  COLUMN 26    PIC XXXX VALUE 'PART'.
               10  COLUMN 39    PIC X(7) VALUE '# ITEMS'.
               10  COLUMN 50    PIC X(5) VALUE 'PRICE'.
               10  COLUMN 66    PIC X(8) VALUE 'QUANTITY'.
               10  COLUMN 82    PIC XXX  VALUE 'TAX'.
               10  COLUMN 91    PIC X(8) VALUE 'SHIPPING'.
               10  COLUMN 108   PIC X(5) VALUE 'TOTAL'.

       01    DETAIL-LINE TYPE IS DETAIL
             LINE PLUS 1.
           05  COLUMN 12        PIC 9(5)
                      SOURCE CUST-NUM.
           05  COLUMN 25        PIC 9(6)
                      SOURCE ITEM-NUM.
           05  COLUMN 41        PIC 999
                      SOURCE NUM-ORD.
           05  COLUMN 49        PIC ZZZ.99
                      SOURCE PRICE.
           05  COLUMN 64        PIC ZZ,ZZZ.99
                      SOURCE AMT-ORDER.
           05  COLUMN 80        PIC Z,ZZZ.99
                      SOURCE AMT-TAX.
           05  COLUMN 93        PIC ZZ.99
                      SOURCE SHIPPING.
           05  COLUMN 104        PIC ZZZ,ZZZ.99
                      SOURCE TOT-ORDER.


       01     TYPE CONTROL FOOTING FINAL
           LINE PLUS 2.
           05  COLUMN 42        PIC X(12)
                      VALUE 'FINAL TOTALS'.
           05  COLUMN 63        PIC ZZZ,ZZZ.99
                      SOURCE AMT-ORDER.
           05  COLUMN 79        PIC ZZ,ZZZ.99
                      SUM AMT-TAX.
           05  COLUMN 92        PIC ZZZ.99
                      SUM SHIPPING.
           05  COLUMN 102        PIC Z,ZZZ,ZZZ.99
                      SUM TOT-ORDER.

       PROCEDURE DIVISION.
       A000-MAINLINE.
      * Use hard coded time value so test is repeatable
      *    ACCEPT CURRENT-TIME FROM TIME.
           OPEN INPUT  CUST-ORDER-FILE
                OUTPUT CUST-PRINT-FILE.
           INITIATE ORDER-REPORT.
           READ CUST-ORDER-FILE
                AT END
                    MOVE 'NO' TO ARE-THERE-MORE-RECORDS.
           PERFORM A001-LOOP
                UNTIL THERE-ARE-NO-MORE-RECORDS.
           TERMINATE ORDER-REPORT.
           CLOSE CUST-ORDER-FILE
                  CUST-PRINT-FILE.
           STOP RUN.
       A001-LOOP.
           MULTIPLY NUM-ORD BY PRICE GIVING AMT-ORDER.
           MULTIPLY AMT-ORDER BY SALES-TAX GIVING AMT-TAX.
           ADD AMT-ORDER SHIPPING AMT-TAX GIVING TOT-ORDER.
           GENERATE DETAIL-LINE.
           READ CUST-ORDER-FILE
                AT END
                    MOVE 'NO' TO ARE-THERE-MORE-RECORDS.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3444: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:3444"
( $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/run_reportwriter.at:3444"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3446: DD_CUSTORD=\"./inp_data\" DD_REPORT2=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_CUSTORD=\"./inp_data\" DD_REPORT2=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:3446"
( $at_check_trace; DD_CUSTORD="./inp_data" DD_REPORT2="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:3446"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
                                           CUSTOMER ORDER REPORT
          Time:    14:30:12                                                                  Page          1

          CUST NUM       PART         # ITEMS    PRICE           QUANTITY        TAX      SHIPPING         TOTAL

           10001        090001          012      10.59            127.08           6.35      4.16          137.59
           10001        090002          013      16.95            220.35          11.01      4.16          235.52
           10002        090002          023      16.95            389.85          19.49      4.16          413.50
           10002        090001          022      10.59            232.98          11.64      4.16          248.78
           10003        090007          023      16.95            389.85          19.49      4.17          413.51
           10003        090008          032      10.59            338.88          16.94      4.17          359.99
           10003        090009          023      16.95            389.85          19.49      4.17          413.51
           10003        090010          032      10.59            338.88          16.94      4.17          359.99
           10004        090007          023      16.95            389.85          19.49      4.17          413.51
           10004        090008          032      10.59            338.88          16.94      4.17          359.99
           10004        090009          023      16.95            389.85          19.49      4.17          413.51
           10004        090010          032      10.59            338.88          16.94      4.17          359.99
           10004        090011          032      10.59            338.88          16.94      4.17          359.99
           10004        090012          032      10.59            338.88          16.94      4.17          359.99
           10004        090013          032      10.59            338.88          16.94      4.17          359.99
           10004        090014          032      10.59            338.88          16.94      4.17          359.99
           10004        090015          032      10.59            338.88          16.94      4.17          359.99
           10005        090007          023      16.95            389.85          19.49      4.17          413.51
           10005        090008          032      10.59            338.88          16.94      4.17          359.99
           10005        090009          023      16.95            389.85          19.49      4.17          413.51
           10005        090010          032      10.59            338.88          16.94      4.17          359.99
           10005        090011          032      10.59            338.88          16.94      4.17          359.99
           10005        090012          032      10.59            338.88          16.94      4.17          359.99
           10005        090013          032      10.59            338.88          16.94      4.17          359.99
           10005        090014          032      10.59            338.88          16.94      4.17          359.99
           10005        090015          032      10.59            338.88          16.94      4.17          359.99
           10005        090016          032      10.59            338.88          16.94      4.17          359.99
           10005        090017          032      10.59            338.88          16.94      4.17          359.99
           10005        090018          032      10.59            338.88          16.94      4.17          359.99
           10006        090007          023      16.95            389.85          19.49      4.17          413.51
           10006        090008          032      10.59            338.88          16.94      4.17          359.99
           10006        090009          023      16.95            389.85          19.49      4.17          413.51
           10006        090010          032      10.59            338.88          16.94      4.17          359.99
           10006        090011          032      10.59            338.88          16.94      4.17          359.99
           10006        090012          032      10.59            338.88          16.94      4.17          359.99
           10006        090013          032      10.59            338.88          16.94      4.17          359.99
           10006        090014          032      10.59            338.88          16.94      4.17          359.99
           10006        090015          032      10.59            338.88          16.94      4.17          359.99
           10006        090016          032      10.59            338.88          16.94      4.17          359.99
           10006        090017          032      10.59            338.88          16.94      4.17          359.99
           10006        090018          032      10.59            338.88          16.94      4.17          359.99
           10006        090019          032      10.59            338.88          16.94      4.17          359.99
           10006        090020          032      10.59            338.88          16.94      4.17          359.99
           10007        090007          023      16.95            389.85          19.49      4.17          413.51
           10007        090008          032      10.59            338.88          16.94      4.17          359.99
           10007        090009          023      16.95            389.85          19.49      4.17          413.51
           10007        090010          032      10.59            338.88          16.94      4.17          359.99
           10007        090011          032      10.59            338.88          16.94      4.17          359.99
           10007        090012          032      10.59            338.88          16.94      4.17          359.99
           10007        090013          032      10.59            338.88          16.94      4.17          359.99

          Time:    14:30:12                                                                  Page          2

          CUST NUM       PART         # ITEMS    PRICE           QUANTITY        TAX      SHIPPING         TOTAL

           10007        090014          032      10.59            338.88          16.94      4.17          359.99
           10007        090015          032      10.59            338.88          16.94      4.17          359.99
           10007        090016          032      10.59            338.88          16.94      4.17          359.99
           10007        090017          032      10.59            338.88          16.94      4.17          359.99
           10007        090018          032      10.59            338.88          16.94      4.17          359.99
           10007        090019          032      10.59            338.88          16.94      4.17          359.99
           10007        090020          032      10.59            338.88          16.94      4.17          359.99
           10007        090021          032      10.59            338.88          16.94      4.17          359.99
           10007        090022          032      10.59            338.88          16.94      4.17          359.99
           10008        090007          023      16.95            389.85          19.49      4.17          413.51
           10008        090008          032      10.59            338.88          16.94      4.17          359.99
           10008        090009          023      16.95            389.85          19.49      4.17          413.51
           10008        090010          032      10.59            338.88          16.94      4.17          359.99
           10008        090011          032      10.59            338.88          16.94      4.17          359.99
           10008        090012          032      10.59            338.88          16.94      4.17          359.99
           10008        090013          032      10.59            338.88          16.94      4.17          359.99
           10008        090014          032      10.59            338.88          16.94      4.17          359.99
           10008        090015          032      10.59            338.88          16.94      4.17          359.99
           10008        090016          032      10.59            338.88          16.94      4.17          359.99
           10008        090017          032      10.59            338.88          16.94      4.17          359.99
           10008        090018          032      10.59            338.88          16.94      4.17          359.99
           10008        090019          032      10.59            338.88          16.94      4.17          359.99
           10008        090020          032      10.59            338.88          16.94      4.17          359.99
           10008        090021          032      10.59            338.88          16.94      4.17          359.99
           10008        090022          032      10.59            338.88          16.94      4.17          359.99
           10009        090007          023      16.95            389.85          19.49      4.17          413.51
           10009        090008          032      10.59            338.88          16.94      4.17          359.99
           10009        090009          023      16.95            389.85          19.49      4.17          413.51
           10009        090010          032      10.59            338.88          16.94      4.17          359.99
           10009        090011          032      10.59            338.88          16.94      4.17          359.99
           10009        090012          032      10.59            338.88          16.94      4.17          359.99
           10009        090013          032      10.59            338.88          16.94      4.17          359.99
           10009        090014          032      10.59            338.88          16.94      4.17          359.99
           10009        090015          032      10.59            338.88          16.94      4.17          359.99
           10009        090016          032      10.59            338.88          16.94      4.17          359.99
           10009        090017          032      10.59            338.88          16.94      4.17          359.99
           10009        090018          032      10.59            338.88          16.94      4.17          359.99
           10009        090019          032      10.59            338.88          16.94      4.17          359.99
           10009        090020          032      10.59            338.88          16.94      4.17          359.99
           10009        090021          032      10.59            338.88          16.94      4.17          359.99
           10009        090022          032      10.59            338.88          16.94      4.17          359.99

                                         FINAL TOTALS             338.88       1,557.97    379.43       33,103.80







_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3563: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:3563"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3563"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_811
#AT_START_812
at_fn_group_banner 812 'run_reportwriter.at:3568' \
  "Sample Control Break" "                           " 4
at_xfail=no
(
  $as_echo "812. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
Norman, Ronald J    25CS Malcolm, Mike        Waterloo
Dorken, Keith A     35CS Malcolm, Mike        Waterloo
Norman, James J     25CS Manning, Eric        Waterloo
Dorken, Kevin       35CS Manning, Eric        Waterloo
Allinson, A R       25EC Manning, Eric        Whistler
Norman, Michelle    27EC Manning, Donna       Toronto
Dorken, Melissa     37EC Manning, Donna       Toronto
Norseman, Ben01     27EC DiMetri, Gary        Toronto
Norseman, Ben02     27EC DiMetri, Gary        Toronto
Norseman, Ben03     27EC DiMetri, Gary        Toronto
Norseman, Ben04     27EC DiMetri, Gary        Toronto
Norseman, Ben05     27EC DiMetri, Gary        Toronto
Norseman, Ben06     27EC DiMetri, Gary        Toronto
Norseman, Ben07     27EC DiMetri, Gary        Toronto
Norseman, Ben08     27EC DiMetri, Gary        Toronto
Norseman, Ben09     27EC DiMetri, Gary        Toronto
Norseman, Ben10     27EC DiMetri, Gary        Toronto
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT STUDENT-FILE ASSIGN TO EXTERNAL STUDREC
                          ORGANIZATION IS LINE SEQUENTIAL.
           SELECT PRINT-FILE ASSIGN TO EXTERNAL
                          LINE ADVANCING REPORT3.

       DATA DIVISION.
       FILE SECTION.
       FD    STUDENT-FILE.
       01    STUDENT-REC        PIC X(60).

       FD    PRINT-FILE
           REPORT IS CONTROL-BREAK.

       WORKING-STORAGE SECTION.
       01    INDICATORS.
           05  ARE-THERE-MORE-RECORDS PIC XXX VALUE 'YES'.
             88 THERE-ARE-NO-MORE-RECORDS VALUE 'NO'.

       01     CONSTANTS.
           05  NUM        PIC 99 VALUE 1.

       01    STUDENT-AREA.
           05  STUDENT-NAME   PIC X(20).
           05  COURSE-PTS     PIC 99.
           05  MAJOR          PIC XXX.
           05  ADVISOR        PIC X(20).
           05  CAMPUS         PIC X(15).

       REPORT SECTION.
       RD    CONTROL-BREAK
           CONTROLS ARE MAJOR ADVISOR
           PAGE LIMIT 25 LINES
           HEADING 1
           FIRST DETAIL 5
           FOOTING 23.
       01  TYPE IS PAGE HEADING.
           05  LINE 1.
                10  COLUMN 61    PIC X(4) VALUE 'PAGE'.
                10  COLUMN 66    PIC ZZZ9 SOURCE PAGE-COUNTER.
           05  LINE PLUS 2.
                10  COLUMN 26     PIC X(23)
                       VALUE 'STUDENT ADVISEMENT LIST'.

       01  TYPE IS CONTROL HEADING MAJOR.
           05     LINE 5 ON NEXT PAGE .
                10  COLUMN 37    PIC X(5)  VALUE 'MAJOR'.
                10  COLUMN 44    PIC X(20) SOURCE MAJOR.

           05     LINE 7.
                10  COLUMN  4    PIC X(12) VALUE 'STUDENT NAME'.
                10  COLUMN 25    PIC XXX   VALUE 'PTS'.
                10  COLUMN 34    PIC X(6)  VALUE 'CAMPUS'.
                10  COLUMN 60    PIC X(8)  VALUE 'ADVISOR'.
           05     LINE PLUS 1.
                10  COLUMN  4    PIC X(68) VALUE ALL '-'.

       01    TRANS-LINE TYPE IS DETAIL.
           05     LINE NUMBER PLUS 1.
                10  COLUMN  3    PIC X(20) SOURCE STUDENT-NAME.
                10  COLUMN 26    PIC 99    SOURCE COURSE-PTS.
                10  COLUMN 34    PIC X(15) SOURCE CAMPUS.
                10  COLUMN 51    PIC X(5) VALUE "Hello"
                              PRESENT AFTER PAGE OR ADVISOR.
                10  COLUMN 51    PIC X(5) VALUE '  "  '
                              ABSENT AFTER PAGE OR ADVISOR.
                10  COLUMN 60    PIC X(20) SOURCE ADVISOR
                                       GROUP INDICATE.

       01    TYPE IS CONTROL FOOTING ADVISOR.
           05     LINE PLUS 2.
                10  COLUMN 5     PIC X(8)  VALUE 'ADVISOR'.
                10  COLUMN 13    PIC X(20) SOURCE ADVISOR.
                10  COLUMN 34    PIC X(6)  VALUE 'TOTAL'.
                10  ADV-TOTAL
                    COLUMN 40    PIC ZZ9   SUM NUM.
           05     LINE PLUS 1.
                10  COLUMN 1     PIC X(8)  VALUE ' '.

       01    TYPE IS CONTROL FOOTING MAJOR.
           05     LINE PLUS 2.
                10  COLUMN 5    PIC X(11)  VALUE 'MAJOR TOTAL'.
                10  MAJ-TOTAL
                    COLUMN 22    PIC ZZ9   SUM ADV-TOTAL.

       01    TYPE IS CONTROL FOOTING FINAL.
           05  LINE PLUS 3.
                10  COLUMN 10    PIC X(11) VALUE 'FINAL TOTAL'.
                10  STU-TOTAL
                    COLUMN 21    PIC ZZZ9 SUM MAJ-TOTAL.

       PROCEDURE DIVISION.
       A000-CREATE-REPORTS.
           OPEN INPUT STUDENT-FILE
                OUTPUT PRINT-FILE.
           INITIATE CONTROL-BREAK.
           READ STUDENT-FILE INTO STUDENT-AREA
                AT END
                    MOVE 'NO ' TO ARE-THERE-MORE-RECORDS.
           PERFORM A001-LOOP
                UNTIL THERE-ARE-NO-MORE-RECORDS.
           TERMINATE CONTROL-BREAK.
           CLOSE STUDENT-FILE
                   PRINT-FILE.
           STOP RUN.

       A001-LOOP.
           GENERATE TRANS-LINE.
           READ STUDENT-FILE INTO STUDENT-AREA
                AT END
                    MOVE 'NO ' TO ARE-THERE-MORE-RECORDS.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3709: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:3709"
( $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/run_reportwriter.at:3709"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3711: DD_STUDREC=\"./inp_data\" DD_REPORT3=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_STUDREC=\"./inp_data\" DD_REPORT3=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:3711"
( $at_check_trace; DD_STUDREC="./inp_data" DD_REPORT3="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:3711"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
                                                            PAGE    1

                         STUDENT ADVISEMENT LIST

                                    MAJOR  CS

   STUDENT NAME         PTS      CAMPUS                    ADVISOR
   --------------------------------------------------------------------
  Norman, Ronald J       25       Waterloo        Hello    Malcolm, Mike
  Dorken, Keith A        35       Waterloo          "

    ADVISOR Malcolm, Mike        TOTAL   2

  Norman, James J        25       Waterloo        Hello    Manning, Eric
  Dorken, Kevin          35       Waterloo          "

    ADVISOR Manning, Eric        TOTAL   2


    MAJOR TOTAL        4





                                                            PAGE    2

                         STUDENT ADVISEMENT LIST

                                    MAJOR  EC

   STUDENT NAME         PTS      CAMPUS                    ADVISOR
   --------------------------------------------------------------------
  Allinson, A R          25       Whistler        Hello    Manning, Eric

    ADVISOR Manning, Eric        TOTAL   1

  Norman, Michelle       27       Toronto         Hello    Manning, Donna
  Dorken, Melissa        37       Toronto           "

    ADVISOR Manning, Donna       TOTAL   2

  Norseman, Ben01        27       Toronto         Hello    DiMetri, Gary
  Norseman, Ben02        27       Toronto           "
  Norseman, Ben03        27       Toronto           "
  Norseman, Ben04        27       Toronto           "
  Norseman, Ben05        27       Toronto           "
  Norseman, Ben06        27       Toronto           "

                                                            PAGE    3

                         STUDENT ADVISEMENT LIST

  Norseman, Ben07        27       Toronto         Hello    DiMetri, Gary
  Norseman, Ben08        27       Toronto           "
  Norseman, Ben09        27       Toronto           "
  Norseman, Ben10        27       Toronto           "

    ADVISOR DiMetri, Gary        TOTAL  10


    MAJOR TOTAL       13


         FINAL TOTAL  17









_ATEOF

#" <- fix code highlighting
{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3792: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:3792"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3792"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_812
#AT_START_813
at_fn_group_banner 813 'run_reportwriter.at:3797' \
  "Sample Inventory Report" "                        " 4
at_xfail=no
(
  $as_echo "813. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
01Data Processing   02000500012388
02Cow Milking       02000600054398
03Grass Cutting     03000600054397
03Lawn mowing       03000600054397
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT INV-FILE ASSIGN TO EXTERNAL INVFILE
                          ORGANIZATION IS LINE SEQUENTIAL.
           SELECT REPORT-FILE ASSIGN TO EXTERNAL
                              LINE ADVANCING REPORT4.

       DATA DIVISION.
       FILE SECTION.
       FD    INV-FILE.
       01    INV-REC.
           05     DEPT-IN        PIC 99.
           05     DEPT-NAM-IN    PIC X(18).
           05     MONTH-IN       PIC 99.
           05     ITEM-NO-IN     PIC 9(5).
           05     INV-TOT-IN     PIC 9(6)V99.

       FD    REPORT-FILE
           REPORT IS INV-REPORT.

       WORKING-STORAGE SECTION.
       01  INDICATORS.
           05  ARE-THERE-MORE-RECORDS    PIC XXX VALUE 'YES'.

       REPORT SECTION.
       RD  INV-REPORT
           CONTROLS ARE FINAL DEPT-IN MONTH-IN
           PAGE LIMIT 25 LINES
           HEADING 2
           FIRST DETAIL 5
           LAST DETAIL 18
           FOOTING 20.
       01  TYPE IS REPORT HEADING.
           05 LINE 2  COLUMN  50  PIC X(16) VALUE 'INVENTORY REPORT'.
           05 LINE 2  COLUMN  80  PIC X     VALUE ' '.

       01  TYPE IS CONTROL HEADING DEPT-IN
           LINE NUMBER IS PLUS 2
           NEXT GROUP IS PLUS 2.
           05 COLUMN 2        PIC X(13) VALUE 'DEPARTMENT #:'.
           05 COLUMN 27       PIC 99    SOURCE DEPT-IN.
           05 COLUMN 31       PIC X(16) VALUE 'DEPARTMENT NAME:'.
           05 COLUMN 50       PIC X(18) SOURCE DEPT-NAM-IN.

       01  INV-DETAIL TYPE IS DETAIL
           LINE PLUS 2.
           05 COLUMN 10       PIC 99  SOURCE MONTH-IN GROUP INDICATE.
           05 COLUMN 25       PIC 9(5) SOURCE ITEM-NO-IN.
           05 COLUMN 40       PIC ZZZ,ZZZ.99 SOURCE IS INV-TOT-IN.

       01  TYPE IS CONTROL FOOTING MONTH-IN
           LINE PLUS 2.
           05 MONTH-TOTAL COLUMN 55 PIC Z,ZZZ,ZZZ.99 SUM INV-TOT-IN.

       01  TYPE IS CONTROL FOOTING DEPT-IN
           LINE PLUS 2.
           05 DEPT-TOTAL COLUMN 75 PIC ZZ,ZZZ,ZZZ.99 SUM MONTH-TOTAL.

       01  TYPE IS CONTROL FOOTING FINAL
           LINE PLUS 2.
           05 FINAL-TOTAL COLUMN 95 PIC ZZZ,ZZZ,ZZZ.99 SUM DEPT-TOTAL.

       01  TYPE IS PAGE FOOTING LINE 24.
           05  COLUMN 30      PIC X(30) VALUE "-+* End of Page *+-".
           05  COLUMN 55      PIC X(12) VALUE "************".
           05  COLUMN 75      PIC X(13) VALUE "*************".
           05  COLUMN 95      PIC X(14) VALUE "**************".

       PROCEDURE DIVISION.
       A000-MAINLINE.
           OPEN INPUT INV-FILE
                OUTPUT REPORT-FILE.
           INITIATE INV-REPORT.
           READ INV-FILE
                AT END
                    MOVE 'NO ' TO ARE-THERE-MORE-RECORDS.
           PERFORM A001-LOOP
                UNTIL ARE-THERE-MORE-RECORDS = 'NO '.
           TERMINATE INV-REPORT.
           CLOSE INV-FILE
                REPORT-FILE.
           STOP RUN.
       A001-LOOP.
           GENERATE INV-DETAIL.
           READ INV-FILE
                AT END
                    MOVE 'NO ' TO ARE-THERE-MORE-RECORDS.

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3901: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:3901"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:40: warning: duplicate LINE 2 ignored
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3901"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3905: DD_INVFILE=\"./inp_data\" DD_REPORT4=\"./report.txt\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_INVFILE=\"./inp_data\" DD_REPORT4=\"./report.txt\" $COBCRUN_DIRECT ./prog" "run_reportwriter.at:3905"
( $at_check_trace; DD_INVFILE="./inp_data" DD_REPORT4="./report.txt" $COBCRUN_DIRECT ./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/run_reportwriter.at:3905"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'

                                                 INVENTORY REPORT


 DEPARTMENT #:            01  DEPARTMENT NAME:   Data Processing



         02             00050            1,238.80

                                                          1,238.80

                                                                               1,238.80

 DEPARTMENT #:            02  DEPARTMENT NAME:   Cow Milking








                             -+* End of Page *+-      ************        *************       **************




         02             00060            5,439.80

                                                          5,439.80

                                                                               5,439.80

 DEPARTMENT #:            03  DEPARTMENT NAME:   Grass Cutting



         03             00060            5,439.70

                        00060            5,439.70

                                                         10,879.40





                             -+* End of Page *+-      ************        *************       **************




                                                                              10,879.40

                                                                                                   17,558.00
















                             -+* End of Page *+-      ************        *************       **************
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:3985: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:3985"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:3985"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_813
#AT_START_814
at_fn_group_banner 814 'run_reportwriter.at:3990' \
  "Duplicate Detail Line" "                          " 4
at_xfail=no
(
  $as_echo "814. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT REPORT-FILE
           LINE SEQUENTIAL
           ASSIGN TO EXTERNAL DUPDTL.
       DATA DIVISION.
       FILE SECTION.
       FD REPORT-FILE
           REPORT IS MYREPORT.
       WORKING-STORAGE SECTION.
       01 SAVE-ITEM PIC  X.

       REPORT SECTION.
       RD MYREPORT
           CONTROLS ARE SAVE-ITEM
           PAGE LIMIT IS 15 LINES
           FIRST DETAIL 1
           LAST DETAIL 12.

       01 TYPE IS CONTROL HEADING SAVE-ITEM.
          05 LINE NUMBER IS 1.
            10 COLUMN 1 PIC X(20) VALUE "HEADING SAVE-ITEM".

       01 DETAIL-LINE TYPE IS DETAIL.
          05 LINE NUMBER PLUS 1.
            10 COLUMN 1 PIC X SOURCE SAVE-ITEM.
            10 COLUMN 10 PIC X(15) VALUE "1st Detail".

       01 SND-DETAIL-LINE TYPE IS DETAIL.
          05 LINE NUMBER PLUS 1.
            10 COLUMN 1 PIC X SOURCE SAVE-ITEM.
            10 COLUMN 10 PIC X(15) VALUE "2nd Detail".

       01 TRD-DETAIL-LINE TYPE IS DETAIL.
          05 LINE NUMBER PLUS 1.
            10 COLUMN 1 PIC X SOURCE SAVE-ITEM.
            10 COLUMN 10 PIC X(15) VALUE "3rd Detail 1".
          05 LINE NUMBER PLUS 1.
            10 COLUMN 1 PIC X SOURCE SAVE-ITEM.
            10 COLUMN 10 PIC X(15) VALUE "3rd Detail 2".

       01 TYPE IS CONTROL FOOTING SAVE-ITEM.
          03  LINE NUMBER IS PLUS 1.
           05 COLUMN 07    PIC X(27)  VALUE "FOOTING SAVE-ITEM".

       PROCEDURE DIVISION.
           OPEN OUTPUT REPORT-FILE.
           INITIATE MYREPORT.
           MOVE "A" TO SAVE-ITEM.
           GENERATE DETAIL-LINE.
           MOVE "B" TO SAVE-ITEM.
           GENERATE DETAIL-LINE.
           GENERATE SND-DETAIL-LINE.
           GENERATE TRD-DETAIL-LINE.
           MOVE "C" TO SAVE-ITEM.
           GENERATE TRD-DETAIL-LINE.
           TERMINATE MYREPORT.
           CLOSE REPORT-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4059: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4059"
( $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/run_reportwriter.at:4059"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4061: DD_DUPDTL=./report.txt \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_DUPDTL=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4061"
( $at_check_trace; DD_DUPDTL=./report.txt $COBCRUN_DIRECT ./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/run_reportwriter.at:4061"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
HEADING SAVE-ITEM
A        1st Detail
      FOOTING SAVE-ITEM












HEADING SAVE-ITEM
B        1st Detail
B        2nd Detail
B        3rd Detail 1
B        3rd Detail 2
      FOOTING SAVE-ITEM









HEADING SAVE-ITEM
C        3rd Detail 1
C        3rd Detail 2
      FOOTING SAVE-ITEM











_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4113: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:4113"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4113"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_814
#AT_START_815
at_fn_group_banner 815 'run_reportwriter.at:4118' \
  "Report with OCCURS" "                             " 4
at_xfail=no
(
  $as_echo "815. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
            SELECT rp-file ASSIGN EXTERNAL PRINTOUT
            ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  rp-file REPORT rp.

       REPORT SECTION.
       RD  RP
           PAGE LIMIT 10 LINES
           HEADING 1
           FIRST DETAIL 4.
       01 HEADING-LINE.
          02 TYPE PAGE HEADING LINE PLUS 1.
            05  COLUMN 1      PIC X(50) VALUE
                "         1         2         3         4         5".
          02 TYPE PAGE HEADING LINE PLUS 1.
            05  COLUMN 1      PIC X(50) VALUE
                "12345678901234567890123456789012345678901234567890".

       01  RP-DTL1 TYPE DETAIL,  LINE + 1.
            03  NUMS  COLUMN 1   PIC 999 OCCURS 3 TIMES STEP 10.
            03  MARK  COLUMN + 3 PIC X(4).

       01  rp-dtl2 TYPE DETAIL, LINE + 1.
            03  grps  COLUMN 1 OCCURS 3 TIMES.
               05  tag1      PIC X(5).
               05  FILLER    PIC X.
               05  tag2      PIC X(5).
               05  FILLER    PIC XX.

       01  RP-DTL3 TYPE DETAIL, LINE + 1.
            03  NNNS  COLUMN 1, 11, 21, 27 PIC 999.
            03  TAGP  COLUMN PLUS 4 PIC X(4).

       01  RP-DTL4 TYPE DETAIL, LINE + 1.
            03  NUM4A                PIC 999.
            03  NUM4B COLUMN PLUS 8  PIC 999 OCCURS 3 STEP 10.
            03  MRK4  COLUMN + 3     PIC X(4).

       PROCEDURE DIVISION.
           OPEN OUTPUT rp-file
           INITIATE rp

           MOVE 100 TO NUMS (1), NUMS (2), NUMS (3)
           MOVE "<1>" TO MARK.
           GENERATE rp-dtl1

           MOVE ALL '*' TO grps(1), grps(2), grps(3)
           MOVE "Tag1" to tag1 (1), tag1 (2), tag1 (3)
           MOVE "Tag2" to tag2 (1), tag2 (2), tag2 (3)
           GENERATE rp-dtl2

           MOVE 200 TO NNNS (1), NNNS (2), NNNS (3) NNNS (4)
           MOVE "<3>" TO TAGP.
           GENERATE RP-DTL3.

           MOVE 400 TO NUM4A
           MOVE 401 TO NUM4B (1)
           MOVE 402 TO NUM4B (2)
           MOVE 403 TO NUM4B (3)
           MOVE "<4>" TO MRK4.
           GENERATE RP-DTL4

           TERMINATE rp
           CLOSE rp-file

           STOP RUN.
           END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4199: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4199"
( $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/run_reportwriter.at:4199"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4201: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4201"
( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./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/run_reportwriter.at:4201"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
         1         2         3         4         5
12345678901234567890123456789012345678901234567890

100       100       100         <1>
Tag1 *Tag2 **Tag1 *Tag2 **Tag1 *Tag2 **
200       200       200   200   <3>
400       401       402       403         <4>



_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4218: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:4218"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4218"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_815
#AT_START_816
at_fn_group_banner 816 'run_reportwriter.at:4223' \
  "Report CODE and LIMIT COLUMNS" "                  " 4
at_xfail=no
(
  $as_echo "816. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >progv.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. progv.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
            SELECT RP-FILE ASSIGN EXTERNAL PRINTOUT
            ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  RP-FILE REPORT RP.

       WORKING-STORAGE SECTION.
       01  IDX1      PIC 99 VALUE 1.
       01  MAXCOL    PIC 99 VALUE 50.
       01  MYCODE    PIC X(6) VALUE "Hi-Q:".
       01  DIGX      PIC X(50) VALUE
                "123456789b123456789c123456789d123456789e123456789f".
       01  FILLER REDEFINES DIGX.
           05  DIGS  PIC X(10) OCCURS 5 TIMES.

       REPORT SECTION.
       RD  RP
           CODE IS MYCODE *> variable
           PAGE LIMIT 10 LINES
                      MAXCOL COLUMNS *> variable
           HEADING 1
           FIRST DETAIL 4.
       01 HEADING-LINE.
          02 TYPE PAGE HEADING LINE PLUS 1.
            05  COLUMN 1      PIC X(50) VALUE
                "         1         2         3         4         5".
          02 TYPE PAGE HEADING LINE PLUS 1.
      *     05  COLUMN 1      PIC X(50) VALUE
      *         "12345678901234567890123456789012345678901234567890".
            05  COLUMN 1      OCCURS 5 TIMES
                  VARYING IDX1 FROM 1 BY 1.
                10  FILLER    PIC X(10) SOURCE DIGS (IDX1).

       01  RP-DTL1 TYPE DETAIL,  LINE + 1.
            03  NUMS  COLUMN 1   PIC 999 OCCURS 3 TIMES STEP 10.
            03  MARK  COLUMN + 3 PIC X(4).

       01  RP-DTL2 TYPE DETAIL, LINE + 1.
            03  GRPS  COLUMN 1 OCCURS 3 TIMES.
               05  TAG1      PIC X(5).
               05  FILLER    PIC X.
               05  TAG2      PIC X(5).
               05  FILLER    PIC XX.

       01  RP-DTL3 TYPE DETAIL, LINE + 1.
            03  NNNS  COLUMN 1, 11, 21, 27 PIC 999.
            03  TAGP  COLUMN PLUS 4 PIC X(4).

       01  RP-DTL4 TYPE DETAIL, LINE + 1.
            03  NUM4A               PIC 999.
            03  NUM4B COLUMN 11     PIC 999 OCCURS 3 STEP 10.
            03  MRK4  COLUMN + 3    PIC X(4).

       PROCEDURE DIVISION.
           OPEN OUTPUT RP-FILE
           INITIATE RP

           MOVE 100 TO NUMS (1), NUMS (2), NUMS (3)
           MOVE "<1>" TO MARK.
           GENERATE rp-dtl1

           MOVE ALL '*' TO GRPS(1), GRPS(2), GRPS(3)
           MOVE "Tag1" TO TAG1 (1), TAG1 (2), TAG1 (3)
           MOVE "Tag2" TO TAG2 (1), TAG2 (2), TAG2 (3)
           GENERATE RP-DTL2

           MOVE 200 TO NNNS (1), NNNS (2), NNNS (3) NNNS (4)
           MOVE "<3>" TO TAGP.
           GENERATE RP-DTL3.

           MOVE 400 TO NUM4A
           MOVE 401 TO NUM4B (1)
           MOVE 402 TO NUM4B (2)
           MOVE 403 TO NUM4B (3)
           MOVE "<4>" TO MRK4.
           GENERATE RP-DTL4

           TERMINATE rp
           CLOSE RP-FILE

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4317: \$COMPILE -std=cobol2002 -fassign-ext-dyn=ok progv.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=cobol2002 -fassign-ext-dyn=ok progv.cob" "run_reportwriter.at:4317"
( $at_check_trace; $COMPILE -std=cobol2002 -fassign-ext-dyn=ok progv.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "progv.cob:39: warning: RW VARYING clause is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4317"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4321: DD_PRINTOUT=./report_var.txt \\
\$COBCRUN_DIRECT ./progv"
at_fn_check_prepare_notrace 'an embedded newline' "run_reportwriter.at:4321"
( $at_check_trace; DD_PRINTOUT=./report_var.txt \
$COBCRUN_DIRECT ./progv
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4321"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >progl.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. progl.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
            SELECT RP-FILE ASSIGN EXTERNAL PRINTOUT
            ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  RP-FILE REPORT RP.

       WORKING-STORAGE SECTION.
       01  IDX1      PIC 99 VALUE 1.
       01  DIGX      PIC X(50) VALUE
                "123456789b123456789c123456789d123456789e123456789f".
       01  FILLER REDEFINES DIGX.
           05  DIGS  PIC X(10) OCCURS 5 TIMES.

       REPORT SECTION.
       RD  RP
           CODE IS "Hi-Q: " *> literal
           PAGE LIMIT 10 LINES
                      50 COLUMNS *> literal
           HEADING 1
           FIRST DETAIL 4.
       01 HEADING-LINE.
          02 TYPE PAGE HEADING LINE PLUS 1.
            05  COLUMN 1      PIC X(50) VALUE
                "         1         2         3         4         5".
          02 TYPE PAGE HEADING LINE PLUS 1.
      *     05  COLUMN 1      PIC X(50) VALUE
      *         "12345678901234567890123456789012345678901234567890".
            05  COLUMN 1      OCCURS 5 TIMES
                  VARYING IDX1 FROM 1 BY 1.
                10  FILLER    PIC X(10) SOURCE DIGS (IDX1).

       01  RP-DTL1 TYPE DETAIL, LINE + 1.
            03  NUMS  COLUMN 1   PIC 999 OCCURS 3 TIMES STEP 10.
            03  MARK  COLUMN + 3 PIC X(4).

       01  RP-DTL2 TYPE DETAIL, LINE + 1.
            03  GRPS  COLUMN 1 OCCURS 3 TIMES.
               05  TAG1      PIC X(5).
               05  FILLER    PIC X.
               05  TAG2      PIC X(5).
               05  FILLER    PIC XX.

       01  RP-DTL3 TYPE DETAIL, LINE + 1.
            03  NNNS  COLUMN 1, 11, 21, 27 PIC 999.
            03  TAGP  COLUMN PLUS 4 PIC X(4).

       01  RP-DTL4 TYPE DETAIL, LINE + 1.
            03  NUM4A               PIC 999.
            03  NUM4B COLUMN 11     PIC 999 OCCURS 3 STEP 10.
            03  MRK4  COLUMN + 3    PIC X(4).

       PROCEDURE DIVISION.
           OPEN OUTPUT RP-FILE
           INITIATE RP

           MOVE 100 TO NUMS (1), NUMS (2), NUMS (3)
           MOVE "<1>" TO MARK.
           GENERATE rp-dtl1

           MOVE ALL '*' TO GRPS(1), GRPS(2), GRPS(3)
           MOVE "Tag1" TO TAG1 (1), TAG1 (2), TAG1 (3)
           MOVE "Tag2" TO TAG2 (1), TAG2 (2), TAG2 (3)
           GENERATE RP-DTL2

           MOVE 200 TO NNNS (1), NNNS (2), NNNS (3) NNNS (4)
           MOVE "<3>" TO TAGP.
           GENERATE RP-DTL3.

           MOVE 400 TO NUM4A
           MOVE 401 TO NUM4B (1)
           MOVE 402 TO NUM4B (2)
           MOVE 403 TO NUM4B (3)
           MOVE "<4>" TO MRK4.
           GENERATE RP-DTL4

           TERMINATE rp
           CLOSE RP-FILE

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4413: \$COMPILE -std=cobol2002 -fdump=all -fassign-ext-dyn=ok progl.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=cobol2002 -fdump=all -fassign-ext-dyn=ok progl.cob" "run_reportwriter.at:4413"
( $at_check_trace; $COMPILE -std=cobol2002 -fdump=all -fassign-ext-dyn=ok progl.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "progl.cob:37: warning: RW VARYING clause is not implemented
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4413"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4417: DD_PRINTOUT=./report_lit.txt \\
\$COBCRUN_DIRECT ./progl"
at_fn_check_prepare_notrace 'an embedded newline' "run_reportwriter.at:4417"
( $at_check_trace; DD_PRINTOUT=./report_lit.txt \
$COBCRUN_DIRECT ./progl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4417"
$at_failed && at_fn_log_failure
$at_traceon; }






cat >reference.at <<'_ATEOF'
Hi-Q:          1         2         3         4         5
Hi-Q:          1         2         3         4         5
Hi-Q: _
Hi-Q: 100       100       100         <1>
Hi-Q: Tag1 *Tag2 **Tag1 *Tag2 **Tag1 *Tag2 **
Hi-Q: 200       200       200   200   <3>
Hi-Q: 400       401       402       403         <4>
Hi-Q: _
Hi-Q: _
Hi-Q: _
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4437: cat reference.at | tr -d _ > reference"
at_fn_check_prepare_notrace 'a shell pipeline' "run_reportwriter.at:4437"
( $at_check_trace; cat reference.at | tr -d _ > reference
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4437"
$at_failed && at_fn_log_failure  \
"./report_var.txt" \
"./report_lit.txt"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4438: diff reference report_var.txt"
at_fn_check_prepare_trace "run_reportwriter.at:4438"
( $at_check_trace; diff reference report_var.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4438"
$at_failed && at_fn_log_failure  \
"./report_var.txt" \
"./report_lit.txt"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4439: diff reference report_lit.txt"
at_fn_check_prepare_trace "run_reportwriter.at:4439"
( $at_check_trace; diff reference report_lit.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4439"
$at_failed && at_fn_log_failure  \
"./report_var.txt" \
"./report_lit.txt"
$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_816
#AT_START_817
at_fn_group_banner 817 'run_reportwriter.at:4444' \
  "Duplicate INITIATE" "                             " 4
at_xfail=no
(
  $as_echo "817. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT report-file ASSIGN EXTERNAL PRINTOUT
            ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  report-file REPORT rp.

       WORKING-STORAGE SECTION.
       01  foo  PIC X(20).
       01  hedpos PIC 99 VALUE 10.

       REPORT SECTION.
       RD  rp PAGE LIMIT 3.

       01  rp-detail TYPE DE.
         02  LINE + 1.
         03     COL 1; SOURCE foo, PIC X(30).
         03     COL + 1            PIC X(6) VALUE "<--->".

       PROCEDURE DIVISION.
           OPEN OUTPUT report-file.
           INITIATE rp.

           MOVE "hello" TO foo.
            GENERATE rp-detail.

           INITIATE rp.

           MOVE "goodbye" TO foo.
            GENERATE rp-detail.

           TERMINATE rp.
             CLOSE report-file.
           STOP RUN.
           END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4491: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4491"
( $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/run_reportwriter.at:4491"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4493: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4493"
( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:34: error: INITIATE rp was already done
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4493"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
hello                         <--->
goodbye                       <--->

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4506: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:4506"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4506"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_817
#AT_START_818
at_fn_group_banner 818 'run_reportwriter.at:4511' \
  "Missing INITIATE and GENERATE" "                  " 4
at_xfail=no
(
  $as_echo "818. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT report-file ASSIGN EXTERNAL PRINTOUT
            ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  report-file REPORT rp.

       WORKING-STORAGE SECTION.
       01  foo  PIC X(20).
       01  hedpos PIC 99 VALUE 10.

       REPORT SECTION.
       RD  rp PAGE LIMIT 3.

       01  rp-detail TYPE DE.
         02  LINE + 1.
         03     COL 1; SOURCE foo, PIC X(30).
         03     COL + 1            PIC X(6) VALUE "<--->".

       PROCEDURE DIVISION.
           OPEN OUTPUT report-file.

           MOVE "hello" TO foo.
           GENERATE rp-detail.

           MOVE "goodbye" TO foo.
           GENERATE rp-detail.

           TERMINATE rp.
           CLOSE report-file.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4554: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4554"
( $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/run_reportwriter.at:4554"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4556: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4556"
( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:31: error: GENERATE rp but no INITIATE was done
libcob: prog.cob:31: warning: implicit CLOSE of report-file ('PRINTOUT')
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_reportwriter.at:4556"
$at_failed && at_fn_log_failure
$at_traceon; }





: >reference

{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4566: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:4566"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4566"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_818
#AT_START_819
at_fn_group_banner 819 'run_reportwriter.at:4571' \
  "Missing INITIATE and TERMINATE" "                 " 4
at_xfail=no
(
  $as_echo "819. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT report-file ASSIGN EXTERNAL PRINTOUT
            ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  report-file REPORT rp.

       WORKING-STORAGE SECTION.
       01  foo  PIC X(20).
       01  hedpos PIC 99 VALUE 10.

       REPORT SECTION.
       RD  rp PAGE LIMIT 3.

       01  rp-detail TYPE DE.
         02  LINE + 1.
         03     COL 1; SOURCE foo, PIC X(30).
         03     COL + 2            PIC X(6) VALUE "<--->".

       PROCEDURE DIVISION.
           OPEN OUTPUT report-file.

           TERMINATE rp.
           CLOSE report-file.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4608: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4608"
( $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/run_reportwriter.at:4608"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4610: DD_PRINTOUT=./report.txt \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4610"
( $at_check_trace; DD_PRINTOUT=./report.txt $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:30: error: TERMINATE rp but no INITIATE was done
libcob: prog.cob:30: warning: implicit CLOSE of report-file ('PRINTOUT')
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_reportwriter.at:4610"
$at_failed && at_fn_log_failure
$at_traceon; }





: >reference

{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4620: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:4620"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:4620"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_819
#AT_START_820
at_fn_group_banner 820 'run_reportwriter.at:4625' \
  "Next Group Next Page" "                           " 4
at_xfail=no
(
  $as_echo "820. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
MW1000051IN15021220150212OR150212043ITEM_NUMBER_22      0000002800002999
MW1000051IN15022220150222OR150226020ITEM_NUMBER_06      0000004300000999
MW1000071IN15021420150214OR150212057ITEM_NUMBER_51      0000007000005999
MW1000071IN15022820150228OR150225098ITEM_NUMBER_92      0000001400009999
MW1000201IN15020920150209OR150216083ITEM_NUMBER_77      0000007700007999
MW1000201IN15022720150227OR150223079ITEM_NUMBER_20      0000009600002999
MW1000291IN15021720150217OR150218088ITEM_NUMBER_86      0000001900008999
MW1000411IN15022320150223OR150210063ITEM_NUMBER_66      0000008800006999
MW1000451IN15021720150217OR150202053ITEM_NUMBER_60      0000005100006999
MW1000471IN15022420150224OR150201036ITEM_NUMBER_45      0000003800004999
MW1000831IN15021020150210OR150227042ITEM_NUMBER_70      0000007200007999
MW1000831IN15021420150214OR150228090ITEM_NUMBER_07      0000002300000999
MW1000831IN15022020150220OR150226048ITEM_NUMBER_61      0000005900006999
MW1000891IN15022120150221OR150219018ITEM_NUMBER_72      0000007300007999
MW1000891IN15022320150223OR150227069ITEM_NUMBER_73      0000007400007999
NE1000001IN15021020150210OR150217060ITEM_NUMBER_38      0000009800003999
NE1000201IN15021920150219OR150209035ITEM_NUMBER_94      0000009600009999
NE1000431IN15021520150215OR150227047ITEM_NUMBER_64      0000008700006999
NE1000431IN15022220150222OR150213062ITEM_NUMBER_97      0000007300009999
NE1000451IN15020320150203OR150213087ITEM_NUMBER_85      0000005300008999
NE1000471IN15022120150221OR150222034ITEM_NUMBER_74      0000008400007999
NE1000471IN15022120150221OR150225077ITEM_NUMBER_78      0000002400007999
NE1000491IN15021720150217OR150210037ITEM_NUMBER_17      0000000700001999
NE1000601IN15021520150215OR150211070ITEM_NUMBER_06      0000004400000999
NE1000631IN15022720150227OR150209051ITEM_NUMBER_09      0000005400000999
NE1000671IN15020620150206OR150220045ITEM_NUMBER_56      0000006600005999
NE1000811IN15022020150220OR150212086ITEM_NUMBER_27      0000001700002999
NE1000811IN15022820150228OR150222075ITEM_NUMBER_66      0000008600006999
NE1000831IN15021620150216OR150224004ITEM_NUMBER_52      0000004200005999
NW1000001IN15022420150224OR150215029ITEM_NUMBER_79      0000003500007999
NW1000011IN15022820150228OR150209023ITEM_NUMBER_62      0000009800006999
NW1000051IN15021020150210OR150225076ITEM_NUMBER_50      0000003900005999
NW1000051IN15021820150218OR150229093ITEM_NUMBER_94      0000003700009999
NW1000051IN15022020150220OR150221050ITEM_NUMBER_89      0000003800008999
NW1000071IN15020220150202OR150223014ITEM_NUMBER_54      0000004800005999
NW1000091IN15020820150208OR150229094ITEM_NUMBER_17      0000007200001999
NW1000091IN15021220150212OR150222096ITEM_NUMBER_89      0000004900008999
NW1000091IN15022420150224OR150211074ITEM_NUMBER_90      0000004300009999
NW1000091IN15022720150227OR150219030ITEM_NUMBER_12      0000001900001999
NW1000201IN15020820150208OR150210061ITEM_NUMBER_34      0000001200003999
NW1000231IN15021420150214OR150210044ITEM_NUMBER_89      0000005400008999
NW1000251IN15021220150212OR150204059ITEM_NUMBER_39      0000006000003999
NW1000401IN15021520150215OR150222049ITEM_NUMBER_40      0000008100004999
NW1000401IN15021720150217OR150203085ITEM_NUMBER_77      0000003700007999
NW1000411IN15020720150207OR150224056ITEM_NUMBER_99      0000005400009999
NW1000411IN15022820150228OR150221008ITEM_NUMBER_68      0000009000006999
NW1000491IN15022820150228OR150201002ITEM_NUMBER_47      0000008600004999
NW1000611IN15022720150227OR150224097ITEM_NUMBER_11      0000008000001999
NW1000631IN15020720150207OR150206031ITEM_NUMBER_49      0000001500004999
NW1000631IN15021420150214OR150210054ITEM_NUMBER_40      0000004200004999
NW1000631IN15022420150224OR150218024ITEM_NUMBER_84      0000003300008999
NW1000651IN15020620150206OR150225099ITEM_NUMBER_57      0000004300005999
NW1000671IN15021320150213OR150224041ITEM_NUMBER_22      0000000200002999
NW1000691IN15020420150204OR150211092ITEM_NUMBER_13      0000009400001999
NW1000811IN15022720150227OR150217081ITEM_NUMBER_45      0000001600004999
NW1000851IN15020820150208OR150203091ITEM_NUMBER_63      0000006600006999
NW1000871IN15021820150218OR150209082ITEM_NUMBER_30      0000005500003999
NW1000871IN15022820150228OR150222015ITEM_NUMBER_73      0000005100007999
NW1000891IN15022520150225OR150201026ITEM_NUMBER_80      0000004700008999
SE1000001IN15022320150223OR150203064ITEM_NUMBER_03      0000007100000999
SE1000011IN15020120150201OR150213017ITEM_NUMBER_09      0000000600000999
SE1000011IN15021220150212OR150209066ITEM_NUMBER_06      0000004000000999
SE1000091IN15020420150204OR150201001ITEM_NUMBER_68      0000001900006999
SE1000091IN15021020150210OR150223084ITEM_NUMBER_11      0000009300001999
SE1000091IN15022620150226OR150219038ITEM_NUMBER_97      0000003700009999
SE1000211IN15020620150206OR150221089ITEM_NUMBER_05      0000004500000999
SE1000411IN15021220150212OR150208012ITEM_NUMBER_46      0000002300004999
SE1000431IN15020720150207OR150214072ITEM_NUMBER_25      0000004600002999
SE1000431IN15022520150225OR150220040ITEM_NUMBER_01      0000006100000999
SE1000451IN15021420150214OR150204022ITEM_NUMBER_34      0000004700003999
SE1000471IN15020320150203OR150217010ITEM_NUMBER_25      0000003400002999
SE1000471IN15021120150211OR150213025ITEM_NUMBER_54      0000009200005999
SE1000491IN15020220150202OR150202013ITEM_NUMBER_19      0000007800001999
SE1000601IN15022420150224OR150210039ITEM_NUMBER_19      0000005600001999
SE1000631IN15020120150201OR150216003ITEM_NUMBER_65      0000001100006999
SE1000671IN15020320150203OR150205071ITEM_NUMBER_64      0000009400006999
SE1000671IN15022020150220OR150214032ITEM_NUMBER_53      0000005900005999
SE1000891IN15022620150226OR150229068ITEM_NUMBER_75      0000008400007999
SW1000011IN15020220150202OR150206000ITEM_NUMBER_30      0000005900003999
SW1000031IN15020320150203OR150214033ITEM_NUMBER_09      0000006000000999
SW1000031IN15020620150206OR150206021ITEM_NUMBER_91      0000005400009999
SW1000091IN15022320150223OR150221028ITEM_NUMBER_67      0000003900006999
SW1000201IN15020920150209OR150205065ITEM_NUMBER_21      0000007000002999
SW1000201IN15022520150225OR150203052ITEM_NUMBER_55      0000007500005999
SW1000201IN15022520150225OR150210067ITEM_NUMBER_83      0000001500008999
SW1000211IN15020220150202OR150221055ITEM_NUMBER_16      0000001300001999
SW1000211IN15020820150208OR150215007ITEM_NUMBER_97      0000008900009999
SW1000271IN15021120150211OR150228080ITEM_NUMBER_45      0000005200004999
SW1000271IN15021320150213OR150207095ITEM_NUMBER_09      0000005400000999
SW1000401IN15022820150228OR150202027ITEM_NUMBER_83      0000000100008999
SW1000411IN15021020150210OR150220073ITEM_NUMBER_63      0000001400006999
SW1000431IN15020820150208OR150227078ITEM_NUMBER_23      0000005200002999
SW1000431IN15022020150220OR150227006ITEM_NUMBER_50      0000008500005999
SW1000601IN15020620150206OR150201011ITEM_NUMBER_73      0000008400007999
SW1000611IN15020620150206OR150218019ITEM_NUMBER_67      0000006100006999
SW1000651IN15020920150209OR150224009ITEM_NUMBER_23      0000001800002999
SW1000831IN15020120150201OR150221046ITEM_NUMBER_44      0000006900004999
SW1000831IN15022020150220OR150213005ITEM_NUMBER_44      0000003700004999
SW1000831IN15022220150222OR150213058ITEM_NUMBER_86      0000008300008999
SW1000871IN15020220150202OR150216016ITEM_NUMBER_62      0000008300006999
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
      *AUTHOR.          Gerard Robinson.
      *DATE-WRITTEN.    February 25, 2015.

       ENVIRONMENT DIVISION.

       INPUT-OUTPUT SECTION.

       FILE-CONTROL.

       SELECT REPORT-FILE
              ASSIGN TO EXTERNAL REPORTFILE
              ORGANIZATION IS LINE SEQUENTIAL.

       SELECT TEMP-FILE
              ASSIGN TO EXTERNAL TEMPFILE
              ORGANIZATION IS LINE SEQUENTIAL.

       DATA DIVISION.

       FILE SECTION.

       FD  REPORT-FILE
           REPORT IS RPTA.

       FD  TEMP-FILE.

       01  TEMP-REC.
         03  TEMP-REGION        PIC X(2).
         03  TEMP-BRANCH        PIC X(7).
         03  TEMP-INVOICE       PIC X(8).
         03  TEMP-DATE          PIC X(8).
         03  TEMP-ORDER         PIC X(8).
         03  TEMP-LINE-NO       PIC X(3).
         03  TEMP-ITEM          PIC X(20).
         03  TEMP-TX-QTY        PIC S9(8).
         03  TEMP-COST          PIC 999999V99.

       WORKING-STORAGE SECTION.

       01 WS-CURRENT-DATE PIC X(23).

       01 WS-SYSTEM-DATE-R REDEFINES WS-CURRENT-DATE.
          05 WS-DATE-YYYY          PIC X(4).
          05 WS-DATE-MM            PIC X(2).
          05 WS-DATE-DD            PIC X(2).
          05 WS-TIME               PIC X(6).
          05 WS-REST               PIC X(9).

       01 TEMP-FILE-EOF        PIC 9 VALUE 0.

       REPORT SECTION.

       RD  RPTA
           CONTROLS ARE
             FINAL,
             TEMP-REGION,
             TEMP-BRANCH,
             TEMP-INVOICE

           PAGE LIMIT IS 60 LINES
           HEADING 1
           FIRST DETAIL 8
           LAST DETAIL  48.

       01 RPTA-PAGE-HEADING TYPE PAGE HEADING.
          03 LINE NUMBER IS 1.
             05 COLUMN 1    PIC X(4)    VALUE "Run:".
             05 COLUMN 5    PIC X(2)    SOURCE WS-DATE-MM.
             05 COLUMN 7    PIC X       VALUE "/".
             05 COLUMN 8    PIC X(2)    SOURCE WS-DATE-DD.
             05 COLUMN 10   PIC X       VALUE "/".
             05 COLUMN 11   PIC X(4)    SOURCE WS-DATE-YYYY.
             05 COLUMN 16   PIC X(6)    SOURCE WS-TIME.
             05 COLUMN 40   PIC X(16)   VALUE "NEXT PAGE ISSUE".
             05 COLUMN 61   PIC X(4)    VALUE 'Page'.
             05 COLUMN 66   PIC ZZZ9    SOURCE PAGE-COUNTER.

          03 LINE NUMBER IS 2.
             05 COLUMN 1     PIC X(08)     VALUE "Region: ".
             05 COLUMN 12    PIC XX        SOURCE TEMP-REGION.

          03 LINE NUMBER IS 3.
             05 COLUMN 1   PIC X(21)         VALUE "Location: ".
             05 COLUMN 22  PIC X(7)          SOURCE TEMP-BRANCH.

          03 LINE NUMBER IS 4.
             05 COLUMN 1       PIC X(8)     VALUE "Invoice#".
             05 COLUMN 12      PIC X(4)     VALUE "Date".
             05 COLUMN 46      PIC X(6)     VALUE "Order#".
             05 COLUMN 62      PIC X(5)     VALUE "Line#".
             05 COLUMN 69      PIC X(5)     VALUE "Item#".
             05 COLUMN 102     PIC X(6)     VALUE "TX Qty".
             05 COLUMN 114     PIC X(4)     VALUE "Cost".

          03 LINE NUMBER IS 5.
             05 COLUMN 1       PIC X(128)   VALUE ALL "-".

       01 RPTA-DETAIL-LINE TYPE DETAIL.
             05 LINE PLUS 1.
                07 COLUMN  1   PIC X(8)       GROUP INDICATE
                                              SOURCE TEMP-INVOICE.
                07 COLUMN 12   PIC X(8)       GROUP INDICATE
                                              SOURCE TEMP-DATE.
                07 COLUMN 46   PIC X(8)       GROUP INDICATE
                                              SOURCE TEMP-ORDER.
                07 COLUMN 64   PIC X(3)       SOURCE TEMP-LINE-NO.
                07 COLUMN 69   PIC X(20)      SOURCE TEMP-ITEM.
                07 COLUMN 102  PIC S9(8)      SOURCE TEMP-TX-QTY.
                07 COLUMN 114  PIC ZZZZZZ9.99 SOURCE TEMP-COST.

       01 RPTA-INVOICE-FOOTING TYPE CONTROL FOOTING TEMP-INVOICE
                                 NEXT GROUP PLUS 1.
          03  LINE NUMBER IS PLUS 1.
             05 COLUMN  69        PIC X(15)    VALUE "Invoice Total: ".
             05 COLUMN 101        PIC S9(9)    SUM TEMP-TX-QTY.
             05 COLUMN 113        PIC ZZZZZZZ9.99 SUM TEMP-COST.

       01 RPTA-BRANCH-FOOTING TYPE CONTROL FOOTING TEMP-BRANCH
                                 NEXT GROUP NEXT PAGE.
          03  LINE NUMBER IS PLUS 2.
             05 COLUMN  69        PIC X(15)    VALUE "Branch Total: ".
             05 COLUMN 101        PIC S9(9)    SUM TEMP-TX-QTY.
             05 COLUMN 113        PIC ZZZZZZZ9.99 SUM TEMP-COST.

       01 RPTA-REGION-FOOTING TYPE CONTROL FOOTING TEMP-REGION
                                 NEXT GROUP NEXT PAGE.
          03  LINE NUMBER IS PLUS 2.
             05 COLUMN  69        PIC X(15)    VALUE "Region Total: ".
             05 COLUMN 101        PIC S9(9)    SUM TEMP-TX-QTY.
             05 COLUMN 113        PIC ZZZZZZZ9.99 SUM TEMP-COST.

       01 RPTA-FINAL-FOOTING TYPE CONTROL FOOTING FINAL.
          03  LINE NUMBER IS PLUS 2.
             05 COLUMN  69        PIC X(15)    VALUE "Grand Total: ".
             05 COLUMN 101        PIC S9(9)    SUM TEMP-TX-QTY.
             05 COLUMN 113        PIC ZZZZZZZ9.99 SUM TEMP-COST.

       PROCEDURE DIVISION.

           OPEN INPUT TEMP-FILE.
           OPEN OUTPUT REPORT-FILE.

           MOVE "20150225153000000000000" TO WS-CURRENT-DATE.

           INITIATE RPTA.

           PERFORM PROCESS-DETAIL-LEVEL-REPORT THRU PDLR-EXIT.

           TERMINATE RPTA.

           CLOSE TEMP-FILE.
           CLOSE REPORT-FILE.

           STOP RUN.


       PROCESS-DETAIL-LEVEL-REPORT.
           PERFORM READ-NEXT-TEMP-REC THRU RNTR-EXIT.

           IF TEMP-FILE-EOF EQUALS 1
              GO TO PDLR-EXIT
           END-IF.

           GENERATE RPTA-DETAIL-LINE.

           GO TO PROCESS-DETAIL-LEVEL-REPORT.

       PDLR-EXIT.
           EXIT.


       READ-NEXT-TEMP-REC.
           READ TEMP-FILE NEXT RECORD
             AT END
                MOVE 1 TO TEMP-FILE-EOF
           END-READ.

       RNTR-EXIT.
           EXIT.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4914: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:4914"
( $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/run_reportwriter.at:4914"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:4916: DD_TEMPFILE=./inp_data DD_REPORTFILE=./report.txt \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_TEMPFILE=./inp_data DD_REPORTFILE=./report.txt $COBCRUN_DIRECT ./prog" "run_reportwriter.at:4916"
( $at_check_trace; DD_TEMPFILE=./inp_data DD_REPORTFILE=./report.txt $COBCRUN_DIRECT ./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/run_reportwriter.at:4916"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    1
Region:    MW
Location:            1000051
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150212   20150212                          OR150212          043  ITEM_NUMBER_22                   00000028         29.99
                                                                    Invoice Total:                  000000028         29.99

IN150222   20150222                          OR150226          020  ITEM_NUMBER_06                   00000043          9.99
                                                                    Invoice Total:                  000000043          9.99


                                                                    Branch Total:                   000000071         39.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    2
Region:    MW
Location:            1000071
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150214   20150214                          OR150212          057  ITEM_NUMBER_51                   00000070         59.99
                                                                    Invoice Total:                  000000070         59.99

IN150228   20150228                          OR150225          098  ITEM_NUMBER_92                   00000014         99.99
                                                                    Invoice Total:                  000000014         99.99


                                                                    Branch Total:                   000000084        159.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    3
Region:    MW
Location:            1000201
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150209   20150209                          OR150216          083  ITEM_NUMBER_77                   00000077         79.99
                                                                    Invoice Total:                  000000077         79.99

IN150227   20150227                          OR150223          079  ITEM_NUMBER_20                   00000096         29.99
                                                                    Invoice Total:                  000000096         29.99


                                                                    Branch Total:                   000000173        109.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    4
Region:    MW
Location:            1000291
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150217   20150217                          OR150218          088  ITEM_NUMBER_86                   00000019         89.99
                                                                    Invoice Total:                  000000019         89.99


                                                                    Branch Total:                   000000019         89.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    5
Region:    MW
Location:            1000411
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150223   20150223                          OR150210          063  ITEM_NUMBER_66                   00000088         69.99
                                                                    Invoice Total:                  000000088         69.99


                                                                    Branch Total:                   000000088         69.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    6
Region:    MW
Location:            1000451
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150217   20150217                          OR150202          053  ITEM_NUMBER_60                   00000051         69.99
                                                                    Invoice Total:                  000000051         69.99


                                                                    Branch Total:                   000000051         69.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    7
Region:    MW
Location:            1000471
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150224   20150224                          OR150201          036  ITEM_NUMBER_45                   00000038         49.99
                                                                    Invoice Total:                  000000038         49.99


                                                                    Branch Total:                   000000038         49.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    8
Region:    MW
Location:            1000831
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150210   20150210                          OR150227          042  ITEM_NUMBER_70                   00000072         79.99
                                                                    Invoice Total:                  000000072         79.99

IN150214   20150214                          OR150228          090  ITEM_NUMBER_07                   00000023          9.99
                                                                    Invoice Total:                  000000023          9.99

IN150220   20150220                          OR150226          048  ITEM_NUMBER_61                   00000059         69.99
                                                                    Invoice Total:                  000000059         69.99


                                                                    Branch Total:                   000000154        159.97










































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page    9
Region:    MW
Location:            1000891
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150221   20150221                          OR150219          018  ITEM_NUMBER_72                   00000073         79.99
                                                                    Invoice Total:                  000000073         79.99

IN150223   20150223                          OR150227          069  ITEM_NUMBER_73                   00000074         79.99
                                                                    Invoice Total:                  000000074         79.99


                                                                    Branch Total:                   000000147        159.98

                                                                    Region Total:                   000000825        909.85











































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   10
Region:    NE
Location:            1000001
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150210   20150210                          OR150217          060  ITEM_NUMBER_38                   00000098         39.99
                                                                    Invoice Total:                  000000098         39.99


                                                                    Branch Total:                   000000098         39.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   11
Region:    NE
Location:            1000201
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150219   20150219                          OR150209          035  ITEM_NUMBER_94                   00000096         99.99
                                                                    Invoice Total:                  000000096         99.99


                                                                    Branch Total:                   000000096         99.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   12
Region:    NE
Location:            1000431
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150215   20150215                          OR150227          047  ITEM_NUMBER_64                   00000087         69.99
                                                                    Invoice Total:                  000000087         69.99

IN150222   20150222                          OR150213          062  ITEM_NUMBER_97                   00000073         99.99
                                                                    Invoice Total:                  000000073         99.99


                                                                    Branch Total:                   000000160        169.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   13
Region:    NE
Location:            1000451
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150203   20150203                          OR150213          087  ITEM_NUMBER_85                   00000053         89.99
                                                                    Invoice Total:                  000000053         89.99


                                                                    Branch Total:                   000000053         89.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   14
Region:    NE
Location:            1000471
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150221   20150221                          OR150222          034  ITEM_NUMBER_74                   00000084         79.99
                                                               077  ITEM_NUMBER_78                   00000024         79.99
                                                                    Invoice Total:                  000000108        159.98


                                                                    Branch Total:                   000000108        159.98















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   15
Region:    NE
Location:            1000491
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150217   20150217                          OR150210          037  ITEM_NUMBER_17                   00000007         19.99
                                                                    Invoice Total:                  000000007         19.99


                                                                    Branch Total:                   000000007         19.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   16
Region:    NE
Location:            1000601
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150215   20150215                          OR150211          070  ITEM_NUMBER_06                   00000044          9.99
                                                                    Invoice Total:                  000000044          9.99


                                                                    Branch Total:                   000000044          9.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   17
Region:    NE
Location:            1000631
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150227   20150227                          OR150209          051  ITEM_NUMBER_09                   00000054          9.99
                                                                    Invoice Total:                  000000054          9.99


                                                                    Branch Total:                   000000054          9.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   18
Region:    NE
Location:            1000671
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150206   20150206                          OR150220          045  ITEM_NUMBER_56                   00000066         59.99
                                                                    Invoice Total:                  000000066         59.99


                                                                    Branch Total:                   000000066         59.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   19
Region:    NE
Location:            1000811
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150220   20150220                          OR150212          086  ITEM_NUMBER_27                   00000017         29.99
                                                                    Invoice Total:                  000000017         29.99

IN150228   20150228                          OR150222          075  ITEM_NUMBER_66                   00000086         69.99
                                                                    Invoice Total:                  000000086         69.99


                                                                    Branch Total:                   000000103         99.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   20
Region:    NE
Location:            1000831
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150216   20150216                          OR150224          004  ITEM_NUMBER_52                   00000042         59.99
                                                                    Invoice Total:                  000000042         59.99


                                                                    Branch Total:                   000000042         59.99

                                                                    Region Total:                   000000831        819.86














































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   21
Region:    NW
Location:            1000001
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150224   20150224                          OR150215          029  ITEM_NUMBER_79                   00000035         79.99
                                                                    Invoice Total:                  000000035         79.99


                                                                    Branch Total:                   000000035         79.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   22
Region:    NW
Location:            1000011
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150228   20150228                          OR150209          023  ITEM_NUMBER_62                   00000098         69.99
                                                                    Invoice Total:                  000000098         69.99


                                                                    Branch Total:                   000000098         69.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   23
Region:    NW
Location:            1000051
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150210   20150210                          OR150225          076  ITEM_NUMBER_50                   00000039         59.99
                                                                    Invoice Total:                  000000039         59.99

IN150218   20150218                          OR150229          093  ITEM_NUMBER_94                   00000037         99.99
                                                                    Invoice Total:                  000000037         99.99

IN150220   20150220                          OR150221          050  ITEM_NUMBER_89                   00000038         89.99
                                                                    Invoice Total:                  000000038         89.99


                                                                    Branch Total:                   000000114        249.97










































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   24
Region:    NW
Location:            1000071
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150202   20150202                          OR150223          014  ITEM_NUMBER_54                   00000048         59.99
                                                                    Invoice Total:                  000000048         59.99


                                                                    Branch Total:                   000000048         59.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   25
Region:    NW
Location:            1000091
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150208   20150208                          OR150229          094  ITEM_NUMBER_17                   00000072         19.99
                                                                    Invoice Total:                  000000072         19.99

IN150212   20150212                          OR150222          096  ITEM_NUMBER_89                   00000049         89.99
                                                                    Invoice Total:                  000000049         89.99

IN150224   20150224                          OR150211          074  ITEM_NUMBER_90                   00000043         99.99
                                                                    Invoice Total:                  000000043         99.99

IN150227   20150227                          OR150219          030  ITEM_NUMBER_12                   00000019         19.99
                                                                    Invoice Total:                  000000019         19.99


                                                                    Branch Total:                   000000183        229.96







































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   26
Region:    NW
Location:            1000201
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150208   20150208                          OR150210          061  ITEM_NUMBER_34                   00000012         39.99
                                                                    Invoice Total:                  000000012         39.99


                                                                    Branch Total:                   000000012         39.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   27
Region:    NW
Location:            1000231
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150214   20150214                          OR150210          044  ITEM_NUMBER_89                   00000054         89.99
                                                                    Invoice Total:                  000000054         89.99


                                                                    Branch Total:                   000000054         89.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   28
Region:    NW
Location:            1000251
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150212   20150212                          OR150204          059  ITEM_NUMBER_39                   00000060         39.99
                                                                    Invoice Total:                  000000060         39.99


                                                                    Branch Total:                   000000060         39.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   29
Region:    NW
Location:            1000401
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150215   20150215                          OR150222          049  ITEM_NUMBER_40                   00000081         49.99
                                                                    Invoice Total:                  000000081         49.99

IN150217   20150217                          OR150203          085  ITEM_NUMBER_77                   00000037         79.99
                                                                    Invoice Total:                  000000037         79.99


                                                                    Branch Total:                   000000118        129.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   30
Region:    NW
Location:            1000411
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150207   20150207                          OR150224          056  ITEM_NUMBER_99                   00000054         99.99
                                                                    Invoice Total:                  000000054         99.99

IN150228   20150228                          OR150221          008  ITEM_NUMBER_68                   00000090         69.99
                                                                    Invoice Total:                  000000090         69.99


                                                                    Branch Total:                   000000144        169.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   31
Region:    NW
Location:            1000491
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150228   20150228                          OR150201          002  ITEM_NUMBER_47                   00000086         49.99
                                                                    Invoice Total:                  000000086         49.99


                                                                    Branch Total:                   000000086         49.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   32
Region:    NW
Location:            1000611
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150227   20150227                          OR150224          097  ITEM_NUMBER_11                   00000080         19.99
                                                                    Invoice Total:                  000000080         19.99


                                                                    Branch Total:                   000000080         19.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   33
Region:    NW
Location:            1000631
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150207   20150207                          OR150206          031  ITEM_NUMBER_49                   00000015         49.99
                                                                    Invoice Total:                  000000015         49.99

IN150214   20150214                          OR150210          054  ITEM_NUMBER_40                   00000042         49.99
                                                                    Invoice Total:                  000000042         49.99

IN150224   20150224                          OR150218          024  ITEM_NUMBER_84                   00000033         89.99
                                                                    Invoice Total:                  000000033         89.99


                                                                    Branch Total:                   000000090        189.97










































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   34
Region:    NW
Location:            1000651
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150206   20150206                          OR150225          099  ITEM_NUMBER_57                   00000043         59.99
                                                                    Invoice Total:                  000000043         59.99


                                                                    Branch Total:                   000000043         59.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   35
Region:    NW
Location:            1000671
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150213   20150213                          OR150224          041  ITEM_NUMBER_22                   00000002         29.99
                                                                    Invoice Total:                  000000002         29.99


                                                                    Branch Total:                   000000002         29.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   36
Region:    NW
Location:            1000691
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150204   20150204                          OR150211          092  ITEM_NUMBER_13                   00000094         19.99
                                                                    Invoice Total:                  000000094         19.99


                                                                    Branch Total:                   000000094         19.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   37
Region:    NW
Location:            1000811
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150227   20150227                          OR150217          081  ITEM_NUMBER_45                   00000016         49.99
                                                                    Invoice Total:                  000000016         49.99


                                                                    Branch Total:                   000000016         49.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   38
Region:    NW
Location:            1000851
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150208   20150208                          OR150203          091  ITEM_NUMBER_63                   00000066         69.99
                                                                    Invoice Total:                  000000066         69.99


                                                                    Branch Total:                   000000066         69.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   39
Region:    NW
Location:            1000871
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150218   20150218                          OR150209          082  ITEM_NUMBER_30                   00000055         39.99
                                                                    Invoice Total:                  000000055         39.99

IN150228   20150228                          OR150222          015  ITEM_NUMBER_73                   00000051         79.99
                                                                    Invoice Total:                  000000051         79.99


                                                                    Branch Total:                   000000106        119.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   40
Region:    NW
Location:            1000891
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150225   20150225                          OR150201          026  ITEM_NUMBER_80                   00000047         89.99
                                                                    Invoice Total:                  000000047         89.99


                                                                    Branch Total:                   000000047         89.99

                                                                    Region Total:                   000001496       1859.70














































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   41
Region:    SE
Location:            1000001
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150223   20150223                          OR150203          064  ITEM_NUMBER_03                   00000071          9.99
                                                                    Invoice Total:                  000000071          9.99


                                                                    Branch Total:                   000000071          9.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   42
Region:    SE
Location:            1000011
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150201   20150201                          OR150213          017  ITEM_NUMBER_09                   00000006          9.99
                                                                    Invoice Total:                  000000006          9.99

IN150212   20150212                          OR150209          066  ITEM_NUMBER_06                   00000040          9.99
                                                                    Invoice Total:                  000000040          9.99


                                                                    Branch Total:                   000000046         19.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   43
Region:    SE
Location:            1000091
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150204   20150204                          OR150201          001  ITEM_NUMBER_68                   00000019         69.99
                                                                    Invoice Total:                  000000019         69.99

IN150210   20150210                          OR150223          084  ITEM_NUMBER_11                   00000093         19.99
                                                                    Invoice Total:                  000000093         19.99

IN150226   20150226                          OR150219          038  ITEM_NUMBER_97                   00000037         99.99
                                                                    Invoice Total:                  000000037         99.99


                                                                    Branch Total:                   000000149        189.97










































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   44
Region:    SE
Location:            1000211
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150206   20150206                          OR150221          089  ITEM_NUMBER_05                   00000045          9.99
                                                                    Invoice Total:                  000000045          9.99


                                                                    Branch Total:                   000000045          9.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   45
Region:    SE
Location:            1000411
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150212   20150212                          OR150208          012  ITEM_NUMBER_46                   00000023         49.99
                                                                    Invoice Total:                  000000023         49.99


                                                                    Branch Total:                   000000023         49.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   46
Region:    SE
Location:            1000431
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150207   20150207                          OR150214          072  ITEM_NUMBER_25                   00000046         29.99
                                                                    Invoice Total:                  000000046         29.99

IN150225   20150225                          OR150220          040  ITEM_NUMBER_01                   00000061          9.99
                                                                    Invoice Total:                  000000061          9.99


                                                                    Branch Total:                   000000107         39.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   47
Region:    SE
Location:            1000451
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150214   20150214                          OR150204          022  ITEM_NUMBER_34                   00000047         39.99
                                                                    Invoice Total:                  000000047         39.99


                                                                    Branch Total:                   000000047         39.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   48
Region:    SE
Location:            1000471
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150203   20150203                          OR150217          010  ITEM_NUMBER_25                   00000034         29.99
                                                                    Invoice Total:                  000000034         29.99

IN150211   20150211                          OR150213          025  ITEM_NUMBER_54                   00000092         59.99
                                                                    Invoice Total:                  000000092         59.99


                                                                    Branch Total:                   000000126         89.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   49
Region:    SE
Location:            1000491
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150202   20150202                          OR150202          013  ITEM_NUMBER_19                   00000078         19.99
                                                                    Invoice Total:                  000000078         19.99


                                                                    Branch Total:                   000000078         19.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   50
Region:    SE
Location:            1000601
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150224   20150224                          OR150210          039  ITEM_NUMBER_19                   00000056         19.99
                                                                    Invoice Total:                  000000056         19.99


                                                                    Branch Total:                   000000056         19.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   51
Region:    SE
Location:            1000631
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150201   20150201                          OR150216          003  ITEM_NUMBER_65                   00000011         69.99
                                                                    Invoice Total:                  000000011         69.99


                                                                    Branch Total:                   000000011         69.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   52
Region:    SE
Location:            1000671
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150203   20150203                          OR150205          071  ITEM_NUMBER_64                   00000094         69.99
                                                                    Invoice Total:                  000000094         69.99

IN150220   20150220                          OR150214          032  ITEM_NUMBER_53                   00000059         59.99
                                                                    Invoice Total:                  000000059         59.99


                                                                    Branch Total:                   000000153        129.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   53
Region:    SE
Location:            1000891
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150226   20150226                          OR150229          068  ITEM_NUMBER_75                   00000084         79.99
                                                                    Invoice Total:                  000000084         79.99


                                                                    Branch Total:                   000000084         79.99

                                                                    Region Total:                   000000996        769.81














































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   54
Region:    SW
Location:            1000011
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150202   20150202                          OR150206          000  ITEM_NUMBER_30                   00000059         39.99
                                                                    Invoice Total:                  000000059         39.99


                                                                    Branch Total:                   000000059         39.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   55
Region:    SW
Location:            1000031
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150203   20150203                          OR150214          033  ITEM_NUMBER_09                   00000060          9.99
                                                                    Invoice Total:                  000000060          9.99

IN150206   20150206                          OR150206          021  ITEM_NUMBER_91                   00000054         99.99
                                                                    Invoice Total:                  000000054         99.99


                                                                    Branch Total:                   000000114        109.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   56
Region:    SW
Location:            1000091
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150223   20150223                          OR150221          028  ITEM_NUMBER_67                   00000039         69.99
                                                                    Invoice Total:                  000000039         69.99


                                                                    Branch Total:                   000000039         69.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   57
Region:    SW
Location:            1000201
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150209   20150209                          OR150205          065  ITEM_NUMBER_21                   00000070         29.99
                                                                    Invoice Total:                  000000070         29.99

IN150225   20150225                          OR150203          052  ITEM_NUMBER_55                   00000075         59.99
                                                               067  ITEM_NUMBER_83                   00000015         89.99
                                                                    Invoice Total:                  000000090        149.98


                                                                    Branch Total:                   000000160        179.97












































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   58
Region:    SW
Location:            1000211
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150202   20150202                          OR150221          055  ITEM_NUMBER_16                   00000013         19.99
                                                                    Invoice Total:                  000000013         19.99

IN150208   20150208                          OR150215          007  ITEM_NUMBER_97                   00000089         99.99
                                                                    Invoice Total:                  000000089         99.99


                                                                    Branch Total:                   000000102        119.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   59
Region:    SW
Location:            1000271
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150211   20150211                          OR150228          080  ITEM_NUMBER_45                   00000052         49.99
                                                                    Invoice Total:                  000000052         49.99

IN150213   20150213                          OR150207          095  ITEM_NUMBER_09                   00000054          9.99
                                                                    Invoice Total:                  000000054          9.99


                                                                    Branch Total:                   000000106         59.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   60
Region:    SW
Location:            1000401
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150228   20150228                          OR150202          027  ITEM_NUMBER_83                   00000001         89.99
                                                                    Invoice Total:                  000000001         89.99


                                                                    Branch Total:                   000000001         89.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   61
Region:    SW
Location:            1000411
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150210   20150210                          OR150220          073  ITEM_NUMBER_63                   00000014         69.99
                                                                    Invoice Total:                  000000014         69.99


                                                                    Branch Total:                   000000014         69.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   62
Region:    SW
Location:            1000431
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150208   20150208                          OR150227          078  ITEM_NUMBER_23                   00000052         29.99
                                                                    Invoice Total:                  000000052         29.99

IN150220   20150220                          OR150227          006  ITEM_NUMBER_50                   00000085         59.99
                                                                    Invoice Total:                  000000085         59.99


                                                                    Branch Total:                   000000137         89.98













































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   63
Region:    SW
Location:            1000601
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150206   20150206                          OR150201          011  ITEM_NUMBER_73                   00000084         79.99
                                                                    Invoice Total:                  000000084         79.99


                                                                    Branch Total:                   000000084         79.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   64
Region:    SW
Location:            1000611
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150206   20150206                          OR150218          019  ITEM_NUMBER_67                   00000061         69.99
                                                                    Invoice Total:                  000000061         69.99


                                                                    Branch Total:                   000000061         69.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   65
Region:    SW
Location:            1000651
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150209   20150209                          OR150224          009  ITEM_NUMBER_23                   00000018         29.99
                                                                    Invoice Total:                  000000018         29.99


                                                                    Branch Total:                   000000018         29.99
















































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   66
Region:    SW
Location:            1000831
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150201   20150201                          OR150221          046  ITEM_NUMBER_44                   00000069         49.99
                                                                    Invoice Total:                  000000069         49.99

IN150220   20150220                          OR150213          005  ITEM_NUMBER_44                   00000037         49.99
                                                                    Invoice Total:                  000000037         49.99

IN150222   20150222                          OR150213          058  ITEM_NUMBER_86                   00000083         89.99
                                                                    Invoice Total:                  000000083         89.99


                                                                    Branch Total:                   000000189        189.97










































Run:02/25/2015 153000                  NEXT PAGE ISSUE      Page   67
Region:    SW
Location:            1000871
Invoice#   Date                              Order#          Line#  Item#                            TX Qty      Cost
--------------------------------------------------------------------------------------------------------------------------------


IN150202   20150202                          OR150216          016  ITEM_NUMBER_62                   00000083         69.99
                                                                    Invoice Total:                  000000083         69.99

                                                                    Branch Total:                   000000083         69.99

                                                                    Region Total:                   000001167       1269.78

                                                                    Grand Total:                    000005315       5629.00













































_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:8943: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:8943"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:8943"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_820
#AT_START_821
at_fn_group_banner 821 'run_reportwriter.at:8948' \
  "Report PRESENT AFTER" "                           " 4
at_xfail=no
(
  $as_echo "821. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >inp_data <<'_ATEOF'
SAINATH KOTGIRE          30/03/201611029473  20 00100000                          00000100
UDAY PRATIVADI           30/03/201604547552  20 00100000                          00000200
MILIND PARDESHI          30/03/201611256856  20 00100000                          00000300
AJIT PATIL               30/03/201610503086  20 00000500                          00000400
VINOD KAMBLE             30/03/201615487558  20 00100000                          00000500
SACHIN TENDUNLKAR        30/03/201614645425  20 00500000                          00000600
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT IN-FILE   ASSIGN TO EXTERNAL INFILE
                  LINE SEQUENTIAL
                  FILE STATUS IS WS-INPUT-STATUS.

           SELECT OUT-FILE  ASSIGN TO EXTERNAL OREPORT
                  LINE SEQUENTIAL
                  FILE STATUS IS WS-OUTPUT-STATUS.

       DATA DIVISION.

       FILE SECTION.

       FD  IN-FILE
           RECORDING MODE IS F
           BLOCK 0.

       01  IN-REC.
           05 IN-EMP-NAME                  PIC X(25).
           05 IN-REPORT-PERIOD             PIC X(10).
           05 IN-EMP-USERID                PIC X(10).
           05 IN-BILL-DAYS                 PIC X(3).
           05 IN-SALARY                    PIC 9(8).
           05 FILLER                       PIC X(34).

       FD  OUT-FILE
           RECORDING MODE IS F
           REPORT IS REPORT1.

       01  REP-REC                         PIC X(100).

       WORKING-STORAGE SECTION.
       01  WS-FILE-FLAGS.
           05 WS-INPUT-STATUS              PIC XX.
              88  WS-INPUT-OK                        VALUE '00'.
              88  WS-INPUT-EOF                       VALUE '10'.
           05 WS-OUTPUT-STATUS             PIC XX.
              88  WS-OUTPUT-OK                       VALUE '00'.
      *-----------------------------------------------------------*
      * MISCELLANOUS FIELDS                                       *
      *-----------------------------------------------------------*
       01  WS-MISC.
           05 WS-EMP-NAME                  PIC X(25).
           05 WS-REPORT-PERIOD             PIC X(10).
           05 WS-EMP-USERID                PIC X(10).
           05 WS-BILL-DAYS                 PIC X(3).
           05 WS-SALARY                    PIC 9(8).

       01  WS-MISC-DATE.
           05 WS-DATE                      PIC 9(8) VALUE 20160422.
           05 WS-TIME                      PIC 9(8) VALUE 10550000.
           05 FILLER REDEFINES WS-TIME.
              10 WS-HH                     PIC 99.
              10 WS-MI                     PIC 99.
              10 WS-SS                     PIC 99.
              10 WS-HU                     PIC 99.

       REPORT SECTION.

       RD REPORT1
          PAGE LIMIT IS 65 LINES
          LINE LIMIT 132
          HEADING 1
          CONTROL ARE WS-SALARY.

       01  MAIN-HEADER TYPE IS PAGE HEADING.
           05 LINE 1.
              10 COLUMN CENTER 45  PIC X(35)  VALUE
                 'STARK TECHNOLOGIES MONTHLY REPORT'.

           05 LINE 2.
              10 COLUMN CENTER 45  PIC X(50)  VALUE ALL '-'.

           05 LINE 3.
              10 COLUMN 02  PIC X(14)  VALUE 'REPORT PERIOD:'.
              10 COLUMN 20  PIC 9999/99/99 SOURCE WS-DATE.
              10 COLUMN 32  PIC 99    SOURCE WS-HH.
              10 COLUMN 34  PIC X     VALUE ':'.
              10 COLUMN 35  PIC 99    SOURCE WS-MI.

       01  TYPE IS CONTROL HEADING
                FOR WS-SALARY OR PAGE.
           05 LINE PLUS 2 PRESENT AFTER NEW WS-SALARY.
              10 COLUMN 6   PIC X(9)   VALUE 'EMP NAME:'.
              10 COLUMN 30  PIC X(13)  VALUE 'EMP USERID:'.
              10 COLUMN 60  PIC X(13)  VALUE 'BILLING DAYS'.
              10 COLUMN 80  PIC X(15)  VALUE 'SALARY CREDITED'.
           05 LINE PLUS 1 PRESENT AFTER NEW WS-SALARY.
              10 COLUMN 2   PIC X(100)  VALUE ALL '+'.

       01  DETAIL-1 TYPE DETAIL.
           05 LINE PLUS 1.
              10 COLUMN 6   PIC X(25)  SOURCE WS-EMP-NAME.
              10 COLUMN 30  PIC X(08)  SOURCE WS-EMP-USERID.
              10 COLUMN 60  PIC X(3)   SOURCE WS-BILL-DAYS.
              10 COLUMN 80  PIC Z(7)9  SOURCE WS-SALARY.

       01  REP-FOOTER TYPE DETAIL.
           05 LINE PLUS 2.
              10 COLUMN 2   PIC X(100) VALUE ALL '*'.
           05 LINE PLUS 1.
              10 COLUMN 30  PIC X(23)  VALUE 'END OF SALARY REPORT'.
           05 LINE PLUS 1.
              10 COLUMN 2   PIC X(100) VALUE ALL '*'.

       PROCEDURE DIVISION.

      *    ACCEPT WS-DATE FROM DATE YYYYMMDD.
      *    ACCEPT WS-TIME FROM TIME.

           INITIATE REPORT1

      *    GENERATE MAIN-HEADER

           PERFORM 100-OPEN-FILES
           PERFORM 200-MAIN-PROCESS

           TERMINATE REPORT1

           CLOSE IN-FILE
           CLOSE OUT-FILE
           STOP RUN.

       100-OPEN-FILES.

           OPEN INPUT IN-FILE

           IF WS-INPUT-OK
              CONTINUE
           ELSE
              DISPLAY 'ERROR OPENING INFILE FILE.STATUS = '
                     WS-INPUT-STATUS
              STOP RUN
           END-IF

           OPEN OUTPUT OUT-FILE

           IF WS-OUTPUT-OK
              INITIALIZE REP-REC
           ELSE
              DISPLAY 'ERROR OPENING OREPORT FILE.STATUS = '
                     WS-OUTPUT-STATUS
              STOP RUN
           END-IF.

       200-MAIN-PROCESS.
      *    GENERATE HEADER-1

           PERFORM UNTIL WS-INPUT-EOF
               READ IN-FILE
               MOVE IN-REC  TO WS-MISC
               EVALUATE WS-INPUT-STATUS
                 WHEN '00'
                   GENERATE DETAIL-1
                 WHEN '10'
                   GENERATE REP-FOOTER
                 WHEN OTHER
                   DISPLAY ':ERROR READING INFILE FILE.STATUS = '
                           WS-INPUT-STATUS
                   STOP RUN
               END-EVALUATE
           END-PERFORM.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:9130: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_reportwriter.at:9130"
( $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/run_reportwriter.at:9130"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:9132: DD_INFILE=./inp_data DD_OREPORT=./report.txt \\
\$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'an embedded newline' "run_reportwriter.at:9132"
( $at_check_trace; DD_INFILE=./inp_data DD_OREPORT=./report.txt \
$COBCRUN_DIRECT ./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/run_reportwriter.at:9132"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
                           STARK TECHNOLOGIES MONTHLY REPORT
                    --------------------------------------------------
 REPORT PERIOD:    2016/04/22  10:55

     EMP NAME:               EMP USERID:                   BILLING DAYS        SALARY CREDITED
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     SAINATH KOTGIRE         11029473                      20                    100000
     UDAY PRATIVADI          04547552                      20                    100000
     MILIND PARDESHI         11256856                      20                    100000

     EMP NAME:               EMP USERID:                   BILLING DAYS        SALARY CREDITED
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     AJIT PATIL              10503086                      20                       500

     EMP NAME:               EMP USERID:                   BILLING DAYS        SALARY CREDITED
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     VINOD KAMBLE            15487558                      20                    100000

     EMP NAME:               EMP USERID:                   BILLING DAYS        SALARY CREDITED
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     SACHIN TENDUNLKAR       14645425                      20                    500000

 ****************************************************************************************************
                             END OF SALARY REPORT
 ****************************************************************************************************








































_ATEOF


{ set +x
$as_echo "$at_srcdir/run_reportwriter.at:9205: diff reference report.txt"
at_fn_check_prepare_trace "run_reportwriter.at:9205"
( $at_check_trace; diff reference report.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_reportwriter.at:9205"
$at_failed && at_fn_log_failure  \
"./report.txt"
$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_821
#AT_START_822
at_fn_group_banner 822 'run_returncode.at:23' \
  "RETURN-CODE moving" "                             " 4
at_xfail=no
(
  $as_echo "822. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 I             PIC 99 COMP.
       PROCEDURE        DIVISION.
           INITIALIZE RETURN-CODE.
           MOVE ZERO TO RETURN-CODE.
           MOVE 1 TO RETURN-CODE.
           MOVE RETURN-CODE TO I.
           IF I NOT = 1
              DISPLAY I NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_returncode.at:44: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_returncode.at:44"
( $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/run_returncode.at:44"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_returncode.at:45: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_returncode.at:45"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_returncode.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_822
#AT_START_823
at_fn_group_banner 823 'run_returncode.at:49' \
  "RETURN-CODE passing" "                            " 4
at_xfail=no
(
  $as_echo "823. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >mod1.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      mod1.
       PROCEDURE        DIVISION.
           IF RETURN-CODE NOT = 0
              DISPLAY RETURN-CODE NO ADVANCING
              END-DISPLAY
           END-IF.
           MOVE 1 TO RETURN-CODE.
           IF RETURN-CODE NOT = 1
              DISPLAY RETURN-CODE NO ADVANCING
              END-DISPLAY
           END-IF.
           EXIT PROGRAM.
_ATEOF


cat >mod2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      mod2.
       PROCEDURE        DIVISION.
           EXIT PROGRAM.
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           CALL "mod1"
           END-CALL.
           IF RETURN-CODE NOT = 1
              DISPLAY RETURN-CODE NO ADVANCING
              END-DISPLAY
           END-IF.
           CALL "mod2"
           END-CALL.
           IF RETURN-CODE NOT = 0
              DISPLAY RETURN-CODE NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_returncode.at:94: \$COMPILE_MODULE mod1.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE mod1.cob" "run_returncode.at:94"
( $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/run_returncode.at:94"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_returncode.at:95: \$COMPILE_MODULE mod2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE mod2.cob" "run_returncode.at:95"
( $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/run_returncode.at:95"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_returncode.at:96: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_returncode.at:96"
( $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/run_returncode.at:96"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_returncode.at:97: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_returncode.at:97"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_returncode.at:97"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_823
#AT_START_824
at_fn_group_banner 824 'run_returncode.at:101' \
  "RETURN-CODE nested" "                             " 4
at_xfail=no
(
  $as_echo "824. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           MOVE 1 TO RETURN-CODE.
           IF RETURN-CODE NOT = 1
              DISPLAY RETURN-CODE NO ADVANCING
              END-DISPLAY
           END-IF.
           CALL "mod1"
           END-CALL.
           IF RETURN-CODE NOT = 2
              DISPLAY RETURN-CODE NO ADVANCING
              END-DISPLAY
           END-IF.
           MOVE ZERO TO RETURN-CODE.
           STOP RUN.
       PROGRAM-ID.      mod1.
       PROCEDURE        DIVISION.
           IF RETURN-CODE NOT = 1
              DISPLAY RETURN-CODE NO ADVANCING
              END-DISPLAY
           END-IF.
           MOVE 2 TO RETURN-CODE.
           EXIT PROGRAM.
       END PROGRAM mod1.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_returncode.at:133: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_returncode.at:133"
( $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/run_returncode.at:133"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_returncode.at:134: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_returncode.at:134"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_returncode.at:134"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_824
#AT_START_825
at_fn_group_banner 825 'run_functions.at:24' \
  "FUNCTION ABS" "                                   " 4
at_xfail=no
(
  $as_echo "825. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   S9(4)V9(4) VALUE -1.2345.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION ABS ( X ) NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:39: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:39"
( $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/run_functions.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:40: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:40"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_825
#AT_START_826
at_fn_group_banner 826 'run_functions.at:46' \
  "FUNCTION ACOS" "                                  " 4
at_xfail=no
(
  $as_echo "826. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z   PIC   S9V9(35).
       PROCEDURE        DIVISION.
           MOVE FUNCTION ACOS ( -0.2345 ) TO Z.
           IF Z NOT = 1.80750052110824343510150043852321026
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:64: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:64"
( $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/run_functions.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:65: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:65"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_826
#AT_START_827
at_fn_group_banner 827 'run_functions.at:70' \
  "FUNCTION ANNUITY" "                               " 4
at_xfail=no
(
  $as_echo "827. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z   PIC   S9V9(35).
       PROCEDURE        DIVISION.
           MOVE FUNCTION ANNUITY ( 3, 5 ) TO Z.
           IF Z NOT = 3.00293255131964809384164222873900293
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:88: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:88"
( $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/run_functions.at:88"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:89: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:89"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:89"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_827
#AT_START_828
at_fn_group_banner 828 'run_functions.at:94' \
  "FUNCTION ASIN" "                                  " 4
at_xfail=no
(
  $as_echo "828. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   S9V9(35).
       PROCEDURE        DIVISION.
           MOVE FUNCTION ASIN ( -0.2345 ) TO Y.
           IF Y NOT = -0.23670419431334681587017874688345882
              DISPLAY Y
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:112: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:112"
( $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/run_functions.at:112"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:113: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:113"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_828
#AT_START_829
at_fn_group_banner 829 'run_functions.at:118' \
  "FUNCTION ATAN" "                                  " 4
at_xfail=no
(
  $as_echo "829. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   S9V9(35).
       PROCEDURE        DIVISION.
           MOVE FUNCTION ATAN ( 1 ) TO Y.
           IF Y NOT = 0.78539816339744830961566084581987572
              DISPLAY Y
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:136: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:136"
( $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/run_functions.at:136"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:137: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:137"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_829
#AT_START_830
at_fn_group_banner 830 'run_functions.at:142' \
  "FUNCTION BYTE-LENGTH" "                           " 4
at_xfail=no
(
  $as_echo "830. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC      X(4).
       01  Z   PIC      N(4).
       01  TEST-FLD     PIC S9(04)V9(08).
       PROCEDURE        DIVISION.
           MOVE FUNCTION BYTE-LENGTH ( X )
             TO TEST-FLD.
           IF TEST-FLD NOT = 4
              DISPLAY 'BYTE-LENGTH X(4) wrong: ' TEST-FLD
              END-DISPLAY
           END-IF
           MOVE FUNCTION BYTE-LENGTH ( Z )
             TO TEST-FLD
           IF TEST-FLD NOT = 8
              DISPLAY 'BYTE-LENGTH N(4) wrong: ' TEST-FLD
              END-DISPLAY
           END-IF

           MOVE FUNCTION BYTE-LENGTH ( '00128' )
             TO TEST-FLD
           IF TEST-FLD NOT = 5
              DISPLAY 'BYTE-LENGTH "00128" wrong: ' TEST-FLD
              END-DISPLAY
           END-IF
      *    note: we currently do not support items of category boolean...
      *>   MOVE FUNCTION BYTE-LENGTH ( b'100' )
      *>     TO TEST-FLD
      *>   IF TEST-FLD NOT = 3
      *>      DISPLAY 'BYTE-LENGTH b"100" wrong: ' TEST-FLD
      *>      END-DISPLAY
      *>   END-IF
           MOVE FUNCTION BYTE-LENGTH ( x'a0' )
             TO TEST-FLD
           IF TEST-FLD NOT = 1
              DISPLAY 'BYTE-LENGTH x"a0" wrong: ' TEST-FLD
              END-DISPLAY
           END-IF
           MOVE FUNCTION BYTE-LENGTH ( z'a0' )
             TO TEST-FLD
           IF TEST-FLD NOT = 3
              DISPLAY 'BYTE-LENGTH z"a0" wrong: ' TEST-FLD
              END-DISPLAY
           END-IF
      *    we currently generate national constants as
      *    alphanumeric constants...
      *    MOVE FUNCTION BYTE-LENGTH ( n'a0' )
      *      TO TEST-FLD
      *    IF TEST-FLD NOT = 4
      *       DISPLAY 'BYTE-LENGTH n"a0" wrong: ' TEST-FLD
      *       END-DISPLAY
      *    END-IF

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:204: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:204"
( $at_check_trace; $COMPILE 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: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:207: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:207"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:207"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_830
#AT_START_831
at_fn_group_banner 831 'run_functions.at:212' \
  "FUNCTION CHAR" "                                  " 4
at_xfail=no
(
  $as_echo "831. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC   S9(4)V9(4) VALUE 108.
       01  TEST-FLD.
           05  TEST-DATA  PIC X(01).
               88  VALID-DATA   VALUE 'k'.
           05  TEST-UNSET PIC X VALUE '_'.
               88  VALID-UNSET  VALUE '_'.
       PROCEDURE        DIVISION.
           STRING FUNCTION CHAR ( X )
                  DELIMITED BY SIZE
                  INTO TEST-FLD
           END-STRING.
           EVALUATE TRUE
              WHEN NOT VALID-UNSET
                 DISPLAY "FUNCTION result too long"
                 END-DISPLAY
              WHEN VALID-DATA
                 CONTINUE
              WHEN OTHER
                 DISPLAY TEST-DATA
                 END-DISPLAY
           END-EVALUATE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:244: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:244"
( $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/run_functions.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:245: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:245"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:245"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_831
#AT_START_832
at_fn_group_banner 832 'run_functions.at:250' \
  "FUNCTION COMBINED-DATETIME" "                     " 4
at_xfail=no
(
  $as_echo "832. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  TEST-FLD     PIC S9(04)V9(08).
       PROCEDURE        DIVISION.
           MOVE FUNCTION COMBINED-DATETIME ( 987, 345.6 )
             TO TEST-FLD.
           IF TEST-FLD NOT = 987.003456
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:269: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:269"
( $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/run_functions.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:270: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:270"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_832
#AT_START_833
at_fn_group_banner 833 'run_functions.at:275' \
  "FUNCTION CONCAT / CONCATENATE" "                  " 4
at_xfail=no
(
  $as_echo "833. $at_setup_line: testing $at_desc ..."
  $at_traceon



# note: CONCAT was added in COBOL 202x with GnuCOBOL's CONCATENATE
#       as blueprint
cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y            PIC   X(4).
       01  TEST-FLD.
           05  TEST-DATA  PIC X(14).
               88  VALID-DATA   VALUE 'defxabczz55666'.
           05  TEST-UNSET PIC X VALUE '_'.
               88  VALID-UNSET  VALUE '_'.
       PROCEDURE        DIVISION.
           MOVE "defx" TO Y.
           STRING FUNCTION CONCATENATE ( Y "abc" "zz" "55" "666" )
                  DELIMITED BY SIZE
                  INTO TEST-FLD
           END-STRING.
           EVALUATE TRUE
              WHEN NOT VALID-UNSET
                 DISPLAY "FUNCTION result too long"
                 END-DISPLAY
              WHEN TEST-DATA
                <> FUNCTION CONCAT ( Y "abc" "zz" "55" "666" )
                 DISPLAY "CONCAT issue, '" TEST-DATA
                     "' vs. '"
                     FUNCTION CONCAT ( Y "abc" "zz" "55" "666" ) "'"
                 END-DISPLAY
              WHEN VALID-DATA
                 CONTINUE
              WHEN OTHER
                 DISPLAY TEST-DATA
                 END-DISPLAY
           END-EVALUATE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:316: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:316"
( $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/run_functions.at:316"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:317: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:317"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_833
#AT_START_834
at_fn_group_banner 834 'run_functions.at:322' \
  "FUNCTION CONCATENATE with reference modding" "    " 4
at_xfail=no
(
  $as_echo "834. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y            PIC X(4).
       01  TEST-FLD     PIC X(9) VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE 'defx' TO Y.
           MOVE FUNCTION CONCATENATE
                ( Y "abc" "zz" "55" "666" ) (2 : 9)
             TO TEST-FLD.
           IF TEST-FLD NOT = 'efxabczz5'
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:344: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:344"
( $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/run_functions.at:344"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:345: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:345"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:345"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_834
#AT_START_835
at_fn_group_banner 835 'run_functions.at:350' \
  "FUNCTION CONTENT-LENGTH" "                        " 4
at_xfail=no
(
  $as_echo "835. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  P            USAGE    POINTER.
       01  X            PIC      X(4) VALUE Z"ABC".
       01  TEST-FLD     USAGE    BINARY-LONG.
       PROCEDURE        DIVISION.
           MOVE FUNCTION CONTENT-LENGTH ( P )
             TO TEST-FLD.
           IF TEST-FLD NOT = 0
              DISPLAY 'CONTENT-LENGTH NULL wrong: ' TEST-FLD
              END-DISPLAY
           END-IF
           SET P TO ADDRESS OF X
           MOVE FUNCTION CONTENT-LENGTH ( P )
             TO TEST-FLD
           IF TEST-FLD NOT = 3
              DISPLAY 'CONTENT-LENGTH z"abc" wrong: ' TEST-FLD
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:378: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:378"
( $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/run_functions.at:378"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:379: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:379"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_835
#AT_START_836
at_fn_group_banner 836 'run_functions.at:384' \
  "FUNCTION CONTENT-OF" "                            " 4
at_xfail=no
(
  $as_echo "836. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  P   USAGE    POINTER.
       01  X   PIC      X(4) VALUE Z"ABC".
       01  B   PIC      X(10) BASED.
       PROCEDURE        DIVISION.
           SET P TO ADDRESS OF X
           IF FUNCTION CONTENT-OF ( P ) NOT EQUAL 'ABC' THEN
              DISPLAY 'CONTENT-OF(ptr) wrong' END-DISPLAY
           END-IF
           IF FUNCTION CONTENT-OF ( P, 2 ) NOT EQUAL 'AB' THEN
              DISPLAY 'CONTENT-OF(ptr, len) wrong' END-DISPLAY
           END-IF
           IF FUNCTION EXCEPTION-STATUS NOT = SPACES THEN
              DISPLAY 'unexpected exception (1): '
                       FUNCTION EXCEPTION-STATUS
              END-DISPLAY
           END-IF
           SET  P      TO NULL
           MOVE 'PPPP' TO X
           STRING FUNCTION CONTENT-OF ( P )
                  DELIMITED BY SIZE
                  INTO X
           END-STRING
      *>   Note: result *should* depend on dialect option zero-length literals
           IF X NOT EQUAL 'PPPP' THEN
              DISPLAY 'CONTENT-OF empty POINTER wrong: "' X "'"
              END-DISPLAY
           END-IF
           IF FUNCTION EXCEPTION-STATUS NOT = "EC-DATA-PTR-NULL" THEN
              DISPLAY 'missing exception (1)'
              END-DISPLAY
           END-IF
           ALLOCATE B INITIALIZED
           SET  P      TO ADDRESS OF B
           IF FUNCTION CONTENT-OF ( P, 1 ) NOT EQUAL SPACES THEN
              DISPLAY 'CONTENT-OF allocated BASED item wrong'
              END-DISPLAY
           END-IF
           IF FUNCTION EXCEPTION-STATUS NOT = SPACES THEN
              DISPLAY 'unexpected exception (2): '
                       FUNCTION EXCEPTION-STATUS
              END-DISPLAY
           END-IF
           FREE B
           SET  P      TO ADDRESS OF B
           MOVE 'BBBB' TO X
           STRING FUNCTION CONTENT-OF ( P )
                  DELIMITED BY SIZE
                  INTO X
           END-STRING
      *>   Note: result *should* depend on dialect option zero-length literals
           IF X NOT EQUAL 'BBBB' THEN
              DISPLAY 'CONTENT-OF unallocated BASED item wrong: "' X '"'
              END-DISPLAY
           END-IF
           IF FUNCTION EXCEPTION-STATUS NOT = "EC-DATA-PTR-NULL" THEN
              DISPLAY 'missing exception (2)'
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:453: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:453"
( $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/run_functions.at:453"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:454: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:454"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:454"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_836
#AT_START_837
at_fn_group_banner 837 'run_functions.at:459' \
  "FUNCTION as CALL parameter BY CONTENT" "          " 4
at_xfail=no
(
  $as_echo "837. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       PROCEDURE DIVISION.
       PROG-MAIN.
           CALL "subprog" USING BY CONTENT
                                FUNCTION CONCATENATE("Abc" "D")
           STOP RUN.
           END PROGRAM prog.

       *> *****************************
       IDENTIFICATION DIVISION.
       PROGRAM-ID. subprog.

       DATA DIVISION.
       LINKAGE SECTION.
       01 TESTING PIC X ANY LENGTH.

       PROCEDURE DIVISION USING TESTING.
       SUBPROG-MAIN.
           DISPLAY TESTING
           GOBACK.
       END PROGRAM subprog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:488: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:488"
( $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/run_functions.at:488"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:489: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:489"
( $at_check_trace; $COBCRUN_DIRECT ./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 "AbcD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_837
#AT_START_838
at_fn_group_banner 838 'run_functions.at:495' \
  "FUNCTION COS" "                                   " 4
at_xfail=no
(
  $as_echo "838. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y            PIC   S9V9(35).
       PROCEDURE        DIVISION.
           MOVE FUNCTION COS ( -0.2345 ) TO Y.
           IF Y NOT = 0.97263064125625818471341696241456141
              DISPLAY Y
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:513: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:513"
( $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/run_functions.at:513"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:514: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:514"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:514"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_838
#AT_START_839
at_fn_group_banner 839 'run_functions.at:519' \
  "FUNCTION CURRENCY-SYMBOL" "                       " 4
at_xfail=no
(
  $as_echo "839. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  TEST-FLD     PIC X(8) VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE FUNCTION CURRENCY-SYMBOL TO TEST-FLD.
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:536: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:536"
( $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/run_functions.at:536"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:537: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:537"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:537"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_839
#AT_START_840
at_fn_group_banner 840 'run_functions.at:542' \
  "FUNCTION CURRENT-DATE" "                          " 4
at_xfail=no
(
  $as_echo "840. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  TEST-FLD.
           02  WS-YEAR            PIC 9(04).
               88 VALID-YEAR      VALUE 1980 THRU 9999.
           02  WS-MONTH           PIC 9(02).
               88 VALID-MONTH     VALUE 01 THRU 12.
           02  WS-DAY             PIC 9(02).
               88 VALID-DAY       VALUE 01 THRU 31.
           02  WS-HOUR            PIC 9(02).
               88 VALID-HOUR      VALUE 00 THRU 23.
           02  WS-MIN             PIC 9(02).
               88 VALID-MIN       VALUE 00 THRU 59.
           02  WS-SEVALIDD        PIC 9(02).
               88 VALID-SEC       VALUE 00 THRU 59.
           02  WS-HUNDSEC         PIC 9(02).
               88 VALID-HUNDSEC   VALUE 00 THRU 99.
           02  WS-GREENW          PIC X.
               88 VALID-GREENW    VALUE "-", "+", "0".
               88 ZERO-GREENW     VALUE "0".
           02  WS-OFFSET          PIC 9(02).
               88 VALID-OFFSET    VALUE 00 THRU 13.
               88 ZERO-OFFSET     VALUE 00.
           02  WS-OFFSET2         PIC 9(02).
               88 VALID-OFFSET2   VALUE 00 THRU 59.
               88 ZERO-OFFSET2    VALUE 00.
           02  WS-UNSET           PIC X VALUE '_'.
               88 VALID-UNSET     VALUE '_'.
       PROCEDURE        DIVISION.
           STRING FUNCTION CURRENT-DATE
                  DELIMITED BY SIZE
                  INTO TEST-FLD
           END-STRING.
           EVALUATE TRUE
              WHEN NOT VALID-UNSET
                 DISPLAY "FUNCTION result too long"
                 END-DISPLAY
              WHEN VALID-YEAR     AND
                 VALID-MONTH    AND
                 VALID-DAY      AND
                 VALID-HOUR     AND
                 VALID-MIN      AND
                 VALID-SEC      AND
                 VALID-HUNDSEC  AND
                 VALID-GREENW   AND
                 VALID-OFFSET   AND
                 VALID-OFFSET2  AND
                 VALID-UNSET    AND
                 ((NOT ZERO-GREENW) OR (ZERO-OFFSET AND ZERO-OFFSET2))
                 CONTINUE
              WHEN OTHER
                 DISPLAY "CURRENT-DATE with wrong format: "
                         TEST-FLD (01:21)
                 END-DISPLAY
           END-EVALUATE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:607: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:607"
( $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/run_functions.at:607"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:608: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:608"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:608"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_840
#AT_START_841
at_fn_group_banner 841 'run_functions.at:613' \
  "FUNCTION DATE-OF-INTEGER" "                       " 4
at_xfail=no
(
  $as_echo "841. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  TEST-FLD     PIC S9(09)V9(02).
       PROCEDURE        DIVISION.
           MOVE FUNCTION DATE-OF-INTEGER ( 146000 )
             TO TEST-FLD.
           IF TEST-FLD NOT = 20000925
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:632: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:632"
( $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/run_functions.at:632"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:633: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:633"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:633"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_841
#AT_START_842
at_fn_group_banner 842 'run_functions.at:638' \
  "FUNCTION DATE-TO-YYYYMMDD" "                      " 4
at_xfail=no
(
  $as_echo "842. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  TEST-FLD     PIC S9(09)V9(02).
       PROCEDURE        DIVISION.
           MOVE FUNCTION DATE-TO-YYYYMMDD ( 981002, -10, 1994 )
             TO TEST-FLD.
           IF TEST-FLD NOT = 018981002
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:657: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:657"
( $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/run_functions.at:657"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:658: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:658"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:658"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_842
#AT_START_843
at_fn_group_banner 843 'run_functions.at:663' \
  "FUNCTION DAY-OF-INTEGER" "                        " 4
at_xfail=no
(
  $as_echo "843. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  TEST-FLD     PIC S9(09)V9(02).
       PROCEDURE        DIVISION.
           MOVE FUNCTION DAY-OF-INTEGER ( 146000 )
             TO TEST-FLD.
           IF TEST-FLD NOT = 2000269
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:682: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:682"
( $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/run_functions.at:682"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:683: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:683"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:683"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_843
#AT_START_844
at_fn_group_banner 844 'run_functions.at:688' \
  "FUNCTION DAY-TO-YYYYDDD" "                        " 4
at_xfail=no
(
  $as_echo "844. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  TEST-FLD     PIC S9(09)V9(02).
       PROCEDURE        DIVISION.
           MOVE FUNCTION DAY-TO-YYYYDDD ( 95005, -10, 2013 )
             TO TEST-FLD.
           IF TEST-FLD NOT = 001995005
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:707: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:707"
( $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/run_functions.at:707"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:708: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:708"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:708"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_844
#AT_START_845
at_fn_group_banner 845 'run_functions.at:713' \
  "FUNCTION E" "                                     " 4
at_xfail=no
(
  $as_echo "845. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   9V9(35).
       PROCEDURE        DIVISION.
           MOVE    FUNCTION E TO Y.
           IF Y NOT = 2.71828182845904523536028747135266249
              DISPLAY Y
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:731: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:731"
( $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/run_functions.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:732: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:732"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:732"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_845
#AT_START_846
at_fn_group_banner 846 'run_functions.at:737' \
  "FUNCTION EXCEPTION-FILE" "                        " 4
at_xfail=no
(
  $as_echo "846. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           SELECT TEST-FILE ASSIGN "NOTEXIST"
           FILE STATUS IS TEST-STATUS.
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE.
       01  TEST-REC      PIC X(4).
       WORKING-STORAGE SECTION.
       01  TEST-STATUS  PIC XX.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION EXCEPTION-FILE '|'
                   NO ADVANCING
           END-DISPLAY.
           OPEN INPUT TEST-FILE.
           DISPLAY FUNCTION EXCEPTION-FILE
                   NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:765: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:765"
( $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/run_functions.at:765"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:766: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:766"
( $at_check_trace; $COBCRUN_DIRECT ./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|35TEST-FILE" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:766"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_846
#AT_START_847
at_fn_group_banner 847 'run_functions.at:772' \
  "FUNCTION EXCEPTION-LOCATION" "                    " 4
at_xfail=no
(
  $as_echo "847. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           SELECT TEST-FILE ASSIGN "NOTEXIST"
           FILE STATUS IS TEST-STATUS.
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE.
       01  TEST-REC      PIC X(4).
       WORKING-STORAGE SECTION.
       01  TEST-STATUS  PIC XX.
       PROCEDURE        DIVISION.
       A00-MAIN SECTION.
       A00.
           DISPLAY FUNCTION EXCEPTION-LOCATION '|'
                   NO ADVANCING
           END-DISPLAY.
           OPEN INPUT TEST-FILE.
       B00-MAIN SECTION.
       B00.
           DISPLAY FUNCTION EXCEPTION-LOCATION
                   NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:804: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:804"
( $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/run_functions.at:804"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:805: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:805"
( $at_check_trace; $COBCRUN_DIRECT ./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; 21" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:805"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_847
#AT_START_848
at_fn_group_banner 848 'run_functions.at:811' \
  "FUNCTION EXCEPTION-STATEMENT" "                   " 4
at_xfail=no
(
  $as_echo "848. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           SELECT TEST-FILE ASSIGN "NOTEXIST"
           FILE STATUS IS TEST-STATUS.
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE.
       01  TEST-REC      PIC X(4).
       WORKING-STORAGE SECTION.
       01  TEST-STATUS  PIC XX.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION EXCEPTION-STATEMENT '|'
                   NO ADVANCING
           END-DISPLAY.
           OPEN INPUT TEST-FILE.
           DISPLAY FUNCTION EXCEPTION-STATEMENT
                   NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:839: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:839"
( $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/run_functions.at:839"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:840: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:840"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:840"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_848
#AT_START_849
at_fn_group_banner 849 'run_functions.at:846' \
  "FUNCTION EXCEPTION-STATUS" "                      " 4
at_xfail=no
(
  $as_echo "849. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           SELECT TEST-FILE ASSIGN "NOTEXIST"
           FILE STATUS IS TEST-STATUS.
       DATA             DIVISION.
       FILE             SECTION.
       FD  TEST-FILE.
       01  TEST-REC      PIC X(4).
       WORKING-STORAGE SECTION.
       01  TEST-STATUS  PIC XX.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION EXCEPTION-STATUS '|'
                   NO ADVANCING
           END-DISPLAY.
           OPEN INPUT TEST-FILE.
           DISPLAY FUNCTION EXCEPTION-STATUS
                   NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:874: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:874"
( $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/run_functions.at:874"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:875: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:875"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:875"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_849
#AT_START_850
at_fn_group_banner 850 'run_functions.at:881' \
  "FUNCTION EXP" "                                   " 4
at_xfail=no
(
  $as_echo "850. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   S99V9(34).
       PROCEDURE        DIVISION.
           MOVE FUNCTION EXP ( 3 ) TO Y.
           IF Y NOT = 20.0855369231876677409285296545817178
              DISPLAY Y
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:899: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:899"
( $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/run_functions.at:899"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:900: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:900"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:900"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_850
#AT_START_851
at_fn_group_banner 851 'run_functions.at:905' \
  "FUNCTION EXP10" "                                 " 4
at_xfail=no
(
  $as_echo "851. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  TEST-FLD     PIC S9(09)V9(02).
       PROCEDURE        DIVISION.
           MOVE FUNCTION EXP10 ( 4 )
             TO TEST-FLD.
           IF TEST-FLD NOT = 000010000
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:924: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:924"
( $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/run_functions.at:924"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:925: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:925"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:925"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_851
#AT_START_852
at_fn_group_banner 852 'run_functions.at:930' \
  "FUNCTION FACTORIAL" "                             " 4
at_xfail=no
(
  $as_echo "852. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  TEST-FLD     PIC S9(09)V9(02).
       PROCEDURE        DIVISION.
           MOVE FUNCTION FACTORIAL ( 6 )
             TO TEST-FLD.
           IF TEST-FLD NOT = 000000720
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:949: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:949"
( $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/run_functions.at:949"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:950: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:950"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:950"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_852
#AT_START_853
at_fn_group_banner 853 'run_functions.at:955' \
  "FUNCTION FORMATTED-CURRENT-DATE" "                " 4
at_xfail=no
(
  $as_echo "853. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Datetime-Format CONSTANT "YYYYMMDDThhmmss.ss+hhmm".
       01  str             PIC X(25).
       PROCEDURE        DIVISION.
      *>   Test normal inputs.
           MOVE FUNCTION FORMATTED-CURRENT-DATE ( Datetime-Format )
             TO str
           IF FUNCTION TEST-FORMATTED-DATETIME ( Datetime-Format, str)
                   <> 0
              DISPLAY "Test 1 failed: " str END-DISPLAY
           END-IF.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:977: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:977"
( $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/run_functions.at:977"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:978: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:978"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:978"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_853
#AT_START_854
at_fn_group_banner 854 'run_functions.at:983' \
  "FUNCTION FORMATTED-DATE" "                        " 4
at_xfail=no
(
  $as_echo "854. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  str          PIC X(10).
       PROCEDURE        DIVISION.
      *>   Test normal inputs.
           MOVE FUNCTION FORMATTED-DATE ( "YYYYMMDD", 1 ) TO str
           IF str <> "16010101"
              DISPLAY "Test 1 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-DATE ( "YYYY-MM-DD", 1 ) TO str
           IF str <> "1601-01-01"
              DISPLAY "Test 2 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-DATE ( "YYYYDDD", 1 ) TO str
           IF str <> "1601001"
              DISPLAY "Test 3 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-DATE ( "YYYY-DDD", 1 ) TO str
           IF str <> "1601-001"
              DISPLAY "Test 4 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-DATE ( "YYYYWwwD", 1 ) TO str
           IF str <> "1601W011"
              DISPLAY "Test 5 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-DATE ( "YYYY-Www-D", 1 ) TO str
           IF str <> "1601-W01-1"
              DISPLAY "Test 6 failed: " str END-DISPLAY
           END-IF

      *>   Test week number edge cases.
      *>   For 2012-01-01.
           MOVE FUNCTION FORMATTED-DATE ( "YYYYWwwD", 150115 ) TO str
           IF str <> "2011W527"
              DISPLAY "Test 7 failed: " str END-DISPLAY
           END-IF

      *>   and for 2013-12-30.
           MOVE FUNCTION FORMATTED-DATE ( "YYYYWwwD", 150844 ) TO str
           IF str <> "2014W011"
              DISPLAY "Test 8 failed: " str END-DISPLAY
           END-IF

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1040: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1040"
( $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/run_functions.at:1040"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1041: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1041"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1041"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_854
#AT_START_855
at_fn_group_banner 855 'run_functions.at:1046' \
  "FUNCTION FORMATTED-DATE with ref modding" "       " 4
at_xfail=no
(
  $as_echo "855. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  str          PIC X(04).
       PROCEDURE        DIVISION.
           MOVE FUNCTION FORMATTED-DATE ("YYYYMMDD", 1) (3:4)
             TO STR
           IF STR NOT = '0101'
              DISPLAY STR
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1065: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1065"
( $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/run_functions.at:1065"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1066: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1066"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1066"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_855
#AT_START_856
at_fn_group_banner 856 'run_functions.at:1071' \
  "FUNCTION FORMATTED-DATETIME" "                    " 4
at_xfail=no
(
  $as_echo "856. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  str          PIC X(40).
       PROCEDURE        DIVISION.
      *>   Test normal inputs.
           MOVE FUNCTION FORMATTED-DATETIME
                   ("YYYYMMDDThhmmss", 1, 45296)
               TO str
           IF str <> "16010101T123456"
               DISPLAY "Test 1 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-DATETIME
                   ("YYYY-MM-DDThh:mm:ss", 1, 45296)
               TO str
           IF str <> "1601-01-01T12:34:56"
               DISPLAY "Test 2 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-DATETIME
                    ("YYYYDDDThhmmss+hhmm", 1, 45296, -754)
               TO str
           IF str <> "1601001T123456-1234"
               DISPLAY "Test 3 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-DATETIME
                    ("YYYYDDDThhmmss+hhmm", 1, 45296)
               TO str
           IF str <> "1601001T123456+0000"
               DISPLAY "Test 4 failed: " str END-DISPLAY
           END-IF

           *> Test underflow to next day due to offset
           MOVE FUNCTION FORMATTED-DATETIME
                    ("YYYYDDDThhmmss.sssssssssZ", 150846, 0,
                     1)
               TO str
           IF str <> "2013365T235900.000000000Z"
               DISPLAY "Test 5 failed: " str END-DISPLAY
           END-IF

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1122: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1122"
( $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/run_functions.at:1122"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1123: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1123"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1123"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_856
#AT_START_857
at_fn_group_banner 857 'run_functions.at:1128' \
  "FUNCTION FORMATTED-DATETIME with ref modding" "   " 4
at_xfail=no
(
  $as_echo "857. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  str          PIC X(04).
       PROCEDURE        DIVISION.
           MOVE FUNCTION FORMATTED-DATETIME
               ("YYYYMMDDThhmmss", 1, 1) (3:4)
             TO STR
           IF STR NOT = '0101'
              DISPLAY STR
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1148: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1148"
( $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/run_functions.at:1148"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1149: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1149"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1149"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_857
#AT_START_858
at_fn_group_banner 858 'run_functions.at:1154' \
  "FUNCTION FORMATTED-TIME" "                        " 4
at_xfail=no
(
  $as_echo "858. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  str          PIC X(20).
       PROCEDURE        DIVISION.
      *>   Test normal inputs.
           MOVE FUNCTION FORMATTED-TIME ( "hhmmss", 45296 ) TO str
           IF str <> "123456"
               DISPLAY "Test 1 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-TIME ( "hh:mm:ss", 45296 ) TO str
           IF str <> "12:34:56"
               DISPLAY "Test 2 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-TIME ( "hhmmssZ", 86399, -1 ) TO str
           IF str <> "000059Z"
               DISPLAY "Test 3 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-TIME ( "hh:mm:ssZ", 45296)
               TO str
           IF str <> "12:34:56Z"
               DISPLAY "Test 4 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-TIME ( "hhmmss.ss", 45296.78 ) TO str
           IF str <> "123456.78"
               DISPLAY "Test 5 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-TIME ( "hh:mm:ss.ssZ", 0, 120)
               TO str
           IF str <> "22:00:00.00Z"
               DISPLAY "Test 6 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-TIME ( "hhmmss+hhmm", 45296)
               TO str
           IF str <> "123456+0000"
               DISPLAY "Test 7 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-TIME ( "hh:mm:ss+hh:mm", 45296, 0 )
               TO str
           IF str <> "12:34:56+00:00"
               DISPLAY "Test 8 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-TIME ( "hhmmss+hhmm", 45296, -754)
               TO str
           IF str <> "123456-1234"
               DISPLAY "Test 9 failed: " str END-DISPLAY
           END-IF

      *>   Test with invalid/missing offset times.
           MOVE FUNCTION FORMATTED-TIME ( "hhmmss+hhmm", 1, 3000 )
               TO str
           IF str <> SPACES
                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 60"
               DISPLAY "Test 10 failed: " str END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-TIME ( "hhmmss+hhmm", 1, -3000 )
               TO str
           IF str <> SPACES
                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 68"
               DISPLAY "Test 11 failed: " str END-DISPLAY
           END-IF

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1235: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1235"
( $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/run_functions.at:1235"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1236: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1236"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1236"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_858
#AT_START_859
at_fn_group_banner 859 'run_functions.at:1241' \
  "FUNCTION FORMATTED-TIME DP.COMMA" "               " 4
at_xfail=no
(
  $as_echo "859. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.

       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT IS COMMA.

       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  str          PIC X(11).

       PROCEDURE        DIVISION.
           MOVE FUNCTION FORMATTED-TIME ("hh:mm:ss,ss", 45296) TO str
           IF str <> "12:34:56,00"
               DISPLAY "Test 1 failed: " str END-DISPLAY
           END-IF

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1266: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1266"
( $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/run_functions.at:1266"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1267: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1267"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1267"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_859
#AT_START_860
at_fn_group_banner 860 'run_functions.at:1272' \
  "FUNCTION FORMATTED-TIME with ref modding" "       " 4
at_xfail=no
(
  $as_echo "860. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  str          PIC X(04).
       PROCEDURE        DIVISION.
           MOVE FUNCTION FORMATTED-TIME ("hhmmss", 45296) (3:4)
             TO STR
           IF STR NOT = '3456'
              DISPLAY STR
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1291: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1291"
( $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/run_functions.at:1291"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1292: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1292"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1292"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_860
#AT_START_861
at_fn_group_banner 861 'run_functions.at:1297' \
  "FUNCTION FRACTION-PART" "                         " 4
at_xfail=no
(
  $as_echo "861. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  TEST-FLD     PIC S9(04)V9(08).
       PROCEDURE        DIVISION.
           MOVE FUNCTION FRACTION-PART ( 3.12345 )
             TO TEST-FLD.
           IF TEST-FLD NOT = +0000.12345
              DISPLAY 'FRACTION-PART ( +3.12345 ) wrong: ' TEST-FLD
              END-DISPLAY
           END-IF.
           MOVE FUNCTION FRACTION-PART ( -3.12345 )
             TO TEST-FLD.
           IF TEST-FLD NOT = -0000.12345
              DISPLAY 'FRACTION-PART ( -3.12345 ) wrong: ' TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1322: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1322"
( $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/run_functions.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1323: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1323"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1323"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_861
#AT_START_862
at_fn_group_banner 862 'run_functions.at:1328' \
  "FUNCTION HIGHEST-ALGEBRAIC" "                     " 4
at_xfail=no
(
  $as_echo "862. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  F1           PIC S999.
       01  F2           PIC S9(4) BINARY.
       01  F3           PIC 99V9(3).
       01  F4           PIC $**,**9.99BCR.
       01  F5           PIC $**,**9.99.
       01  F6           USAGE BINARY-CHAR SIGNED.
       01  F7           USAGE BINARY-CHAR UNSIGNED.
       01  TEST-FLD     PIC S9(08)V9(04).
       PROCEDURE        DIVISION.
           MOVE FUNCTION HIGHEST-ALGEBRAIC (F1)
             TO TEST-FLD.
           IF TEST-FLD NOT = 999
              DISPLAY "Test 1 fail: " TEST-FLD
              END-DISPLAY
           END-IF.
           MOVE FUNCTION HIGHEST-ALGEBRAIC (F2)
             TO TEST-FLD.
           IF TEST-FLD NOT = 9999
              DISPLAY "Test 2 fail: " TEST-FLD
              END-DISPLAY
           END-IF.
           MOVE FUNCTION HIGHEST-ALGEBRAIC (F3)
             TO TEST-FLD.
           IF TEST-FLD NOT = 99.999
              DISPLAY "Test 3 fail: " TEST-FLD
              END-DISPLAY
           END-IF.
           MOVE FUNCTION HIGHEST-ALGEBRAIC (F4)
             TO TEST-FLD.
           IF TEST-FLD NOT = 99999.99
              DISPLAY "Test 4 fail: " TEST-FLD
              END-DISPLAY
           END-IF.
           MOVE FUNCTION HIGHEST-ALGEBRAIC (F5)
             TO TEST-FLD.
           IF TEST-FLD NOT = 99999.99
              DISPLAY "Test 5 fail: " TEST-FLD
              END-DISPLAY
           END-IF.
           MOVE FUNCTION HIGHEST-ALGEBRAIC (F6)
             TO TEST-FLD.
           IF TEST-FLD NOT = 127
              DISPLAY "Test 6 fail: " TEST-FLD
              END-DISPLAY
           END-IF.
           MOVE FUNCTION HIGHEST-ALGEBRAIC (F7)
             TO TEST-FLD.
           IF TEST-FLD NOT = 255
              DISPLAY "Test 7 fail: " TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1390: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1390"
( $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/run_functions.at:1390"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1391: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1391"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1391"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_862
#AT_START_863
at_fn_group_banner 863 'run_functions.at:1396' \
  "FUNCTION INTEGER" "                               " 4
at_xfail=no
(
  $as_echo "863. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC   S9(4)V9(4) VALUE -1.5.
       01  Y            PIC   9(12)      VALUE 600851475143.
       01  TEST-FLD     PIC S9(14)V9(08).
       PROCEDURE        DIVISION.
           MOVE FUNCTION INTEGER ( X )
             TO TEST-FLD.
           IF TEST-FLD NOT = -2
              DISPLAY 'INTEGER ( X ) wrong: ' TEST-FLD
              END-DISPLAY
           END-IF.
           MOVE FUNCTION INTEGER ( Y / 71 )
             TO TEST-FLD.
           IF TEST-FLD NOT = 8462696833
              DISPLAY 'INTEGER ( Y / 71 ) wrong: ' TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1423: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1423"
( $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/run_functions.at:1423"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1424: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1424"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1424"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_863
#AT_START_864
at_fn_group_banner 864 'run_functions.at:1429' \
  "FUNCTION INTEGER-OF-DATE" "                       " 4
at_xfail=no
(
  $as_echo "864. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  TEST-FLD     PIC S9(09)V9(02).
       PROCEDURE        DIVISION.
           MOVE FUNCTION INTEGER-OF-DATE ( 20000925 )
             TO TEST-FLD.
           IF TEST-FLD NOT = 000146000
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1448: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1448"
( $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/run_functions.at:1448"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1449: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1449"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1449"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_864
#AT_START_865
at_fn_group_banner 865 'run_functions.at:1454' \
  "FUNCTION INTEGER-OF-DAY" "                        " 4
at_xfail=no
(
  $as_echo "865. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  TEST-FLD     PIC S9(09)V9(02).
       PROCEDURE        DIVISION.
           MOVE FUNCTION INTEGER-OF-DAY ( 2000269 )
             TO TEST-FLD.
           IF TEST-FLD NOT = 000146000
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1473: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1473"
( $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/run_functions.at:1473"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1474: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1474"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1474"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_865
#AT_START_866
at_fn_group_banner 866 'run_functions.at:1479' \
  "FUNCTION INTEGER-OF-FORMATTED-DATE" "             " 4
at_xfail=no
(
  $as_echo "866. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  day-int      PIC 9(9).

       PROCEDURE        DIVISION.
           *> The date 2013-12-30 is used as it can also be used to
           *> check the conversion of dates in week form.
           MOVE FUNCTION INTEGER-OF-FORMATTED-DATE
                   ("YYYY-MM-DD", "2013-12-30")
               TO day-int
           IF day-int <> 150844
               DISPLAY "Test 1 failed: " day-int END-DISPLAY
           END-IF

           MOVE FUNCTION INTEGER-OF-FORMATTED-DATE
                   ("YYYY-DDD", "2013-364")
               TO day-int
           IF day-int <> 150844
               DISPLAY "Test 2 failed: " day-int END-DISPLAY
           END-IF

           MOVE FUNCTION INTEGER-OF-FORMATTED-DATE
                   ("YYYY-Www-D", "2014-W01-1")
               TO day-int
           IF day-int <> 150844
               DISPLAY "Test 3 failed: " day-int END-DISPLAY
           END-IF

           MOVE FUNCTION INTEGER-OF-FORMATTED-DATE
                   ("YYYY-MM-DDThh:mm:ss", "2013-12-30T12:34:56")
               TO day-int
           IF day-int <> 150844
               DISPLAY "Test 4 failed: " day-int END-DISPLAY
           END-IF

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1523: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1523"
( $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/run_functions.at:1523"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1524: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1524"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1524"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_866
#AT_START_867
at_fn_group_banner 867 'run_functions.at:1529' \
  "FUNCTION INTEGER-PART" "                          " 4
at_xfail=no
(
  $as_echo "867. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   S9(4)V9(4) VALUE -1.5.
       01  TEST-FLD     PIC S9(04)V9(02).
       PROCEDURE        DIVISION.
           MOVE FUNCTION INTEGER-PART ( X )
             TO TEST-FLD.
           IF TEST-FLD NOT = -1
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1549: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1549"
( $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/run_functions.at:1549"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1550: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1550"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1550"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_867
#AT_START_868
at_fn_group_banner 868 'run_functions.at:1555' \
  "FUNCTION LENGTH" "                                " 4
at_xfail=no
(
  $as_echo "868. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC      S9(4)V9(4) VALUE -1.5.
       01  N   PIC      N(9).
       01  TEST-FLD     PIC S9(04)V9(02).
       PROCEDURE        DIVISION.
           MOVE FUNCTION LENGTH ( X )
             TO TEST-FLD
           IF TEST-FLD NOT = 8
              DISPLAY 'LENGTH "00128" wrong: ' TEST-FLD
              END-DISPLAY
           END-IF
           MOVE FUNCTION LENGTH ( N )
             TO TEST-FLD
           IF TEST-FLD NOT = 9
              DISPLAY 'LENGTH N(9) wrong: ' TEST-FLD
              END-DISPLAY
           END-IF

           MOVE FUNCTION LENGTH ( '00128' )
             TO TEST-FLD
           IF TEST-FLD NOT = 5
              DISPLAY 'LENGTH "00128" wrong: ' TEST-FLD
              END-DISPLAY
           END-IF
      *    note: we currently do not support items of category boolean...
      *>   MOVE FUNCTION LENGTH ( b'100' )
      *>     TO TEST-FLD
      *>   IF TEST-FLD NOT = 3
      *>      DISPLAY 'LENGTH b"100" wrong: ' TEST-FLD
      *>      END-DISPLAY
      *>   END-IF
           MOVE FUNCTION LENGTH ( x'a0' )
             TO TEST-FLD
           IF TEST-FLD NOT = 1
              DISPLAY 'LENGTH x"a0" wrong: ' TEST-FLD
              END-DISPLAY
           END-IF
           MOVE FUNCTION LENGTH ( z'a0' )
             TO TEST-FLD
           IF TEST-FLD NOT = 3
              DISPLAY 'LENGTH z"a0" wrong: ' TEST-FLD
              END-DISPLAY
           END-IF
           MOVE FUNCTION LENGTH ( n'a0' )
             TO TEST-FLD
           IF TEST-FLD NOT = 2
              DISPLAY 'LENGTH n"a0" wrong: ' TEST-FLD
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1614: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1614"
( $at_check_trace; $COMPILE 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: handling of USAGE NATIONAL is unfinished; implementation is likely to be changed
prog.cob:48: warning: handling of national literal is unfinished; implementation is likely to be changed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1614"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1618: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1618"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1618"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_868
#AT_START_869
at_fn_group_banner 869 'run_functions.at:1623' \
  "FUNCTION LOCALE-COMPARE" "                        " 4
at_xfail=no
(
  $as_echo "869. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           IF FUNCTION LOCALE-COMPARE ("A", "B") NOT = "<"
              DISPLAY "Test 1 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION LOCALE-COMPARE ("B", "A") NOT = ">"
              DISPLAY "Test 2 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION LOCALE-COMPARE ("A", "A") NOT = "="
              DISPLAY "Test 3 fail"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1647: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1647"
( $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/run_functions.at:1647"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1648: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1648"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1648"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_869
#AT_START_870
at_fn_group_banner 870 'run_functions.at:1653' \
  "FUNCTION LOCALE-DATE" "                           " 4
at_xfail=no
(
  $as_echo "870. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   X(32)   VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE FUNCTION LOCALE-DATE ( "19630302" ) TO X.
           IF X NOT = SPACES
                DISPLAY "OK"
                END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1671: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1671"
( $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/run_functions.at:1671"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1672: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1672"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1672"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_870
#AT_START_871
at_fn_group_banner 871 'run_functions.at:1679' \
  "FUNCTION LOCALE-TIME" "                           " 4
at_xfail=no
(
  $as_echo "871. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   X(32)   VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE FUNCTION LOCALE-TIME ( "233012" ) TO X.
           IF X NOT = SPACES
                DISPLAY "OK"
                END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1697: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1697"
( $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/run_functions.at:1697"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1698: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1698"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1698"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_871
#AT_START_872
at_fn_group_banner 872 'run_functions.at:1705' \
  "FUNCTION LOCALE-TIME-FROM-SECONDS" "              " 4
at_xfail=no
(
  $as_echo "872. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   X(32)   VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE FUNCTION LOCALE-TIME-FROM-SECONDS ( 33012 ) TO X.
           IF X NOT = SPACES
              DISPLAY "OK"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1723: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1723"
( $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/run_functions.at:1723"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1724: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1724"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1724"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_872
#AT_START_873
at_fn_group_banner 873 'run_functions.at:1731' \
  "FUNCTION LOG" "                                   " 4
at_xfail=no
(
  $as_echo "873. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   S9V9(35).
       PROCEDURE        DIVISION.
           MOVE FUNCTION LOG ( 1.5 ) TO Y.
           IF Y NOT = 0.40546510810816438197801311546434913
              DISPLAY Y
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1749: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1749"
( $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/run_functions.at:1749"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1750: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1750"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1750"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_873
#AT_START_874
at_fn_group_banner 874 'run_functions.at:1755' \
  "FUNCTION LOG10" "                                 " 4
at_xfail=no
(
  $as_echo "874. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   S9V9(35).
       PROCEDURE        DIVISION.
           MOVE FUNCTION LOG10 ( 1.5 ) TO Y.
           IF Y NOT = 0.17609125905568124208128900853062228
              DISPLAY Y
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1773: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1773"
( $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/run_functions.at:1773"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1774: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1774"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1774"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_874
#AT_START_875
at_fn_group_banner 875 'run_functions.at:1779' \
  "FUNCTION LOWER-CASE" "                            " 4
at_xfail=no
(
  $as_echo "875. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(10) VALUE "A#B.C%D+E$".
       01  TEST-FLD     PIC X(12) VALUE ALL '_'.
       PROCEDURE        DIVISION.
           STRING FUNCTION LOWER-CASE ( X )
                  DELIMITED BY SIZE
                  INTO TEST-FLD
           END-STRING
           IF TEST-FLD NOT = 'a#b.c%d+e$__'
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1801: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1801"
( $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/run_functions.at:1801"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1802: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1802"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1802"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_875
#AT_START_876
at_fn_group_banner 876 'run_functions.at:1807' \
  "FUNCTION LOWER-CASE with reference modding" "     " 4
at_xfail=no
(
  $as_echo "876. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(10) VALUE "A#B.C%D+E$".
       01  TEST-FLD     PIC X(03).
       PROCEDURE        DIVISION.
           MOVE FUNCTION LOWER-CASE ( X ) (1 : 3)
             TO TEST-FLD
           IF TEST-FLD NOT = 'a#b'
              DISPLAY TEST-FLD
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1827: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1827"
( $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/run_functions.at:1827"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1828: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1828"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1828"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_876
#AT_START_877
at_fn_group_banner 877 'run_functions.at:1833' \
  "FUNCTION LOWEST-ALGEBRAIC" "                      " 4
at_xfail=no
(
  $as_echo "877. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  F1           PIC S999.
       01  F2           PIC S9(4) BINARY.
       01  F3           PIC 99V9(3).
       01  F4           PIC $**,**9.99BCR.
       01  F5           PIC $**,**9.99.
       01  F6           USAGE BINARY-CHAR SIGNED.
       01  F7           USAGE BINARY-CHAR UNSIGNED.
       PROCEDURE        DIVISION.
           IF FUNCTION LOWEST-ALGEBRAIC (F1) NOT = -999
              DISPLAY "Test 1 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION LOWEST-ALGEBRAIC (F2) NOT = -9999
              DISPLAY "Test 2 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION LOWEST-ALGEBRAIC (F3) NOT = 0
              DISPLAY "Test 3 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION LOWEST-ALGEBRAIC (F4) NOT = -99999.99
              DISPLAY "Test 4 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION LOWEST-ALGEBRAIC (F5) NOT = 0
              DISPLAY "Test 5 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION LOWEST-ALGEBRAIC (F6) NOT = -128
              DISPLAY "Test 6 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION LOWEST-ALGEBRAIC (F7) NOT = 0
              DISPLAY "Test 7 fail"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1880: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1880"
( $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/run_functions.at:1880"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1881: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1881"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1881"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_877
#AT_START_878
at_fn_group_banner 878 'run_functions.at:1886' \
  "FUNCTION MAX" "                                   " 4
at_xfail=no
(
  $as_echo "878. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION MAX ( 3 -14 0 8 -3 )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1900: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1900"
( $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/run_functions.at:1900"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1901: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1901"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1901"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_878
#AT_START_879
at_fn_group_banner 879 'run_functions.at:1908' \
  "FUNCTION MEAN" "                                  " 4
at_xfail=no
(
  $as_echo "879. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION MEAN ( 3 -14 0 8 -3 )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1922: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1922"
( $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/run_functions.at:1922"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1923: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1923"
( $at_check_trace; $COBCRUN_DIRECT ./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.2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1923"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_879
#AT_START_880
at_fn_group_banner 880 'run_functions.at:1930' \
  "FUNCTION MEDIAN" "                                " 4
at_xfail=no
(
  $as_echo "880. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION MEDIAN ( 3 -14 0 8 -3 )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1944: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1944"
( $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/run_functions.at:1944"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1945: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1945"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1945"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_880
#AT_START_881
at_fn_group_banner 881 'run_functions.at:1952' \
  "FUNCTION MIDRANGE" "                              " 4
at_xfail=no
(
  $as_echo "881. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION MIDRANGE ( 3 -14 0 8 -3 )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1966: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1966"
( $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/run_functions.at:1966"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1967: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1967"
( $at_check_trace; $COBCRUN_DIRECT ./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 "-000000003
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:1967"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_881
#AT_START_882
at_fn_group_banner 882 'run_functions.at:1974' \
  "FUNCTION MIN" "                                   " 4
at_xfail=no
(
  $as_echo "882. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION MIN ( 3 -14 0 8 -3 )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:1988: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:1988"
( $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/run_functions.at:1988"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:1989: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:1989"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:1989"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_882
#AT_START_883
at_fn_group_banner 883 'run_functions.at:1996' \
  "FUNCTION MOD (valid)" "                           " 4
at_xfail=no
(
  $as_echo "883. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y            PIC 9(12)      VALUE 600851475143.
       01  R            PIC S9(4)V9(4) VALUE 0.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MOD ( -11 5 ) TO R
           IF R NOT = 4
              DISPLAY 'first one wrong: ' R
              END-DISPLAY
           END-IF
           MOVE FUNCTION MOD ( Y, 71 ) TO R
           IF R NOT = 0
              DISPLAY 'second one wrong: ' R
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2020: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2020"
( $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/run_functions.at:2020"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2021: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2021"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2021"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_883
#AT_START_884
at_fn_group_banner 884 'run_functions.at:2026' \
  "FUNCTION MOD (invalid)" "                         " 4
at_xfail=no
(
  $as_echo "884. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z            PIC 9          VALUE 0.
       01  R            PIC S9(4)V9(4) VALUE 1.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MOD ( -11 Z ) TO R
           IF FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
           NOT = 'EC-ARGUMENT-FUNCTION'
              DISPLAY 'Wrong/missing exception: '
                      FUNCTION EXCEPTION-STATUS
              END-DISPLAY
           END-IF
           IF R NOT = 0
              DISPLAY 'result is not zero: ' R
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2051: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2051"
( $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/run_functions.at:2051"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2052: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2052"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_884
#AT_START_885
at_fn_group_banner 885 'run_functions.at:2057' \
  "FUNCTION MODULE-CALLER-ID" "                      " 4
at_xfail=no
(
  $as_echo "885. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE        DIVISION.
           CALL "prog2"
           END-CALL.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION MODULE-CALLER-ID NO ADVANCING
           END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2084: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2084"
( $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/run_functions.at:2084"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2085: \$COMPILE_MODULE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE prog2.cob" "run_functions.at:2085"
( $at_check_trace; $COMPILE_MODULE prog2.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/run_functions.at:2085"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2086: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2086"
( $at_check_trace; $COBCRUN_DIRECT ./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" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2086"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_885
#AT_START_886
at_fn_group_banner 886 'run_functions.at:2091' \
  "FUNCTION MODULE-DATE" "                           " 4
at_xfail=no
(
  $as_echo "886. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  TEST-DATE    PIC 9(8) VALUE 0.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MODULE-DATE TO TEST-DATE.
           IF   TEST-DATE NOT = 0
             DISPLAY "OK" NO ADVANCING
             END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2110: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2110"
( $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/run_functions.at:2110"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2111: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2111"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2111"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_886
#AT_START_887
at_fn_group_banner 887 'run_functions.at:2116' \
  "FUNCTION MODULE-FORMATTED-DATE" "                 " 4
at_xfail=no
(
  $as_echo "887. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  TEST-DATE    PIC X(16) VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MODULE-FORMATTED-DATE TO TEST-DATE.
           IF   TEST-DATE NOT = SPACES
             DISPLAY "OK" NO ADVANCING
             END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2135: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2135"
( $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/run_functions.at:2135"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2136: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2136"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2136"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_887
#AT_START_888
at_fn_group_banner 888 'run_functions.at:2141' \
  "FUNCTION MODULE-ID" "                             " 4
at_xfail=no
(
  $as_echo "888. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION MODULE-ID NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2156: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2156"
( $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/run_functions.at:2156"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2157: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2157"
( $at_check_trace; $COBCRUN_DIRECT ./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" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2157"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_888
#AT_START_889
at_fn_group_banner 889 'run_functions.at:2162' \
  "FUNCTION MODULE-PATH" "                           " 4
at_xfail=no
(
  $as_echo "889. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  TEST-PATH    PIC X(16) VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MODULE-PATH TO TEST-PATH.
           IF   TEST-PATH NOT = SPACES
             DISPLAY "OK" NO ADVANCING
             END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2181: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2181"
( $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/run_functions.at:2181"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2182: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2182"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2182"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_889
#AT_START_890
at_fn_group_banner 890 'run_functions.at:2187' \
  "FUNCTION MODULE-SOURCE" "                         " 4
at_xfail=no
(
  $as_echo "890. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION MODULE-SOURCE NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2202: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2202"
( $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/run_functions.at:2202"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2203: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2203"
( $at_check_trace; $COBCRUN_DIRECT ./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.cob" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2203"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_890
#AT_START_891
at_fn_group_banner 891 'run_functions.at:2208' \
  "FUNCTION MODULE-TIME" "                           " 4
at_xfail=no
(
  $as_echo "891. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  TEST-TIME    PIC 9(6) VALUE 0.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MODULE-TIME TO TEST-TIME.
           IF   TEST-TIME NOT = 0
             DISPLAY "OK" NO ADVANCING
             END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2227: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2227"
( $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/run_functions.at:2227"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2228: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2228"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2228"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_891
#AT_START_892
at_fn_group_banner 892 'run_functions.at:2233' \
  "FUNCTION MONETARY-DECIMAL-POINT" "                " 4
at_xfail=no
(
  $as_echo "892. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  TEST-FLD     PIC X(8) VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MONETARY-DECIMAL-POINT TO TEST-FLD.
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2250: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2250"
( $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/run_functions.at:2250"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2251: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2251"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2251"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_892
#AT_START_893
at_fn_group_banner 893 'run_functions.at:2256' \
  "FUNCTION MONETARY-THOUSANDS-SEPARATOR" "          " 4
at_xfail=no
(
  $as_echo "893. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  TEST-FLD     PIC X(8) VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE FUNCTION MONETARY-THOUSANDS-SEPARATOR TO TEST-FLD.
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2273: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2273"
( $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/run_functions.at:2273"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2274: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2274"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2274"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_893
#AT_START_894
at_fn_group_banner 894 'run_functions.at:2279' \
  "FUNCTION NUMERIC-DECIMAL-POINT" "                 " 4
at_xfail=no
(
  $as_echo "894. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  TEST-FLD     PIC X(8) VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE FUNCTION NUMERIC-DECIMAL-POINT TO TEST-FLD.
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2296: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2296"
( $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/run_functions.at:2296"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2297: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2297"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2297"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_894
#AT_START_895
at_fn_group_banner 895 'run_functions.at:2302' \
  "FUNCTION NUMERIC-THOUSANDS-SEPARATOR" "           " 4
at_xfail=no
(
  $as_echo "895. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE SECTION.
       01  TEST-FLD     PIC X(8) VALUE SPACES.
       PROCEDURE        DIVISION.
           MOVE FUNCTION NUMERIC-THOUSANDS-SEPARATOR TO TEST-FLD.
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2319: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2319"
( $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/run_functions.at:2319"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2320: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2320"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2320"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_895
#AT_START_896
at_fn_group_banner 896 'run_functions.at:2325' \
  "FUNCTION NUMVAL" "                                " 4
at_xfail=no
(
  $as_echo "896. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X1  PIC   X(12) VALUE " -9876.1234 ".
       01  X2  PIC   X(18) VALUE " 19876.1234 CR".
       01  N   PIC   s9(5)v9(5).
       PROCEDURE        DIVISION.
           MOVE FUNCTION NUMVAL ( X1 ) TO N
           IF N NOT = -9876.1234
              DISPLAY N
              END-DISPLAY
           END-IF
           MOVE FUNCTION NUMVAL ( X2 ) TO N
           IF N NOT = -19876.1234
              DISPLAY N
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2350: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2350"
( $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/run_functions.at:2350"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2351: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2351"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2351"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_896
#AT_START_897
at_fn_group_banner 897 'run_functions.at:2356' \
  "FUNCTION NUMVAL-C" "                              " 4
at_xfail=no
(
  $as_echo "897. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X1  PIC   X(14) VALUE " % -9876.1234 ".
       01  X2  PIC   X(20) VALUE " % 19,876.1234 DB".
       01  N   PIC   s9(5)v9(5).
       PROCEDURE        DIVISION.
           MOVE FUNCTION NUMVAL-C ( X1 , "%" ) TO N
           IF N NOT = -9876.1234
              DISPLAY N
              END-DISPLAY
           END-IF
           MOVE FUNCTION NUMVAL-C ( X2 , "%" ) TO N
           IF N NOT = -19876.1234
              DISPLAY N
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2381: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2381"
( $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/run_functions.at:2381"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2382: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2382"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2382"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_897
#AT_START_898
at_fn_group_banner 898 'run_functions.at:2387' \
  "FUNCTION NUMVAL-C DP.COMMA" "                     " 4
at_xfail=no
(
  $as_echo "898. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT IS COMMA
           .
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X1  PIC   X(20) VALUE " % 19.876,1234 DB".
       01  N   PIC   s9(5)v9(5).
       PROCEDURE        DIVISION.
           MOVE FUNCTION NUMVAL-C ( X1 , "%" ) TO N
           IF N NOT = -19876,1234
              DISPLAY N
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2411: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2411"
( $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/run_functions.at:2411"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2412: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2412"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2412"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_898
#AT_START_899
at_fn_group_banner 899 'run_functions.at:2417' \
  "FUNCTION NUMVAL-F" "                              " 4
at_xfail=no
(
  $as_echo "899. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   X(12) VALUE " -0.1234E+4 ".
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION NUMVAL-F ( X )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2432: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2432"
( $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/run_functions.at:2432"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2433: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2433"
( $at_check_trace; $COBCRUN_DIRECT ./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 "-000001234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2433"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_899
#AT_START_900
at_fn_group_banner 900 'run_functions.at:2440' \
  "FUNCTION ORD" "                                   " 4
at_xfail=no
(
  $as_echo "900. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION ORD ( "k" )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2454: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2454"
( $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/run_functions.at:2454"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2455: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2455"
( $at_check_trace; $COBCRUN_DIRECT ./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 "000000108
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2455"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_900
#AT_START_901
at_fn_group_banner 901 'run_functions.at:2462' \
  "FUNCTION ORD-MAX" "                               " 4
at_xfail=no
(
  $as_echo "901. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION ORD-MAX ( 3 -14 0 8 -3 )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2476: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2476"
( $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/run_functions.at:2476"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2477: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2477"
( $at_check_trace; $COBCRUN_DIRECT ./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 "000000004
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2477"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_901
#AT_START_902
at_fn_group_banner 902 'run_functions.at:2484' \
  "FUNCTION ORD-MIN" "                               " 4
at_xfail=no
(
  $as_echo "902. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION ORD-MIN ( 3 -14 0 8 -3 )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2498: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2498"
( $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/run_functions.at:2498"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2499: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2499"
( $at_check_trace; $COBCRUN_DIRECT ./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 "000000002
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2499"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_902
#AT_START_903
at_fn_group_banner 903 'run_functions.at:2506' \
  "FUNCTION PI" "                                    " 4
at_xfail=no
(
  $as_echo "903. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   9V9(35).
       PROCEDURE        DIVISION.
           MOVE    FUNCTION PI TO Y.
           IF Y NOT = 3.14159265358979323846264338327950288
              DISPLAY Y
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2524: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2524"
( $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/run_functions.at:2524"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2525: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2525"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2525"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_903
#AT_START_904
at_fn_group_banner 904 'run_functions.at:2530' \
  "FUNCTION PRESENT-VALUE" "                         " 4
at_xfail=no
(
  $as_echo "904. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION PRESENT-VALUE ( 3 2 1 )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2544: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2544"
( $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/run_functions.at:2544"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2545: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2545"
( $at_check_trace; $COBCRUN_DIRECT ./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 "00000.5625
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:2545"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_904
#AT_START_905
at_fn_group_banner 905 'run_functions.at:2552' \
  "FUNCTION RANDOM" "                                " 4
at_xfail=no
(
  $as_echo "905. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   S99V99   COMP VALUE -1.0.
       PROCEDURE        DIVISION.
           MOVE FUNCTION RANDOM ( ) TO Y.
           IF Y < 0
                   DISPLAY Y
                   END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2570: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2570"
( $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/run_functions.at:2570"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2571: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2571"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2571"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_905
#AT_START_906
at_fn_group_banner 906 'run_functions.at:2576' \
  "FUNCTION RANGE" "                                 " 4
at_xfail=no
(
  $as_echo "906. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z            PIC S9(4)V9(4) COMP-5.
       PROCEDURE        DIVISION.
           MOVE FUNCTION RANGE ( 3 -14 0 8 -3 ) TO Z.
           IF Z NOT = 22
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2594: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2594"
( $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/run_functions.at:2594"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2595: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2595"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2595"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_906
#AT_START_907
at_fn_group_banner 907 'run_functions.at:2600' \
  "FUNCTION REM (valid)" "                           " 4
at_xfail=no
(
  $as_echo "907. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  R            PIC S9(4)V9(4) COMP-5 VALUE 0.
       PROCEDURE        DIVISION.
           MOVE FUNCTION REM ( -11 5 ) TO R
           IF R NOT = -1
              DISPLAY R END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2617: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2617"
( $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/run_functions.at:2617"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2618: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2618"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2618"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_907
#AT_START_908
at_fn_group_banner 908 'run_functions.at:2623' \
  "FUNCTION REM (invalid)" "                         " 4
at_xfail=no
(
  $as_echo "908. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  R            PIC S9(4)V9(4) COMP-5 VALUE 4.1.
       01  Z            PIC 9 COMP-5 VALUE 0.
       PROCEDURE        DIVISION.
           MOVE FUNCTION REM ( -11 Z ) TO R
           IF FUNCTION TRIM(FUNCTION EXCEPTION-STATUS)
           NOT = 'EC-ARGUMENT-FUNCTION'
              DISPLAY 'Wrong/missing exception: '
                      FUNCTION EXCEPTION-STATUS
              END-DISPLAY
           END-IF
           IF R NOT = 0
              DISPLAY 'result is not zero: ' R
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2648: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2648"
( $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/run_functions.at:2648"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2649: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2649"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2649"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_908
#AT_START_909
at_fn_group_banner 909 'run_functions.at:2654' \
  "FUNCTION REVERSE" "                               " 4
at_xfail=no
(
  $as_echo "909. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   X(10) VALUE "A#B.C%D+E$".
       01  Z   PIC   X(10).
       PROCEDURE        DIVISION.
           MOVE FUNCTION REVERSE ( X ) TO Z.
           IF Z NOT = "$E+D%C.B#A"
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2673: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2673"
( $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/run_functions.at:2673"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2674: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2674"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2674"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_909
#AT_START_910
at_fn_group_banner 910 'run_functions.at:2679' \
  "FUNCTION REVERSE with reference modding" "        " 4
at_xfail=no
(
  $as_echo "910. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   X(10) VALUE "A#B.C%D+E$".
       01  Z   PIC   X(10).
       PROCEDURE        DIVISION.
           MOVE FUNCTION REVERSE ( X ) (1 : 4) TO Z.
           IF Z NOT = "$E+D      "
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2698: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2698"
( $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/run_functions.at:2698"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2699: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2699"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2699"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_910
#AT_START_911
at_fn_group_banner 911 'run_functions.at:2704' \
  "FUNCTION SECONDS-FROM-FORMATTED-TIME" "           " 4
at_xfail=no
(
  $as_echo "911. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  result       PIC 9(8)V9(9) COMP-5.
       PROCEDURE        DIVISION.
           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
                    ("hhmmss", "010203")
               TO result.
           IF result NOT = 3723
                   DISPLAY "Test 1 failed: " result
                   END-DISPLAY
           END-IF.

           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
                    ("hh:mm:ss", "01:02:03")
               TO result.
           IF result NOT = 3723
                   DISPLAY "Test 2 failed: " result
                   END-DISPLAY
           END-IF.

           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
                    ("hhmmss.ssssssss", "010203.04050607")
               TO result.
           IF result NOT = 3723.04050607
                   DISPLAY "Test 3 failed: " result
                   END-DISPLAY
           END-IF.

           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
                    ("hhmmssZ", "010203Z")
               TO result.
           IF result NOT = 3723
                   DISPLAY "Test 4 failed: " result
                   END-DISPLAY
           END-IF.

           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
                    ("hhmmss+hhmm", "010203+0405")
               TO result.
           IF result NOT = 3723
                   DISPLAY "Test 5 failed: " result
                   END-DISPLAY
           END-IF.

           MOVE FUNCTION SECONDS-FROM-FORMATTED-TIME
                    ("YYYYMMDDThhmmss", "16010101T010203")
               TO result.
           IF result NOT = 3723
                   DISPLAY "Test 6 failed: " result
                   END-DISPLAY
           END-IF.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2765: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2765"
( $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/run_functions.at:2765"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2766: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2766"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2766"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_911
#AT_START_912
at_fn_group_banner 912 'run_functions.at:2771' \
  "FUNCTION SECONDS-PAST-MIDNIGHT" "                 " 4
at_xfail=no
(
  $as_echo "912. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC      9(8)   COMP-5.
       PROCEDURE        DIVISION.
           MOVE FUNCTION SECONDS-PAST-MIDNIGHT TO Y.
           IF Y NOT < 86402
                   DISPLAY Y
                   END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2789: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2789"
( $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/run_functions.at:2789"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2790: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2790"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2790"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_912
#AT_START_913
at_fn_group_banner 913 'run_functions.at:2795' \
  "FUNCTION SIGN" "                                  " 4
at_xfail=no
(
  $as_echo "913. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z            USAGE BINARY-LONG SIGNED.
       PROCEDURE        DIVISION.
           MOVE FUNCTION SIGN ( 3.12345 ) TO Z.
           IF Z NOT = 1
              DISPLAY "Sign 1 " Z
              END-DISPLAY
           END-IF.
           MOVE FUNCTION SIGN ( -0.0 ) TO Z.
           IF Z NOT = 0
              DISPLAY "Sign 2 " Z
              END-DISPLAY
           END-IF.
           MOVE FUNCTION SIGN ( 0.0 ) TO Z.
           IF Z NOT = 0
              DISPLAY "Sign 3 " Z
              END-DISPLAY
           END-IF.
           MOVE FUNCTION SIGN ( -3.12345 ) TO Z.
           IF Z NOT = -1
              DISPLAY "Sign 4 " Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2828: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2828"
( $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/run_functions.at:2828"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2829: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2829"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2829"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_913
#AT_START_914
at_fn_group_banner 914 'run_functions.at:2834' \
  "FUNCTION SIN" "                                   " 4
at_xfail=no
(
  $as_echo "914. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   S9V9(35).
       PROCEDURE        DIVISION.
           MOVE FUNCTION SIN ( 1.5 ) TO Y.
           IF Y NOT = 0.99749498660405443094172337114148732
                   DISPLAY Y
                   END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2852: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2852"
( $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/run_functions.at:2852"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2853: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2853"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2853"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_914
#AT_START_915
at_fn_group_banner 915 'run_functions.at:2858' \
  "FUNCTION SQRT" "                                  " 4
at_xfail=no
(
  $as_echo "915. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   S9V9(35).
       PROCEDURE        DIVISION.
           MOVE FUNCTION SQRT ( 1.5 ) TO Y.
           IF Y NOT = 1.22474487139158904909864203735294569
                   DISPLAY Y
                   END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2876: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2876"
( $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/run_functions.at:2876"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2877: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2877"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2877"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_915
#AT_START_916
at_fn_group_banner 916 'run_functions.at:2882' \
  "FUNCTION STANDARD-DEVIATION" "                    " 4
at_xfail=no
(
  $as_echo "916. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   S9V9(35).
       PROCEDURE        DIVISION.
           MOVE FUNCTION STANDARD-DEVIATION ( 3 -14 0 8 -3 ) TO Y.
           IF Y NOT = 7.35934779718963954877237043574538183
                   DISPLAY Y
                   END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2900: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2900"
( $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/run_functions.at:2900"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2901: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2901"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2901"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_916
#AT_START_917
at_fn_group_banner 917 'run_functions.at:2906' \
  "FUNCTION STORED-CHAR-LENGTH" "                    " 4
at_xfail=no
(
  $as_echo "917. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   X(24).
       01  Z   USAGE BINARY-LONG.
       PROCEDURE        DIVISION.
           MOVE "123456789012" TO Y.
           MOVE FUNCTION STORED-CHAR-LENGTH ( Y ) TO Z.
           IF Z NOT = 12
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2926: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2926"
( $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/run_functions.at:2926"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2927: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2927"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2927"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_917
#AT_START_918
at_fn_group_banner 918 'run_functions.at:2932' \
  "FUNCTION SUBSTITUTE" "                            " 4
at_xfail=no
(
  $as_echo "918. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   X(20).
       01  Z   PIC   X(20) VALUE ALL '_'.
       PROCEDURE        DIVISION.
           MOVE "abc111444555defxxabc" TO Y.
           STRING FUNCTION SUBSTITUTE ( Y "abc" "zz" "55" "666" )
                  DELIMITED BY SIZE
                  INTO Z
           END-STRING
           IF Z NOT = "zz1114446665defxxzz_"
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2955: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2955"
( $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/run_functions.at:2955"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2956: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2956"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2956"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_918
#AT_START_919
at_fn_group_banner 919 'run_functions.at:2961' \
  "FUNCTION SUBSTITUTE with reference modding" "     " 4
at_xfail=no
(
  $as_echo "919. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   X(20).
       01  Z   PIC   X(20).
       PROCEDURE        DIVISION.
           MOVE "abc111444555defxxabc" TO Y.
           MOVE FUNCTION SUBSTITUTE
                   ( Y "abc" "zz" "55" "666" ) (2 : 9)
                TO Z.
           IF Z NOT = "z11144466"
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:2983: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:2983"
( $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/run_functions.at:2983"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:2984: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:2984"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:2984"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_919
#AT_START_920
at_fn_group_banner 920 'run_functions.at:2989' \
  "FUNCTION SUBSTITUTE-CASE" "                       " 4
at_xfail=no
(
  $as_echo "920. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   X(20).
       01  Z   PIC   X(20).
       PROCEDURE        DIVISION.
           MOVE "ABC111444555defxxabc" TO Y.
           MOVE FUNCTION SUBSTITUTE-CASE (Y "abc" "zz" "55" "666")
                TO Z.
           IF Z NOT = "zz1114446665defxxzz"
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3010: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3010"
( $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/run_functions.at:3010"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3011: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3011"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3011"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_920
#AT_START_921
at_fn_group_banner 921 'run_functions.at:3016' \
  "FUNCTION SUBSTITUTE-CASE with reference mod" "    " 4
at_xfail=no
(
  $as_echo "921. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   X(20).
       01  Z   PIC   X(20).
       PROCEDURE        DIVISION.
           MOVE "abc111444555defxxabc" TO Y.
           MOVE FUNCTION SUBSTITUTE-CASE
                   ( Y "ABC" "zz" "55" "666" ) (2 : 9)
                TO Z.
           IF Z NOT = "z11144466"
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3038: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3038"
( $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/run_functions.at:3038"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3039: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3039"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3039"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_921
#AT_START_922
at_fn_group_banner 922 'run_functions.at:3044' \
  "FUNCTION SUM" "                                   " 4
at_xfail=no
(
  $as_echo "922. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z            USAGE BINARY-LONG.
       PROCEDURE        DIVISION.
           MOVE FUNCTION SUM ( 3 -14 0 8 -3 ) TO Z.
           IF Z NOT = -6
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3062: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3062"
( $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/run_functions.at:3062"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3063: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3063"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3063"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_922
#AT_START_923
at_fn_group_banner 923 'run_functions.at:3068' \
  "FUNCTION TAN" "                                   " 4
at_xfail=no
(
  $as_echo "923. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Y   PIC   S99V9(34).
       PROCEDURE        DIVISION.
           MOVE FUNCTION TAN ( 1.5 ) TO Y.
           IF Y NOT = 14.1014199471717193876460836519877564
                   DISPLAY Y
                   END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3086: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3086"
( $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/run_functions.at:3086"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3087: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3087"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3087"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_923
#AT_START_924
at_fn_group_banner 924 'run_functions.at:3092' \
  "FUNCTION TEST-DATE-YYYYMMDD" "                    " 4
at_xfail=no
(
  $as_echo "924. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION TEST-DATE-YYYYMMDD ( 20020231 )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3106: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3106"
( $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/run_functions.at:3106"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3107: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3107"
( $at_check_trace; $COBCRUN_DIRECT ./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 "000000003
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3107"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_924
#AT_START_925
at_fn_group_banner 925 'run_functions.at:3114' \
  "FUNCTION TEST-DAY-YYYYDDD" "                      " 4
at_xfail=no
(
  $as_echo "925. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION TEST-DAY-YYYYDDD ( 2002400 )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3128: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3128"
( $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/run_functions.at:3128"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3129: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3129"
( $at_check_trace; $COBCRUN_DIRECT ./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 "000000002
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3129"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_925
#AT_START_926
at_fn_group_banner 926 'run_functions.at:3136' \
  "FUNCTION TEST-FORMATTED-DATETIME with dates" "    " 4
at_xfail=no
(
  $as_echo "926. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog.
        DATA             DIVISION.
        WORKING-STORAGE  SECTION.
        PROCEDURE        DIVISION.
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "16010101") <> 0
                DISPLAY "Test 1 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYY-MM-DD", "1601-01-01") <> 0
                DISPLAY "Test 2 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYDDD", "1601001") <> 0
                DISPLAY "Test 3 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYY-DDD", "1601-001") <> 0
                DISPLAY "Test 4 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYWwwD", "1601W011") <> 0
                DISPLAY "Test 5 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYY-Www-D", "1601-W01-1") <> 0
                DISPLAY "Test 6 failed" END-DISPLAY
            END-IF


            *> How will this work with zero-length items?
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "1") <> 2
                DISPLAY "Test 7 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "160A0101") <> 4
                DISPLAY "Test 8 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "00000101") <> 1
                DISPLAY "Test 9 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "16000101") <> 4
                DISPLAY "Test 10 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "16010001") <> 6
                DISPLAY "Test 11 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "16011301") <> 6
                DISPLAY "Test 12 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "16010190") <> 7
                DISPLAY "Test 13 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "18000229") <> 8
                DISPLAY "Test 14 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYY-MM-DD", "1601 01 01") <> 5
                DISPLAY "Test 15 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "160101010") <> 9
                DISPLAY "Test 16 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYWwwD", "1601A011") <> 5
                DISPLAY "Test 17 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYWwwD", "1601W531") <> 7
                DISPLAY "Test 18 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYWwwD", "1601W601") <> 6
                DISPLAY "Test 19 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYWwwD", "2009W531") <> 0
                DISPLAY "Test 20 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYWwwD", "1601W018") <> 8
                DISPLAY "Test 21 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYDDD", "1601366") <> 7
                DISPLAY "Test 22 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYDDD", "1601370") <> 6
                DISPLAY "Test 23 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYDDD", "1601400") <> 5
                DISPLAY "Test 24 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "01") <> 1
                DISPLAY "Test 25 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYMMDD", "1601010") <> 8
                DISPLAY "Test 26 failed" END-DISPLAY
            END-IF

            STOP RUN
            .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3257: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3257"
( $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/run_functions.at:3257"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3258: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3258"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3258"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_926
#AT_START_927
at_fn_group_banner 927 'run_functions.at:3263' \
  "FUNCTION TEST-FORMATTED-DATETIME with times" "    " 4
at_xfail=no
(
  $as_echo "927. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog.
        DATA             DIVISION.
        WORKING-STORAGE  SECTION.
        PROCEDURE        DIVISION.
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss.sssssssssZ", "000000.000000000Z") <> 0
                DISPLAY "Test 1 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hh:mm:ss.sssssssssZ", "00:00:00.000000000Z") <> 0
                DISPLAY "Test 2 failed" END-DISPLAY
            END-IF
            *> 0 instead of +/- valid in sending fields with offset of zero.
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss.sssssssss+hhmm", "000000.00000000000000")
                    <> 0
                DISPLAY "Test 3 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hh:mm:ss.sssssssss+hh:mm",
                    "00:00:00.000000000+00:00")
                    <> 0
                DISPLAY "Test 4 failed" END-DISPLAY
            END-IF

            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss", "300000") <> 1
                DISPLAY "Test 5 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss", "250000") <> 2
                DISPLAY "Test 6 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss", "006000") <> 3
                DISPLAY "Test 7 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss", "000060") <> 5
                DISPLAY "Test 8 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hh:mm:ss", "00-00-00") <> 3
                DISPLAY "Test 9 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss.ss", "000000,00") <> 7
                DISPLAY "Test 10 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss+hhmm", "000000 0000") <> 7
                DISPLAY "Test 11 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss+hhmm", "00000000001") <> 11
                DISPLAY "Test 12 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmssZ", "000000A") <> 7
                DISPLAY "Test 13 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss", SPACE) <> 1
                DISPLAY "Test 14 failed" END-DISPLAY
            END-IF

            STOP RUN
            .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3338: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3338"
( $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/run_functions.at:3338"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3339: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3339"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3339"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_927
#AT_START_928
at_fn_group_banner 928 'run_functions.at:3344' \
  "FUNCTION TEST-FORMATTED-DATETIME with datetimes" "" 4
at_xfail=no
(
  $as_echo "928. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog.
        DATA             DIVISION.
        WORKING-STORAGE  SECTION.
        77 RESULT        PIC 9(02).
        PROCEDURE        DIVISION.
            MOVE FUNCTION TEST-FORMATTED-DATETIME
                    ("YYYYMMDDThhmmss", "16010101T000000")
              TO RESULT
            IF RESULT <> 0
               DISPLAY "Test 1 failed: " RESULT END-DISPLAY
            END-IF
            MOVE FUNCTION TEST-FORMATTED-DATETIME
                    ("YYYY-MM-DDThh:mm:ss.sssssssss+hh:mm",
                    "1601-01-01T00:00:00.000000000+00:00")
              TO RESULT
            IF RESULT <> 0
               DISPLAY "Test 2 failed: " RESULT END-DISPLAY
            END-IF

            MOVE FUNCTION TEST-FORMATTED-DATETIME
                    ("YYYYMMDDThhmmss", "16010101 000000")
              TO RESULT
            IF RESULT <> 9
               DISPLAY "Test 3 failed: " RESULT END-DISPLAY
            END-IF
            MOVE FUNCTION TEST-FORMATTED-DATETIME
                    ("YYYYMMDDThhmmss", SPACE)
              TO RESULT
            IF RESULT <> 1
               DISPLAY "Test 4 failed: " RESULT END-DISPLAY
            END-IF
            MOVE FUNCTION TEST-FORMATTED-DATETIME
                    ("YYYYMMDDThhmmss", "16010101T      ")
              TO RESULT
            IF RESULT <> 10
               DISPLAY "Test 5 failed: " RESULT END-DISPLAY
            END-IF

            STOP RUN
            .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3391: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3391"
( $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/run_functions.at:3391"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3392: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3392"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3392"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_928
#AT_START_929
at_fn_group_banner 929 'run_functions.at:3397' \
  "FUNCTION TEST-FORMATTED-DATETIME DP.COMMA" "      " 4
at_xfail=no
(
  $as_echo "929. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION   DIVISION.
        PROGRAM-ID.      prog.
        ENVIRONMENT      DIVISION.
        CONFIGURATION    SECTION.
        SPECIAL-NAMES.
            DECIMAL-POINT IS COMMA.
        DATA             DIVISION.
        WORKING-STORAGE  SECTION.
        PROCEDURE        DIVISION.
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss,ss", "000000,00") <> 0
                DISPLAY "Test 1 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("YYYYMMDDThhmmss,ss", "16010101T000000,00") <> 0
                DISPLAY "Test 2 failed" END-DISPLAY
            END-IF

            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("hhmmss,ss", "000000.00") <> 7
                DISPLAY "Test 3 failed" END-DISPLAY
            END-IF
            IF FUNCTION TEST-FORMATTED-DATETIME
                    ("YYYYMMDDThhmmss,ss", "16010101T000000.00") <> 16
                DISPLAY "Test 4 failed" END-DISPLAY
            END-IF

            STOP RUN
            .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3432: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3432"
( $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/run_functions.at:3432"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3433: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3433"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3433"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_929
#AT_START_930
at_fn_group_banner 930 'run_functions.at:3438' \
  "FUNCTION TEST-NUMVAL" "                           " 4
at_xfail=no
(
  $as_echo "930. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           IF FUNCTION TEST-NUMVAL ("+ 1")     NOT = 0
              DISPLAY "Test 1  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL (" + 1")    NOT = 0
              DISPLAY "Test 2  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("- 1")     NOT = 0
              DISPLAY "Test 3  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL (" - 1")    NOT = 0
              DISPLAY "Test 4  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("+- 1")    NOT = 2
              DISPLAY "Test 5  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("1 +")     NOT = 0
              DISPLAY "Test 6  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("1 -")     NOT = 0
              DISPLAY "Test 7  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("1 +-")    NOT = 4
              DISPLAY "Test 8  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("1 -+")    NOT = 4
              DISPLAY "Test 9  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("+ 1.1")   NOT = 0
              DISPLAY "Test 10 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("- 1.1")   NOT = 0
              DISPLAY "Test 11 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("1.1 +")   NOT = 0
              DISPLAY "Test 12 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("1.1 -")   NOT = 0
              DISPLAY "Test 13 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("1.1 CR")  NOT = 0
              DISPLAY "Test 14 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("1.1 DB")  NOT = 0
              DISPLAY "Test 15 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("1.1 -CR") NOT = 6
              DISPLAY "Test 16 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("1.1 +DB") NOT = 6
              DISPLAY "Test 17 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("1.1 CDB") NOT = 6
              DISPLAY "Test 18 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("+1.1 CR") NOT = 6
              DISPLAY "Test 19 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL ("+      ") NOT = 8
              DISPLAY "Test 20 fail"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3530: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3530"
( $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/run_functions.at:3530"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3531: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3531"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3531"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_930
#AT_START_931
at_fn_group_banner 931 'run_functions.at:3536' \
  "FUNCTION TEST-NUMVAL-C" "                         " 4
at_xfail=no
(
  $as_echo "931. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           IF FUNCTION TEST-NUMVAL-C ("+ 1")     NOT = 0
              DISPLAY "Test 1  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C (" + 1")    NOT = 0
              DISPLAY "Test 2  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("- 1")     NOT = 0
              DISPLAY "Test 3  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C (" - 1")    NOT = 0
              DISPLAY "Test 4  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("+- 1")    NOT = 2
              DISPLAY "Test 5  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("1 +")     NOT = 0
              DISPLAY "Test 6  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("1 -")     NOT = 0
              DISPLAY "Test 7  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("1 +-")    NOT = 4
              DISPLAY "Test 8  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("1 -+")    NOT = 4
              DISPLAY "Test 9  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("+ 1.1")   NOT = 0
              DISPLAY "Test 10 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("- 1.1")   NOT = 0
              DISPLAY "Test 11 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("1.1 +")   NOT = 0
              DISPLAY "Test 12 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("1.1 -")   NOT = 0
              DISPLAY "Test 13 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("1.1 CR")  NOT = 0
              DISPLAY "Test 14 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("1.1 DB")  NOT = 0
              DISPLAY "Test 15 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("1.1 -CR") NOT = 6
              DISPLAY "Test 16 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("+ $1.1 ") NOT = 0
              DISPLAY "Test 17 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("- $1.1 ") NOT = 0
              DISPLAY "Test 18 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("+ X1.1 ", "X") NOT = 0
              DISPLAY "Test 19 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-C ("- X1.1 ", "X") NOT = 0
              DISPLAY "Test 20 fail"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3628: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3628"
( $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/run_functions.at:3628"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3629: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3629"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3629"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_931
#AT_START_932
at_fn_group_banner 932 'run_functions.at:3634' \
  "FUNCTION TEST-NUMVAL-F" "                         " 4
at_xfail=no
(
  $as_echo "932. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           IF FUNCTION TEST-NUMVAL-F ("+ 1")     NOT = 0
              DISPLAY "Test 1  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F (" + 1")    NOT = 0
              DISPLAY "Test 2  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("- 1")     NOT = 0
              DISPLAY "Test 3  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F (" - 1")    NOT = 0
              DISPLAY "Test 4  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("+- 1")    NOT = 2
              DISPLAY "Test 5  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1 +")     NOT = 0
              DISPLAY "Test 6  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1 -")     NOT = 0
              DISPLAY "Test 7  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1 +-")    NOT = 4
              DISPLAY "Test 8  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1 -+")    NOT = 4
              DISPLAY "Test 9  fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("+ 1.1")   NOT = 0
              DISPLAY "Test 10 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("- 1.1")   NOT = 0
              DISPLAY "Test 11 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1.1 +")   NOT = 0
              DISPLAY "Test 12 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1.1 -")   NOT = 0
              DISPLAY "Test 13 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1.1   ")  NOT = 0
              DISPLAY "Test 14 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1.1   ")  NOT = 0
              DISPLAY "Test 15 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1.1 -CR") NOT = 6
              DISPLAY "Test 16 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1.1 E+1") NOT = 0
              DISPLAY "Test 17 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1.1 E -1") NOT = 0
              DISPLAY "Test 18 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("1.1 EE") NOT = 6
              DISPLAY "Test 19 fail"
              END-DISPLAY
           END-IF.
           IF FUNCTION TEST-NUMVAL-F ("+1.1 E001") NOT = 7
              DISPLAY "Test 20 fail"
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3726: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3726"
( $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/run_functions.at:3726"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3727: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3727"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3727"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_932
#AT_START_933
at_fn_group_banner 933 'run_functions.at:3732' \
  "FUNCTION TRIM" "                                  " 4
at_xfail=no
(
  $as_echo "933. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   X(12) VALUE " a#b.c%d+e$ ".
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION TRIM ( X )
           END-DISPLAY.
           DISPLAY FUNCTION TRIM ( X TRAILING )
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3749: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3749"
( $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/run_functions.at:3749"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3750: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3750"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3750"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_933
#AT_START_934
at_fn_group_banner 934 'run_functions.at:3758' \
  "FUNCTION TRIM with reference modding" "           " 4
at_xfail=no
(
  $as_echo "934. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   X(12) VALUE " a#b.c%d+e$ ".
       PROCEDURE        DIVISION.
           DISPLAY FUNCTION TRIM ( X ) (2 : 3)
           END-DISPLAY.
           DISPLAY FUNCTION TRIM ( X TRAILING ) (2 : 3)
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3775: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3775"
( $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/run_functions.at:3775"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3776: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3776"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3776"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_934
#AT_START_935
at_fn_group_banner 935 'run_functions.at:3784' \
  "FUNCTION TRIM zero length" "                      " 4
at_xfail=no
(
  $as_echo "935. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   X(4) VALUE "NOOK".
       PROCEDURE        DIVISION.
           MOVE FUNCTION TRIM ( "  " ) TO X.
           DISPLAY ">" X "<"
           END-DISPLAY.
           DISPLAY ">" FUNCTION TRIM ( "   " ) "<"
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3802: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3802"
( $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/run_functions.at:3802"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3803: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3803"
( $at_check_trace; $COBCRUN_DIRECT ./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 ">    <
><
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:3803"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_935
#AT_START_936
at_fn_group_banner 936 'run_functions.at:3811' \
  "FUNCTION UPPER-CASE" "                            " 4
at_xfail=no
(
  $as_echo "936. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   X(10) VALUE "a#b.c%d+e$".
       01  Z   PIC   X(10).
       PROCEDURE        DIVISION.
           MOVE FUNCTION UPPER-CASE ( X ) TO Z.
           IF Z NOT = "A#B.C%D+E$"
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3830: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3830"
( $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/run_functions.at:3830"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3831: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3831"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3831"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_936
#AT_START_937
at_fn_group_banner 937 'run_functions.at:3836' \
  "FUNCTION UPPER-CASE with reference modding" "     " 4
at_xfail=no
(
  $as_echo "937. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X   PIC   X(10) VALUE "a#b.c%d+e$".
       01  Z   PIC   X(4).
       PROCEDURE        DIVISION.
           MOVE FUNCTION UPPER-CASE ( X ) (1 : 3) TO Z.
           IF Z NOT = "A#B "
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3855: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3855"
( $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/run_functions.at:3855"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3856: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3856"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3856"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_937
#AT_START_938
at_fn_group_banner 938 'run_functions.at:3861' \
  "FUNCTION VARIANCE" "                              " 4
at_xfail=no
(
  $as_echo "938. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z            PIC S9(4)V9(4) COMP-5.
       PROCEDURE        DIVISION.
           MOVE FUNCTION VARIANCE ( 3 -14 0 8 -3 ) TO Z.
           IF Z NOT = 54.16
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3879: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3879"
( $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/run_functions.at:3879"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3880: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3880"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3880"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_938
#AT_START_939
at_fn_group_banner 939 'run_functions.at:3885' \
  "FUNCTION WHEN-COMPILED" "                         " 4
at_xfail=no
(
  $as_echo "939. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  compiled-datetime.
           03  compiled-date.
               05  millennium PIC X.
               05  FILLER    PIC X(15).
           03  timezone  PIC X(5).
       PROCEDURE        DIVISION.
           *> Check millennium.
           MOVE FUNCTION WHEN-COMPILED TO compiled-datetime.
           IF millennium NOT = "2"
              DISPLAY "Millennium NOT OK: " millennium
              END-DISPLAY
           END-IF.

           *> Check timezone.
           IF timezone NOT = FUNCTION CURRENT-DATE (17:5)
              DISPLAY "Timezone NOT OK: " timezone
              END-DISPLAY
           END-IF.

           *> Check date format.
           INSPECT compiled-date CONVERTING "0123456789"
               TO "9999999999".
           IF compiled-date NOT = ALL "9"
               DISPLAY "Date format NOT OK: " compiled-date
               END-DISPLAY
           END-IF.

           *> Check timezone format.
           IF timezone NOT = "00000"
               INSPECT timezone CONVERTING "0123456789"
                   TO "9999999999"
               IF timezone NOT = "+9999" AND "-9999"
                   DISPLAY "Timezone format NOT OK: " timezone
                   END-DISPLAY
               END-IF
           END-IF.

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3933: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3933"
( $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/run_functions.at:3933"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3934: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3934"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3934"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_939
#AT_START_940
at_fn_group_banner 940 'run_functions.at:3939' \
  "FUNCTION YEAR-TO-YYYY" "                          " 4
at_xfail=no
(
  $as_echo "940. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z            USAGE BINARY-LONG.
       PROCEDURE        DIVISION.
           MOVE FUNCTION YEAR-TO-YYYY ( 50 ) TO Z.
           IF Z NOT = 2050
              DISPLAY Z
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:3957: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:3957"
( $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/run_functions.at:3957"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:3958: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:3958"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:3958"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_940
#AT_START_941
at_fn_group_banner 941 'run_functions.at:3963' \
  "Formatted funcs w/ invalid variable format" "     " 4
at_xfail=no
(
  $as_echo "941. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  invalid-date-format          PIC X(10) VALUE "yyyymmdd".
       01  invalid-datetime-format      PIC X(17)
                                        VALUE "yyyymmddtHHMMSS".
       01  invalid-time-format          PIC X(6) VALUE "HHMMSS".
       PROCEDURE        DIVISION.
           IF FUNCTION FORMATTED-CURRENT-DATE
                           (invalid-date-format) <> SPACES
                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 11"
               DISPLAY "Test 1 failed" END-DISPLAY
           END-IF

           IF FUNCTION FORMATTED-DATE (invalid-date-format, 1) <> SPACES
                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 18"
               DISPLAY "Test 2 failed" END-DISPLAY
           END-IF

           IF FUNCTION FORMATTED-DATETIME
                           (invalid-datetime-format, 1, 1) <> SPACES
                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 24"
               DISPLAY "Test 3 failed" END-DISPLAY
           END-IF

           IF FUNCTION FORMATTED-TIME (invalid-time-format, 1) <> SPACES
                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 31"
               DISPLAY "Test 4 failed" END-DISPLAY
           END-IF

           IF FUNCTION INTEGER-OF-FORMATTED-DATE
                           (invalid-date-format, 1) <> ZERO
                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 37"
               DISPLAY "Test 5 failed" END-DISPLAY
           END-IF

           IF FUNCTION SECONDS-FROM-FORMATTED-TIME
                           (invalid-time-format, 1) <> ZERO
                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 44"
               DISPLAY "Test 6 failed" END-DISPLAY
           END-IF

           IF FUNCTION TEST-FORMATTED-DATETIME
                           (invalid-datetime-format, 1) <> ZERO
                  OR FUNCTION EXCEPTION-STATUS <> "EC-ARGUMENT-FUNCTION"
                  OR FUNCTION EXCEPTION-LOCATION <> "prog; ; 51"
               DISPLAY "Test 7 failed" END-DISPLAY
           END-IF

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:4027: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:4027"
( $at_check_trace; $COMPILE 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: FUNCTION 'FORMATTED-CURRENT-DATE' has format in variable
prog.cob:18: warning: FUNCTION 'FORMATTED-DATE' has format in variable
prog.cob:24: warning: FUNCTION 'FORMATTED-DATETIME' has format in variable
prog.cob:31: warning: FUNCTION 'FORMATTED-TIME' has format in variable
prog.cob:37: warning: FUNCTION 'INTEGER-OF-FORMATTED-DATE' has format in variable
prog.cob:44: warning: FUNCTION 'SECONDS-FROM-FORMATTED-TIME' has format in variable
prog.cob:51: warning: FUNCTION 'TEST-FORMATTED-DATETIME' has format in variable
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4027"
$at_failed && at_fn_log_failure
$at_traceon; }


# running the program
{ set +x
$as_echo "$at_srcdir/run_functions.at:4038: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4038"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:4038"
$at_failed && at_fn_log_failure
$at_traceon; }



  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_941
#AT_START_942
at_fn_group_banner 942 'run_functions.at:4044' \
  "FORMATTED-(DATE)TIME with SYSTEM-OFFSET" "        " 4
at_xfail=no
(
  $as_echo "942. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.
       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  str         PIC X(30).
       77  val         pic 9(02).

       PROCEDURE DIVISION.
           MOVE FUNCTION FORMATTED-DATETIME
                    ("YYYYDDDThhmmss+hhmm", 1, 45296, SYSTEM-OFFSET)
               TO str
           MOVE FUNCTION TEST-FORMATTED-DATETIME
                   ("YYYYDDDThhmmss+hhmm", str) TO val
           IF val not = 0
               DISPLAY "Test 1 failed: " str ' - ' val END-DISPLAY
           END-IF

           MOVE FUNCTION FORMATTED-TIME
                    ("hhmmss.ssZ", 45296, SYSTEM-OFFSET)
               TO str
           MOVE FUNCTION TEST-FORMATTED-DATETIME
                   ("hhmmss.ssZ", str) TO val
           IF val not = 0
               DISPLAY "Test 2 failed: " str ' - ' val END-DISPLAY
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:4076: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:4076"
( $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/run_functions.at:4076"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:4077: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4077"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:4077"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_942
#AT_START_943
at_fn_group_banner 943 'run_functions.at:4082' \
  "Intrinsics without FUNCTION keyword (1)" "        " 4
at_xfail=no
(
  $as_echo "943. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z            PIC 99V99.
       PROCEDURE        DIVISION.
           MOVE PI TO Z.
           MOVE E TO Z.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:4097: \$COMPILE -fintrinsics=all prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fintrinsics=all prog.cob" "run_functions.at:4097"
( $at_check_trace; $COMPILE -fintrinsics=all 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/run_functions.at:4097"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:4098: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4098"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:4098"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_943
#AT_START_944
at_fn_group_banner 944 'run_functions.at:4103' \
  "Intrinsics without FUNCTION keyword (2)" "        " 4
at_xfail=no
(
  $as_echo "944. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z            PIC 99V99.
       PROCEDURE        DIVISION.
           MOVE PI TO Z.
           MOVE E TO Z.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:4118: \$COMPILE -fintrinsics=pi,e prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fintrinsics=pi,e prog.cob" "run_functions.at:4118"
( $at_check_trace; $COMPILE -fintrinsics=pi,e 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/run_functions.at:4118"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:4119: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4119"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:4119"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_944
#AT_START_945
at_fn_group_banner 945 'run_functions.at:4126' \
  "User-Defined FUNCTION with/without parameter" "   " 4
at_xfail=no
(
  $as_echo "945. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       FUNCTION-ID.     WITHPAR.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 PAR-IN        PIC 9.
       01 PAR-OUT       PIC 9.
       PROCEDURE DIVISION USING PAR-IN RETURNING PAR-OUT.
           ADD 1 TO PAR-IN GIVING PAR-OUT END-ADD.
           GOBACK.
       END FUNCTION WITHPAR.

       IDENTIFICATION   DIVISION.
       FUNCTION-ID.     WITHOUTPAR.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 PAR           PIC 9.
       PROCEDURE DIVISION RETURNING PAR.
           MOVE 1 TO PAR.
           GOBACK.
       END FUNCTION WITHOUTPAR.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       CONFIGURATION    SECTION.
       REPOSITORY.
           FUNCTION     WITHPAR
           FUNCTION     WITHOUTPAR.
       PROCEDURE        DIVISION.
           IF WITHPAR(1) NOT = 2
              DISPLAY WITHPAR(1)
              END-DISPLAY
           END-IF.
           IF WITHOUTPAR NOT = 1
              DISPLAY WITHOUTPAR
              END-DISPLAY
           END-IF.
           STOP RUN.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:4171: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:4171"
( $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/run_functions.at:4171"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:4172: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4172"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_functions.at:4172"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_945
#AT_START_946
at_fn_group_banner 946 'run_functions.at:4177' \
  "UDF in COMPUTE" "                                 " 4
at_xfail=no
(
  $as_echo "946. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       FUNCTION-ID. func.

       DATA DIVISION.
       LINKAGE SECTION.
       01  num PIC 999.

       PROCEDURE DIVISION RETURNING num.
           MOVE 100 TO num
           .
       END FUNCTION func.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           FUNCTION func.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  x PIC 999.

       PROCEDURE DIVISION.
           COMPUTE x = 101 + FUNCTION func
           DISPLAY x
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:4212: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:4212"
( $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/run_functions.at:4212"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:4213: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4213"
( $at_check_trace; $COBCRUN_DIRECT ./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 "201
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4213"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_946
#AT_START_947
at_fn_group_banner 947 'run_functions.at:4220' \
  "UDF replacing intrinsic function" "               " 4
at_xfail=no
(
  $as_echo "947. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       FUNCTION-ID. SUBSTITUTE.

       DATA DIVISION.
       LINKAGE SECTION.
       01  func-in  PIC X(15).
       01  func-sub PIC X.
       01  func-out PIC X(15).

       PROCEDURE DIVISION USING func-in, func-sub RETURNING func-out.
           MOVE func-in TO func-out
           INSPECT func-out REPLACING ALL '%' BY func-sub
           .
       END FUNCTION SUBSTITUTE.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           FUNCTION SUBSTITUTE
           .
       PROCEDURE DIVISION.
           DISPLAY '"' FUNCTION SUBSTITUTE(" % C%O%B%O%L % ", "_") '"'
           DISPLAY '"' FUNCTION SUBSTITUTE(" % C%O%B%O%L % ", "-") '"'
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:4254: \$COMPILE -fnot-intrinsic=substitute prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fnot-intrinsic=substitute prog.cob" "run_functions.at:4254"
( $at_check_trace; $COMPILE -fnot-intrinsic=substitute 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/run_functions.at:4254"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_functions.at:4255: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4255"
( $at_check_trace; $COBCRUN_DIRECT ./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 "\" _ C_O_B_O_L _ \"
\" - C-O-B-O-L - \"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4255"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_947
#AT_START_948
at_fn_group_banner 948 'run_functions.at:4263' \
  "UDF with recursion" "                             " 4
at_xfail=no
(
  $as_echo "948. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_functions.at:4266" >"$at_check_line_file"
at_fn_check_skip 77 "$at_srcdir/run_functions.at:4266"	# see bug #222 and r2291 - postponed

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       FUNCTION-ID. foo.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  ttl  PIC 9 VALUE 1.

       LOCAL-STORAGE SECTION.
       01  num  PIC 9.

       LINKAGE SECTION.
       01  arg PIC 9.
       01  ret PIC 9.

       PROCEDURE DIVISION USING arg RETURNING ret.
           IF arg < 5
              ADD 1 TO arg GIVING num END-ADD
              MOVE FUNCTION foo (num) TO ret
           ELSE
              MOVE arg TO ret
           END-IF
           DISPLAY "Step: " ttl ", Arg: " arg ", Return: " ret
           END-DISPLAY
           ADD 1 to ttl END-ADD
           GOBACK.
       END FUNCTION foo.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           FUNCTION foo.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 num PIC 9 VALUE 1.

       PROCEDURE DIVISION.
           DISPLAY "Return value '" FUNCTION foo (num) "'"
             WITH NO ADVANCING
           END-DISPLAY
           GOBACK.
       END PROGRAM prog.

_ATEOF


{ set +x
$as_echo "$at_srcdir/run_functions.at:4317: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_functions.at:4317"
( $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/run_functions.at:4317"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_functions.at:4319: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_functions.at:4319"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Step: 1, Arg: 5, Return: 5
Step: 2, Arg: 4, Return: 5
Step: 3, Arg: 3, Return: 5
Step: 4, Arg: 2, Return: 5
Step: 5, Arg: 1, Return: 5
Return value '5'" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_functions.at:4319"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_948
#AT_START_949
at_fn_group_banner 949 'run_extensions.at:25' \
  "CALL BY CONTENT binary and literal" "             " 4
at_xfail=no
(
  $as_echo "949. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (unsigned char *data, int *p)
{
  int i;
  if ( *p == 1 ) {
     for (i = 0; i < 4; i++)
       printf ("%02x", data[i]);
  } else {
       printf ("%8.8d", *((int *)data));
  }
  puts ("");
  return 0;
}
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-1           PIC 9(9) VALUE 4660 COMP.
       01 X-2           PIC 9(9) VALUE 4660 COMP-5.
       PROCEDURE        DIVISION.
           CALL "dump" USING X-1 BY CONTENT 1
           END-CALL.
           CALL "dump" USING X-2 BY CONTENT 2
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:62: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "run_extensions.at:62"
( $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/run_extensions.at:62"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:63: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:63"
( $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/run_extensions.at:63"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:64: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:64"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_949
#AT_START_950
at_fn_group_banner 950 'run_extensions.at:72' \
  "Numeric Boolean literals" "                       " 4
at_xfail=no
(
  $as_echo "950. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-1           PIC 9(2)  VALUE B"010101".
       01 X-2           PIC 9(20) VALUE B"111111111111111111111111111111
      -                                  "111111111111111111111111111111
      -                                  "1111".
       PROCEDURE        DIVISION.
           DISPLAY X-1
           END-DISPLAY.
           DISPLAY X-2
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:92: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:92"
( $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/run_extensions.at:92"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:93: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:93"
( $at_check_trace; $COBCRUN_DIRECT ./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 "21
18446744073709551615
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:93"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_950
#AT_START_951
at_fn_group_banner 951 'run_extensions.at:101' \
  "ACUCOBOL literals" "                              " 4
at_xfail=no
(
  $as_echo "951. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           DISPLAY B#101 UPON STDOUT
           DISPLAY O#17777777777 UPON STDOUT
           DISPLAY X#ffFFFFff UPON STDOUT
           DISPLAY H#ffFFFFff UPON STDOUT

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:116: \$COMPILE -facu-literals=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -facu-literals=ok prog.cob" "run_extensions.at:116"
( $at_check_trace; $COMPILE -facu-literals=ok 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/run_extensions.at:116"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:117: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:117"
( $at_check_trace; $COBCRUN_DIRECT ./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 "5
2147483647
4294967295
4294967295
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:117"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_951
#AT_START_952
at_fn_group_banner 952 'run_extensions.at:127' \
  "HP COBOL octal literals" "                        " 4
at_xfail=yes
(
  $as_echo "952. $at_setup_line: testing $at_desc ..."
  $at_traceon



# FIXME: the type of octal literals must be context-sensitive, see below
# currently hard-wired as numeric (may be switched in scanner.l to alphanumeric)



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
      *>   Octal literal is "AB" in ASCII.
       01  ITEM-ALPHA     PIC XX        VALUE %40502.
      *>   Octal literal is 39.
       01  ITEM-NUMERIC   PIC 99 BINARY VALUE %47.
      *>   Octal literal is ASCII 12.
       01  ITEM-NUM       PIC 99        VALUE %30462.
       PROCEDURE        DIVISION.
      *>   Octal literal is "XY".
           DISPLAY %54131.
           IF ITEM-ALPHA NOT = "AB"
              DISPLAY "VALUE %40502 is not ""AB"" (ASCII) but "
                      ITEM-ALPHA
           END-IF
           IF ITEM-NUMERIC NOT = 39
              DISPLAY "VALUE %47 BINARY is not 39 but " ITEM-NUMERIC
           END-IF
           IF ITEM-NUM NOT = 12
              DISPLAY "VALUE %30462 is not 12 (ASCII) but " ITEM-NUM
           END-IF
      *>   Adds octal 23 (decimal 19, as it is an arithmetic expression).
           ADD %23 TO ITEM-NUM.
           IF ITEM-NUM NOT = 31
              DISPLAY "12 + %23 (19) is not 31 but " ITEM-NUM
           END-IF
      *>   Sets the data to octal 30462 (ASCII 12).
           MOVE %30462 TO ITEM-NUM
           IF ITEM-NUM NOT = 12
              DISPLAY "%30462 is not 12 (ASCII) but " ITEM-NUM
           END-IF
      *>   Sets the data to x'4100' (octal 101 -> ASCII A + right-pad NULL)
           MOVE %101 TO ITEM-ALPHA
           IF ITEM-ALPHA NOT = x"4100"
              DISPLAY "%101 is not x""4100"" = Anull (ASCII) but "
                      ITEM-ALPHA
           END-IF


           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:180: \$COMPILE -fhp-octal-literals=ok prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fhp-octal-literals=ok prog.cob" "run_extensions.at:180"
( $at_check_trace; $COMPILE -fhp-octal-literals=ok 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/run_extensions.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:181: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:181"
( $at_check_trace; $COBCRUN_DIRECT ./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 "XY
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_952
#AT_START_953
at_fn_group_banner 953 'run_extensions.at:188' \
  "Hexadecimal numeric literals" "                   " 4
at_xfail=no
(
  $as_echo "953. $at_setup_line: testing $at_desc ..."
  $at_traceon
 # FIXME: needs a dialect configuration


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-1           PIC 9(8) VALUE H"012345".
       01 X-2           PIC 9(8) VALUE H"FFFFFF".
       PROCEDURE        DIVISION.
           DISPLAY X-1
           END-DISPLAY.
           DISPLAY X-2
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:206: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:206"
( $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/run_extensions.at:206"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:207: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:207"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:207"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_953
#AT_START_954
at_fn_group_banner 954 'run_extensions.at:217' \
  "Semi-parenthesized condition" "                   " 4
at_xfail=no
(
  $as_echo "954. $at_setup_line: testing $at_desc ..."
  $at_traceon

 # Shouldn't this be in run_fundamentals?

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           IF 1 = (1 OR 2)
             DISPLAY "OK" NO ADVANCING
             END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:231: \$COMPILE -Wno-constant-expression prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -Wno-constant-expression prog.cob" "run_extensions.at:231"
( $at_check_trace; $COMPILE -Wno-constant-expression 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/run_extensions.at:231"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:232: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:232"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:232"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_954
#AT_START_955
at_fn_group_banner 955 'run_extensions.at:237' \
  "ADDRESS OF" "                                     " 4
at_xfail=no
(
  $as_echo "955. $at_setup_line: testing $at_desc ..."
  $at_traceon
 # Shouldn't this be in run_fundamentals?


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-1           PIC X(3) VALUE "X-1".
       01 X-2           PIC X(3) VALUE "X-2".
       01 G.
         02 PTR-1       USAGE POINTER VALUE NULL.
         02 PTR-2       USAGE POINTER VALUE NULL.
       LINKAGE          SECTION.
       01 Y             PIC X(3).
       PROCEDURE        DIVISION.
         SET ADDRESS OF Y TO ADDRESS OF X-1.
         IF Y NOT = "X-1"
            DISPLAY "Test 1 " Y
            END-DISPLAY
         END-IF.
         SET PTR-1 TO ADDRESS OF X-2.
         SET PTR-2 TO PTR-1
         SET ADDRESS OF Y TO PTR-2.
         IF Y NOT = "X-2"
            DISPLAY "Test 2 " Y
            END-DISPLAY
         END-IF
         INITIALIZE PTR-1.
         IF PTR-1 NOT = NULL
           DISPLAY "NG 1"
           END-DISPLAY
         END-IF.
         SET ADDRESS OF Y TO NULL.
         IF PTR-1 NOT = ADDRESS OF Y
           DISPLAY "NG 2"
           END-DISPLAY
         END-IF.
         IF ADDRESS OF Y NOT = PTR-1
           DISPLAY "NG 3"
           END-DISPLAY
         END-IF.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:281: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:281"
( $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/run_extensions.at:281"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:282: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:282"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:282"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_955
#AT_START_956
at_fn_group_banner 956 'run_extensions.at:287' \
  "LENGTH OF" "                                      " 4
at_xfail=no
(
  $as_echo "956. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(2).
       01 G.
         02 Y           PIC X(2) OCCURS 10.
         02 G-GROUP.
         03 G-SGROUP.
         04 G1          PIC X(05).
         04 G2          PIC X(06).
         04 G3          PIC X(22).
         03 FILLER      PIC XX OCCURS 5.
       66 RENAME-STD-G  RENAMES G-GROUP.
       66 RENAME-STD-SG RENAMES G-SGROUP.
       66 RENAME-STD    RENAMES G1 THROUGH G3.
       66 RENAME-G      RENAMES G.
       01 L             PIC s9(4)v99.
       01 I             PIC 9(2) VALUE 10.
       78 I-LEN         VALUE LENGTH OF I.
      * TODO: check size of FILLER here
       01 TSTDISP.
         02 FILLER OCCURS 5000.
           10 T1        PIC X(11).
           10 T2        PIC X(22).
       78 var-length-l      value length of '00128'.
       78 var-length-x      value length of x'a0'.
       78 var-length-z      value length of z'a0'.
      *78 var-length-n      value length of n'001'.
       PROCEDURE        DIVISION.
           move var-length-l TO L
           IF L NOT = 5
              DISPLAY "Length '00128'" L
              END-DISPLAY
           END-IF
           move var-length-x TO L
           IF L NOT = 1
              DISPLAY "Length x'a0'" L
              END-DISPLAY
           END-IF
           move var-length-z TO L
           IF L NOT = 3
              DISPLAY "Length z'a0'" L
              END-DISPLAY
           END-IF
      *    What does MF reports here?
      *>   move var-length-n TO L
      *>   IF L NOT = 3
      *>      DISPLAY "Length n'001'" L
      *>      END-DISPLAY
      *>   END-IF
           MOVE LENGTH OF X  TO L
           IF L NOT = 2
              DISPLAY "Length 1 " L
              END-DISPLAY
           END-IF
           MOVE LENGTH OF X  TO L
           IF L NOT = 2
              DISPLAY "Length 1a " L LENGTH X
              END-DISPLAY
           END-IF
           MOVE LENGTH OF Y  TO L
           IF L NOT = 2
              DISPLAY "Length 2 " L
              END-DISPLAY
           END-IF
           IF L NOT = 2
              DISPLAY "Length 2a " L LENGTH OF Y
              END-DISPLAY
           END-IF
           MOVE LENGTH OF Y(1) TO L
           IF L NOT = 2
              DISPLAY "Length 3 " L
              END-DISPLAY
           END-IF
           MOVE LENGTH Y(1) TO L
           IF L NOT = 2
              DISPLAY "Length 3a " L LENGTH OF Y(1)
              END-DISPLAY
           END-IF
           IF I-LEN NOT = 2
              DISPLAY "Length 4 " I-LEN
              END-DISPLAY
           END-IF
           IF LENGTH OF L + 2 NOT = 8
              ADD 2 TO LENGTH OF L GIVING L
              DISPLAY "Length 5 + 2" L
              END-DISPLAY
           END-IF
           IF LENGTH L + 2 NOT = 8
              ADD 2 TO LENGTH L GIVING L
              DISPLAY "Length 5a + 2 " L
              END-DISPLAY
           END-IF
           MOVE 0 TO L
           PERFORM LENGTH OF L TIMES
              ADD 1 TO L
           END-PERFORM
           PERFORM LENGTH L TIMES
              ADD 1 TO L
           END-PERFORM
           IF L NOT = 12
              DISPLAY "Length 6 " L
              END-DISPLAY
           END-IF
           MOVE 0 TO L
           PERFORM VARME
                   VARYING I FROM LENGTH OF I
                             BY   LENGTH OF X
                   UNTIL   I > LENGTH OF L
           IF ((L NOT = 3) OR
               (I NOT = 8)    )
              DISPLAY "Length 7 " L " - " I
              END-DISPLAY
           END-IF
           MOVE 0 TO L
           PERFORM VARME
                   VARYING I FROM LENGTH I
                             BY   LENGTH X
                   UNTIL   I > LENGTH L
           IF ((L NOT = 3) OR
               (I NOT = 8)    )
              DISPLAY "Length 7a " L " - " I
              END-DISPLAY
           END-IF
           MOVE LENGTH OF RENAME-STD-SG  TO L
           IF L NOT = 33
              DISPLAY "Length 8a " L
              END-DISPLAY
           END-IF
           MOVE LENGTH OF RENAME-STD-G  TO L
           IF L NOT = 43
              DISPLAY "Length 8b " L
              END-DISPLAY
           END-IF
           MOVE LENGTH OF RENAME-STD  TO L
           IF L NOT = 33
              DISPLAY "Length 8c " L
              END-DISPLAY
           END-IF
           MOVE LENGTH OF RENAME-G  TO L
           IF L NOT = 63
              DISPLAY "Length 8d " L
              END-DISPLAY
           END-IF
           *> one display test
           DISPLAY LENGTH OF TSTDISP WITH NO ADVANCING
           END-DISPLAY
           STOP RUN.
       VARME.
           ADD 1 TO L
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:445: \$COMPILE -Wno-constant-expression prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -Wno-constant-expression prog.cob" "run_extensions.at:445"
( $at_check_trace; $COMPILE -Wno-constant-expression 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/run_extensions.at:445"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:446: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:446"
( $at_check_trace; $COBCRUN_DIRECT ./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 "165000" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:446"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_956
#AT_START_957
at_fn_group_banner 957 'run_extensions.at:451' \
  "SET TO SIZE OF" "                                 " 4
at_xfail=no
(
  $as_echo "957. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       DATA  DIVISION.
       WORKING-STORAGE SECTION.
       01  TST    PIC X(10) VALUE "abcdefghij".
       01  TST2.
           05  FILLER OCCURS 5000.
               10 T2-1    PIC X(11).
               10 T2-2    PIC X(22).
       01  LN     PIC 9(06).

       PROCEDURE DIVISION.
           SET LN TO SIZE OF TST
           IF LN NOT = 10
              DISPLAY "SIZE OF TST is " LN UPON SYSERR
              END-DISPLAY
           END-IF
           SET LN TO SIZE OF TST2
           IF LN NOT = 165000
              DISPLAY "SIZE OF TST2 is " LN UPON SYSERR
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:482: \$COMPILE prog.cob "
at_fn_check_prepare_dynamic "$COMPILE prog.cob " "run_extensions.at:482"
( $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/run_extensions.at:482"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:483: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:483"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:483"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_957
#AT_START_958
at_fn_group_banner 958 'run_extensions.at:488' \
  "WHEN-COMPILED" "                                  " 4
at_xfail=no
(
  $as_echo "958. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(20).
       PROCEDURE        DIVISION.
           MOVE WHEN-COMPILED TO X.
           INSPECT X CONVERTING "0123456789" TO "9999999999".
           IF X NOT = "99/99/9999.99.99    "
              CALL 'CBL_OC_DUMP' USING X
                 ON EXCEPTION
                    DISPLAY X NO ADVANCING
                    END-DISPLAY
              END-CALL
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:510: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:510"
( $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/run_extensions.at:510"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:511: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:511"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_958
#AT_START_959
at_fn_group_banner 959 'run_extensions.at:517' \
  "Complex OCCURS DEPENDING ON (1)" "                " 4
at_xfail=no
(
  $as_echo "959. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 I PIC 9.
       01 G-1 VALUE "123456789".
         02 G-2.
           03 X   PIC X OCCURS 1 TO 3 DEPENDING ON I.
         02 G-3.
           03 G-4.
             04 X PIC X OCCURS 1 TO 3 DEPENDING ON I.
           03 G-5.
             04 X PIC X OCCURS 1 TO 3 DEPENDING ON I.
       PROCEDURE        DIVISION.
           MOVE 2 TO I.
           DISPLAY G-1 ":" G-4 ":" G-5 NO ADVANCING
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:540: \$COMPILE -std=mvs prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=mvs prog.cob" "run_extensions.at:540"
( $at_check_trace; $COMPILE -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/run_extensions.at:540"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:541: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:541"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:541"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_959
#AT_START_960
at_fn_group_banner 960 'run_extensions.at:546' \
  "Complex OCCURS DEPENDING ON (2)" "                " 4
at_xfail=no
(
  $as_echo "960. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  I            PIC 99.
       01  J            PIC 99.
       01  K            PIC 99.
       01  VLEN         PIC 99.
       01  VTOP.
           03 VGROUP.
             05  VX     OCCURS 1 TO 5 DEPENDING ON I.
               10 VXX   PIC X(1).
             05  VY     OCCURS 1 TO 5 DEPENDING ON J.
               10 VYY   PIC X(2).
             05 ZZ      OCCURS 1 TO 5 DEPENDING ON K.
               10 VZZ   PIC X(3).
       PROCEDURE        DIVISION.
           MOVE    1      TO I.
           MOVE    1      TO J.
           MOVE    1      TO K.
           MOVE    '1'    TO VXX (1).
           MOVE    '22'   TO VYY (1).
           MOVE    '333'  TO VZZ (1).
           MOVE    LENGTH OF VGROUP         TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           DISPLAY VGROUP
           END-DISPLAY.
           INITIALIZE     VTOP.
           MOVE    3      TO I.
           MOVE    2      TO J.
           MOVE    1      TO K.
           MOVE    '3'    TO VXX (3).
           MOVE    '22'   TO VYY (2).
           MOVE    '111'  TO VZZ (1).
           MOVE    LENGTH OF VGROUP         TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           DISPLAY VGROUP
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:600: \$COMPILE -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_extensions.at:600"
( $at_check_trace; $COMPILE -std=mf 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/run_extensions.at:600"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:601: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:601"
( $at_check_trace; $COBCRUN_DIRECT ./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 "18181    22        333
1818  3    22      111
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:601"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_960
#AT_START_961
at_fn_group_banner 961 'run_extensions.at:609' \
  "Complex OCCURS DEPENDING ON (3)" "                " 4
at_xfail=no
(
  $as_echo "961. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  I            PIC 99.
       01  J            PIC 99.
       01  K            PIC 99.
       01  VLEN         PIC 99.
       01  VTOP.
           03 VGROUP.
             05  VX     OCCURS 1 TO 5 DEPENDING ON I.
               10 VXX   PIC X(1).
             05  VY     OCCURS 1 TO 5 DEPENDING ON J.
               10 VYY   PIC X(2).
             05 ZZ      OCCURS 1 TO 5 DEPENDING ON K.
               10 VZZ   PIC X(3).
       PROCEDURE        DIVISION.
           MOVE    1      TO I.
           MOVE    1      TO J.
           MOVE    1      TO K.
           MOVE    '1'    TO VXX (1).
           MOVE    '22'   TO VYY (1).
           MOVE    '333'  TO VZZ (1).
           MOVE    LENGTH OF VGROUP         TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           DISPLAY VGROUP
           END-DISPLAY.
           INITIALIZE     VTOP.
           MOVE    3      TO I.
           MOVE    2      TO J.
           MOVE    1      TO K.
           MOVE    '3'    TO VXX (3).
           MOVE    '22'   TO VYY (2).
           MOVE    '111'  TO VZZ (1).
           MOVE    LENGTH OF VGROUP         TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           DISPLAY VGROUP
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:663: \$COMPILE -fcomplex-odo -fodoslide prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fcomplex-odo -fodoslide prog.cob" "run_extensions.at:663"
( $at_check_trace; $COMPILE -fcomplex-odo -fodoslide 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/run_extensions.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:664: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:664"
( $at_check_trace; $COBCRUN_DIRECT ./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 "0606122333
1010  3  22111
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:664"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_961
#AT_START_962
at_fn_group_banner 962 'run_extensions.at:672' \
  "Complex OCCURS DEPENDING ON (4)" "                " 4
at_xfail=no
(
  $as_echo "962. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  I            PIC 99.
       01  J            PIC 99.
       01  K            PIC 99.
       01  VLEN         PIC 99.
       01  VTOP.
           03 VGROUP.
             05  VX     OCCURS 1 TO 5 DEPENDING ON I.
               10 VXX   PIC X(1).
             05  VY     OCCURS 1 TO 5 DEPENDING ON J.
               10 VYY   PIC X(2).
             05 ZZ      OCCURS 1 TO 5 DEPENDING ON K.
               10 VZZ   PIC X(3).
             05  VFIX   PIC X(3).
       PROCEDURE        DIVISION.
           MOVE    1      TO I.
           MOVE    1      TO J.
           MOVE    1      TO K.
           MOVE    '1'    TO VXX (1).
           MOVE    '22'   TO VYY (1).
           MOVE    '333'  TO VZZ (1).
           MOVE    '444'  TO VFIX.
           MOVE    LENGTH OF VGROUP         TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           DISPLAY VGROUP
           END-DISPLAY.
           INITIALIZE     VTOP.
           MOVE    3      TO I.
           MOVE    2      TO J.
           MOVE    1      TO K.
           MOVE    '3'    TO VXX (3).
           MOVE    '22'   TO VYY (2).
           MOVE    '111'  TO VZZ (1).
           MOVE    '000'  TO VFIX.
           MOVE    LENGTH OF VGROUP         TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           DISPLAY VGROUP
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:729: \$COMPILE -fcomplex-odo prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fcomplex-odo prog.cob" "run_extensions.at:729"
( $at_check_trace; $COMPILE -fcomplex-odo 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/run_extensions.at:729"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:730: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:730"
( $at_check_trace; $COBCRUN_DIRECT ./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 "33331    22        333            444
3333  3    22      111            000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:730"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_962
#AT_START_963
at_fn_group_banner 963 'run_extensions.at:738' \
  "Complex OCCURS DEPENDING ON (5)" "                " 4
at_xfail=no
(
  $as_echo "963. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  I            PIC 99.
       01  J            PIC 99.
       01  K            PIC 99.
       01  VLEN         PIC 99.
       01  VTOP.
           03 VGROUP.
             05  VX     OCCURS 1 TO 5 DEPENDING ON I.
               10 VXX   PIC X(1).
             05  VY     OCCURS 1 TO 5 DEPENDING ON J.
               10 VYY   PIC X(2).
             05 ZZ      OCCURS 1 TO 5 DEPENDING ON K.
               10 VZZ   PIC X(3).
             05  VFIX   PIC X(3).
       PROCEDURE        DIVISION.
           MOVE    1      TO I.
           MOVE    1      TO J.
           MOVE    1      TO K.
           MOVE    '1'    TO VXX (1).
           MOVE    '22'   TO VYY (1).
           MOVE    '333'  TO VZZ (1).
           MOVE    '444'  TO VFIX.
           MOVE    LENGTH OF VGROUP         TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           DISPLAY VGROUP
           END-DISPLAY.
           INITIALIZE     VTOP.
           MOVE    3      TO I.
           MOVE    2      TO J.
           MOVE    1      TO K.
           MOVE    '3'    TO VXX (3).
           MOVE    '22'   TO VYY (2).
           MOVE    '111'  TO VZZ (1).
           MOVE    '000'  TO VFIX.
           MOVE    LENGTH OF VGROUP         TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           MOVE    FUNCTION LENGTH (VGROUP) TO VLEN.
           DISPLAY VLEN   NO ADVANCING
           END-DISPLAY.
           DISPLAY VGROUP
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:795: \$COMPILE -fcomplex-odo -fodoslide prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fcomplex-odo -fodoslide prog.cob" "run_extensions.at:795"
( $at_check_trace; $COMPILE -fcomplex-odo -fodoslide 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/run_extensions.at:795"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:796: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:796"
( $at_check_trace; $COBCRUN_DIRECT ./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 "0909122333444
1313  3  22111000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:796"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_963
#AT_START_964
at_fn_group_banner 964 'run_extensions.at:804' \
  "Complex OCCURS DEPENDING ON (6)" "                " 4
at_xfail=no
(
  $as_echo "964. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  n            PIC 9 VALUE 2.
       01  m            PIC 9 VALUE 3.

       01  a-table      VALUE "ABCDEFGHIJ".
           03  rows     OCCURS 0 TO 2 TIMES
                        DEPENDING ON n.
                05  chars OCCURS 0 TO 5 TIMES
                          DEPENDING ON m
                          PIC X.

       01  vals         PIC X(3).

       PROCEDURE DIVISION.
           MOVE chars (1, 2) TO vals (1:1)
           MOVE chars (2, 1) TO vals (2:1)
           MOVE chars (2, 3) TO vals (3:1)
           IF vals NOT = "BDF"
              DISPLAY "Vals (slided) wrong: " vals
              END-DISPLAY
           END-IF
           IF a-table NOT = "ABCDEF"
              DISPLAY "Table (slided) wrong: " a-table
              END-DISPLAY
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:839: \$COMPILE -fcomplex-odo -fodoslide prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fcomplex-odo -fodoslide prog.cob" "run_extensions.at:839"
( $at_check_trace; $COMPILE -fcomplex-odo -fodoslide 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/run_extensions.at:839"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:840: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:840"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:840"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_964
#AT_START_965
at_fn_group_banner 965 'run_extensions.at:845' \
  "OCCURS UNBOUNDED (1)" "                           " 4
at_xfail=no
(
  $as_echo "965. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID. prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  N            PIC 9(03)  VALUE 123 COMP-5.
       01  P            USAGE POINTER.
       01  SAV          PIC X(8192).
       01  W-TABLE.
           03  WROWS     OCCURS 0 TO 500 TIMES
                        DEPENDING ON N.
               05 WCOL1  PIC 9.
               05 WCOL2  PIC X(02).

       LINKAGE SECTION.
       01  A-TABLE.
           03  ROWS     OCCURS 0 TO UNBOUNDED TIMES
                        DEPENDING ON N.
               05 COL1  PIC X.
               05 COL2  PIC X(02).

       PROCEDURE DIVISION.
           IF FUNCTION LENGTH (W-TABLE) NOT = 369
              DISPLAY 'WRONG WS LENGTH: ' FUNCTION LENGTH (A-TABLE)
              END-DISPLAY
           END-IF
           IF FUNCTION LENGTH (A-TABLE) NOT = 369
              DISPLAY 'WRONG LS LENGTH: ' FUNCTION LENGTH (A-TABLE)
              END-DISPLAY
           END-IF
           ALLOCATE FUNCTION LENGTH (A-TABLE) CHARACTERS
                    INITIALIZED TO ALL "ABCDE"
                    RETURNING P
           SET ADDRESS OF A-TABLE TO P
           IF COL2(1) NOT = "BC"
              DISPLAY "col2(1) wrong: " col2(1)
           END-IF
           IF ROWS(2) NOT = "DEA"
              DISPLAY "rows(2) wrong: " rows(2)
           END-IF
      *
           INITIALIZE W-TABLE
      *
           MOVE A-TABLE TO SAV
           INITIALIZE A-TABLE
      *
           FREE p
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:898: \$COBC -x -std=ibm -w -fodoslide prog.cob "
at_fn_check_prepare_dynamic "$COBC -x -std=ibm -w -fodoslide prog.cob " "run_extensions.at:898"
( $at_check_trace; $COBC -x -std=ibm -w -fodoslide 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/run_extensions.at:898"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:899: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:899"
( $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/run_extensions.at:899"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:901: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:901"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:901"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_965
#AT_START_966
at_fn_group_banner 966 'run_extensions.at:906' \
  "OCCURS UNBOUNDED (2)" "                           " 4
at_xfail=yes
(
  $as_echo "966. $at_setup_line: testing $at_desc ..."
  $at_traceon



# note: the following example is from IBM's Language Reference
#       for Enterprise COBOL for z/OS 6.1, but with fixed use
#       of old-size (+ removing some binary zeros for output)

cat >ALLOC.cob <<'_ATEOF'

       ID DIVISION.
        PROGRAM-ID. ALLOC.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
        WORKING-STORAGE SECTION.
        77  X   PIC  9(2) PACKED-DECIMAL.
        77  NUM-ELEMENTS PIC 9(4) BINARY.
        77  SIZE-NEEDED  PIC 9(4) BINARY.
        77  old-size     pic 9(4) binary.
        77  VPTR  POINTER.
        77  VPTR2 POINTER.
        77  VPTR3 POINTER.

        LINKAGE       SECTION.

        01  VARGRP.
          02  OBJ     PIC 9(4) COMP.
          02  TABGRP.
            03  VARTAB OCCURS 1 TO UNBOUNDED DEPENDING ON OBJ.
              04  T1      PIC 9(4).
              04  T2      PIC X(8).
              04  T3      PIC 9(4). *> changed from COMP because of output
        01 BUFFER         PIC X(1000).

       PROCEDURE DIVISION.

      *>    DISPLAY 'Starting testcase ALLOC'

           SET VPTR VPTR2 VPTR3 To NULL

      *************************************************************
      *  Allocate a table with 20 elements
      *************************************************************
           COMPUTE NUM-ELEMENTS = 20
           PERFORM ALLOC-VARGRP

      *************************************************************
      *  Set some 'test' values to validate re-allocated table
      *************************************************************
           initialize vartab(12), vartab(17)
           COMPUTE T1(12) = 9999
           MOVE 'HI MOM' TO T2 (17)
      *>   DISPLAY '  '
           DISPLAY 'VARTAB(12) = "' VARTAB(12) '"'
           DISPLAY 'VARTAB(17) = "' VARTAB(17) '"'
      *>   DISPLAY '  '

      *************************************************************
      *  Need a bigger table! Allocate a larger one and copy data
      *************************************************************
           COMPUTE NUM-ELEMENTS = 30
           PERFORM ALLOC-VARGRP

      *************************************************************
      *  Ensure that new table has correct data from original
      *************************************************************
           DISPLAY 'VARTAB(12) = "' VARTAB(12) '"'
           DISPLAY 'VARTAB(17) = "' VARTAB(17) '"'

           GOBACK.

      *************************************************************
      *  The first time allocate the original table.  If the table
      *  has already been allocated, assume that we are allocating
      *  a larger one and want to copy the data over to it
      *************************************************************
        ALLOC-VARGRP.

           If VPTR = NULL Then      *> If first time, allocate the table
             COMPUTE SIZE-NEEDED = LENGTH OF OBJ +
                                 LENGTH OF VARTAB * NUM-ELEMENTS
             display 'First allocation, using ' size-needed ' bytes.'
             ALLOCATE SIZE-NEEDED CHARACTERS INITIALIZED RETURNING VPTR

             SET ADDRESS OF VARGRP TO VPTR
             MOVE NUM-ELEMENTS TO OBJ

           Else                     *> If already have a table, doing re-size
      *********************************************************************
      * Re-size it!
      * First, allocate space for data save area  and move data in
      *********************************************************************

             ALLOCATE SIZE-NEEDED CHARACTERS INITIALIZED RETURNING VPTR2
             SET ADDRESS OF BUFFER TO VPTR2
             MOVE VARGRP TO BUFFER(1:SIZE-NEEDED)
             inspect BUFFER(1:SIZE-NEEDED) replacing all x'00' by space
             DISPLAY 'BUFFER     = "'
                   BUFFER(170:66) '"'
             DISPLAY 'BUFFER     = "'
                   BUFFER(226:66) '"'
             move size-needed to old-size

      *********************************************************************
      * Calculate new size from NUM-ElEMENTS
      *********************************************************************
             COMPUTE SIZE-NEEDED = LENGTH OF OBJ +
                                   LENGTH OF VARTAB * NUM-ELEMENTS

             display 'Re-allocation, using ' size-needed ' bytes.'
      *>     ALLOCATE SIZE-NEEDED CHARACTERS INITIALIZED RETURNING VPTR3
             if size-needed < 2097152
                ALLOCATE SIZE-NEEDED CHARACTERS INITIALIZED
                                                loc 24
                                                RETURNING VPTR3
             else
                ALLOCATE SIZE-NEEDED CHARACTERS INITIALIZED
                                                loc 31
                                                RETURNING VPTR3
             end-if

      *************************************************************
      * Move data from data save area to new larger table
      *************************************************************
             SET ADDRESS OF VARGRP TO VPTR3
             MOVE NUM-ELEMENTS TO OBJ
             MOVE BUFFER(1:old-size) TO VARGRP
             call 'CBL_OC_DUMP' using VARGRP   *> remove me once all is fine
             (1:size-needed) *> FIXME (from rw-branch), shouldn't be needed
      *************************************************************
      * Free the original table and temp copy
      *************************************************************
             FREE VPTR  VPTR2
             SET VPTR TO VPTR2
             .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1041: \$COMPILE -std=ibm-strict -w ALLOC.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=ibm-strict -w ALLOC.cob" "run_extensions.at:1041"
( $at_check_trace; $COMPILE -std=ibm-strict -w ALLOC.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/run_extensions.at:1041"
$at_failed && at_fn_log_failure
$at_traceon; }


# compiler limits ODO-item wrong, merge of rw-branch needed


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1046: \$COBCRUN_DIRECT ./ALLOC"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./ALLOC" "run_extensions.at:1046"
( $at_check_trace; $COBCRUN_DIRECT ./ALLOC
) >>"$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 "First allocation, using 00322 bytes.
VARTAB(12) = \"9999        0000\"
VARTAB(17) = \"0000HI MOM  0000\"
BUFFER     = \"        9999        0000                                \"
             \"                                0000HI MOM  0000        \"
Re-allocation, using 00482 bytes.
VARTAB(12) = \"9999        0000\"
VARTAB(17) = \"0000HI MOM  0000\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1046"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_966
#AT_START_967
at_fn_group_banner 967 'run_extensions.at:1060' \
  "INITIALIZE OCCURS UNBOUNDED" "                    " 4
at_xfail=no
(
  $as_echo "967. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  p            USAGE POINTER.
       01  p2           USAGE POINTER.
       01  dlen         PIC 9(7).

       LINKAGE SECTION.
       01  a-table.
           03  prefix.
               05  n    PIC 9(03)  VALUE 123.
           03  table-data value all "ABCDE".
            04  rows    OCCURS 0 TO UNBOUNDED TIMES
                        DEPENDING ON n.
               05 col1  PIC X.
               05 col2  PIC X(02).

       PROCEDURE DIVISION.
           ALLOCATE LENGTH OF prefix CHARACTERS
                    RETURNING p
           SET ADDRESS OF a-table TO p
           INITIALIZE prefix ALL TO VALUE
           IF FUNCTION LENGTH (a-table) NOT = 372
              DISPLAY 'WRONG LENGTH table: ' FUNCTION LENGTH (a-table)
              END-DISPLAY
           END-IF
           ALLOCATE FUNCTION LENGTH (a-table) CHARACTERS
                    RETURNING p2
           SET ADDRESS OF a-table TO p2
           FREE p

           INITIALIZE prefix ALL TO VALUE

           IF LENGTH OF a-table NOT = 372
              MOVE LENGTH OF a-table TO dlen
              DISPLAY "BAD SIZE: " dlen
           END-DISPLAY

           INITIALIZE table-data (1:FUNCTION LENGTH(rows(1)) * n)
                      ALL TO VALUE
           IF col2(1) NOT = "BC"
              DISPLAY "col2(1) wrong: " col2(1)
              END-DISPLAY
           END-IF
           IF rows(2) NOT = "DEA"
              DISPLAY "rows(2) wrong: " rows(2)
              END-DISPLAY
           END-IF

      *>   check if ref-mod also works as expected
           MOVE ALL ZEROES TO a-table (1: (LENGTH OF a-table))

      *> Test -  should only initialize up to current size, not max:
           INITIALIZE table-data     TO DEFAULT
           INITIALIZE table-data ALL TO VALUE

      *> Test - FUNCTION LENGTH(table-data) must be resolved at run-time
          INITIALIZE table-data (1:FUNCTION LENGTH(table-data))
              ALL TO VALUE
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1127: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:1127"
( $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/run_extensions.at:1127"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1129: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1129"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:1129"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_967
#AT_START_968
at_fn_group_banner 968 'run_extensions.at:1134' \
  "INITIALIZE OCCURS ODOSLIDE" "                     " 4
at_xfail=no
(
  $as_echo "968. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  p            USAGE POINTER.
       01  p2           USAGE POINTER.
       01  dlen         PIC 9(7).
       01  grp-0.
           05   FILLER  PIC X(3).
           05   FLD-0.
              10   FLD-0-1 OCCURS 8193 TIMES.
                15   FLD-0-2 PIC XXX VALUE "XYZ".
                15   FLD-0-3 PIC 99  VALUE 12.
                15   FLD-0-4 PIC XX  VALUE "QQ".
           05   FILLER  PIC X(3).
       01  grp-1.
           05   FILLER  PIC X(3).
           05   FLD-1   PIC X(5) VALUE ALL "ABCDE".
           05   FILLER  PIC X(3).
       01  grp-2.
           05   FILLER  PIC X(3).
           05   FLD-2   PIC X(42) VALUE ALL "ABCD ".
           05   FILLER  PIC X(3).
       01  grp-2a.
           05   FILLER  PIC X(3).
           05   FLD-2A  PIC X(8) VALUE ALL "ABC".
           05   FILLER  PIC X(3).
       01  grp-3.
           05   FILLER  PIC X(3).
           05   FLD-3   OCCURS 3 TIMES
                        VALUE ALL "ABC00XX".
                15   FLD-3-2 PIC XXX.
                15   FLD-3-3 PIC 99.
                15   FLD-3-4 PIC XX.
           05   FILLER  PIC X(3).
       01  grp-4.
           05   FILLER  PIC X(3).
           05   FLD-4.
              10   FLD-4-1 OCCURS 11 TIMES.
                15   FLD-4-2 PIC XX  VALUE "AB".
                15   FLD-4-3 PIC 99  VALUE 12.
                15   FLD-4-4 PIC XX  VALUE "YZ".
           05   FILLER  PIC X(3).

       77  C5    PIC 9(03)  VALUE 6.
       01  grp-5.
           05   FILLER  PIC X(3).
           05   FLD-5.
              10   FLD-5-1 OCCURS 0 TO 9 TIMES
                        DEPENDING ON C5.
                15   FLD-5-2 PIC XXX VALUE "Mon".
                15   FLD-5-3 PIC 99  VALUE 49.
                15   FLD-5-4 PIC XX  VALUE "ey".
           05   FILLER  PIC X(3).

       PROCEDURE DIVISION.
           MOVE ALL "*" TO grp-1.
           INITIALIZE FLD-1 ALL TO VALUE.
           DISPLAY "GRP-1:" grp-1.

           MOVE ALL "*" TO grp-2.
           INITIALIZE FLD-2 ALL TO VALUE.
           DISPLAY "GRP-2:" grp-2.

           MOVE ALL "*" TO grp-3.
           INITIALIZE FLD-3 (1) ALL TO VALUE.
           INITIALIZE FLD-3 (2) ALL TO VALUE.
           INITIALIZE FLD-3 (3) ALL TO VALUE.
           DISPLAY "GRP-3:" grp-3.

           MOVE ALL "*" TO grp-4.
           INITIALIZE FLD-4 ALL TO VALUE.
           DISPLAY "GRP-4:" grp-4.

           MOVE 7       TO c5.
           MOVE ALL "*" TO grp-5.
           INITIALIZE FLD-5 ALL TO VALUE.
           DISPLAY "GRP-5:" grp-5.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1218: \$COMPILE -fodoslide prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fodoslide prog.cob" "run_extensions.at:1218"
( $at_check_trace; $COMPILE -fodoslide 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/run_extensions.at:1218"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1220: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1220"
( $at_check_trace; $COBCRUN_DIRECT ./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 "GRP-1:***ABCDE***
GRP-2:***ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD AB***
GRP-3:***ABC00XXABC00XXABC00XX***
GRP-4:***AB12YZAB12YZAB12YZAB12YZAB12YZAB12YZAB12YZAB12YZAB12YZAB12YZAB12YZ***
GRP-5:***Mon49eyMon49eyMon49eyMon49eyMon49eyMon49eyMon49ey***
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1220"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_968
#AT_START_969
at_fn_group_banner 969 'run_extensions.at:1231' \
  "DEPENDING ON with ODOSLIDE" "                     " 4
at_xfail=no
(
  $as_echo "969. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT FLATFILE
           ASSIGN "SEQODO"
           ORGANIZATION LINE SEQUENTIAL
           FILE STATUS IS CUST-STAT .

       DATA  DIVISION.
       FILE SECTION.
       FD  FLATFILE
           BLOCK CONTAINS 5 RECORDS.

       01  TSTREC.
         05  SEQ           PIC 99.
         05  DEP-X         PIC 99.
         05  DEP-Y         PIC 99.
         05  HELLO         PIC X(5) VALUE 'World'.
         05  TSTGRP.
           10  TSTGRP1.
             15  TSTX OCCURS 1 TO 3 TIMES
                      DEPENDING ON DEP-X.
               20  TSTG-1  PIC Z9.
             15  TSTTAIL1  PIC XXXX.
           10  TSTY-ALL.
             15  TSTY OCCURS 1 TO 3 TIMES
                      DEPENDING ON DEP-X.
               20  TSTY-1  PIC 99.
               20  TSTY-2  PIC XXX.
               20  TSTY-3  PIC X
                             OCCURS 1 TO 12 TIMES
                             DEPENDING ON DEP-Y.
               20  TSTY-4  PIC XX.
               20  TSTY-5    OCCURS 1 TO 3 TIMES
                             DEPENDING ON DEP-X.
                  25  TSTY-6 OCCURS 1 TO 3 TIMES
                             DEPENDING ON DEP-X.
                     30  TSTY-7  PIC X.
           10  TSTTAIL2    PIC XX.

       WORKING-STORAGE SECTION.
       77  CUST-STAT PIC  X(2).
       01  LN        PIC  9(3).
       01  IX        PIC  9(9) BINARY.
       01  IY        PIC  9(9) BINARY.
       01  IZ        PIC  9(9) BINARY.
       01  TSTXXX    PIC  X(26) VALUE "Abcdefghijklmnopqrstuvwxyz".
       01  TSTALPHA REDEFINES TSTXXX.
           05 ALPH-CHR PIC  X OCCURS 26 TIMES.
       01  TSTHEX    PIC  X(15) VALUE "123456789ABCDEF".
       01  FILLER REDEFINES TSTHEX.
           05 HEX-CHR PIC  X OCCURS 15 TIMES.

       01  TSTREC2.
         05  DEP-X2        PIC 99.
         05  TSTGRP2.
             10  TSTX2 OCCURS 1 TO 3 TIMES DEPENDING ON DEP-X2.
               15  TSTG2-1  PIC Z9.
             10  TST2TAIL1  PIC XXX.

       01  TSTREC3.
         05  DEP-X3        PIC 99.
         05  TSTGRP3.
             10  TSTX3 OCCURS 1 TO 6 TIMES DEPENDING ON DEP-X3.
               15  TSTG3-1  PIC 9.
       01  TSTWRK   PIC X(24).

       PROCEDURE DIVISION.
       MAIN-10.
           MOVE 6 TO DEP-X3.
           MOVE 1 TO TSTG3-1 (1).
           MOVE 2 TO TSTG3-1 (2).
           MOVE 3 TO TSTG3-1 (3).
           MOVE 4 TO TSTG3-1 (4).
           MOVE 5 TO TSTG3-1 (5).
           MOVE 6 TO TSTG3-1 (6).
           MOVE 3 TO DEP-X3.
           STRING TSTGRP3 "-TRAILER" DELIMITED BY SIZE
           INTO TSTWRK.
           DISPLAY "'" TSTWRK "'".
           OPEN OUTPUT FLATFILE.
           MOVE "Howdy" TO HELLO.
           MOVE 0 TO SEQ.
           MOVE 2 TO DEP-X.
           MOVE 5 TO DEP-Y.
           PERFORM WRITE-REC.
           MOVE 1 TO DEP-X.
           MOVE 2 TO DEP-Y.
           PERFORM WRITE-REC.
           MOVE 3 TO DEP-X.
           MOVE 3 TO DEP-Y.
           PERFORM WRITE-REC.
           MOVE 3 TO DEP-X.
           MOVE 10 TO DEP-Y.
           PERFORM WRITE-REC.
           CLOSE FLATFILE.
           OPEN INPUT FLATFILE.
           PERFORM READ-REC.
           CLOSE FLATFILE.
           STOP RUN.

       WRITE-REC SECTION.
           ADD 1 TO SEQ.
           MOVE LENGTH OF TSTREC TO LN.
           DISPLAY "Write SEQ " SEQ ", DEP-X = " DEP-X
                   " & DEP-Y = " DEP-Y
                   ", TSTREC len:" LN.
           MOVE ALL "*" TO TSTGRP.
           MOVE "<>"    TO TSTTAIL1, TSTTAIL2.
           PERFORM VARYING IX FROM 1 BY 1
                     UNTIL IX > DEP-X
               MOVE IX TO TSTG-1 (IX)
           END-PERFORM.
           MOVE LENGTH OF TSTGRP1 TO LN.
           DISPLAY "Group1: '" TSTGRP1 "' len:" LN.
           PERFORM VARYING IX FROM 1 BY 1
                     UNTIL IX > DEP-X
               MOVE IX TO TSTY-1 (IX)
               MOVE "." TO TSTY-4 (IX)
               PERFORM VARYING IY FROM 1 BY 1
                         UNTIL IY > DEP-Y
                   MOVE ALPH-CHR (IY) TO TSTY-3 (IX, IY)
               END-PERFORM
           END-PERFORM.
           PERFORM VARYING IX FROM 1 BY 1
                     UNTIL IX > DEP-X
               PERFORM VARYING IY FROM 1 BY 1
                         UNTIL IY > DEP-X
                 PERFORM VARYING IZ FROM 1 BY 1
                           UNTIL IZ > DEP-X
                   MOVE HEX-CHR (IX+IY+IZ) TO TSTY-7 (IX, IY, IZ)
                 END-PERFORM
               END-PERFORM
           END-PERFORM.
           DISPLAY "  Data: '" TSTGRP "'".

           MOVE ALL "*" TO TSTGRP2.
           MOVE DEP-X TO DEP-X2.
           PERFORM VARYING IX FROM 1 BY 1
                     UNTIL IX > DEP-X2
               MOVE IX TO TSTG2-1 (IX)
           END-PERFORM.
           MOVE "<>"    TO TST2TAIL1.
           MOVE LENGTH OF TSTGRP2 TO LN.
           DISPLAY "Group2: '" TSTGRP2 "' len:" LN.
           WRITE TSTREC.

       READ-REC SECTION.
       READ-10.
           READ FLATFILE AT END GO TO READ-99.
           MOVE LENGTH OF TSTREC TO LN.
           DISPLAY "Read SEQ " SEQ ", DEP-X = " DEP-X
                   " & DEP-Y = " DEP-Y
                   ", TSTREC len:" LN.
           DISPLAY "  Data: '" TSTGRP "'".
           GO TO READ-10.
       READ-99.
           EXIT .
_ATEOF


# FIXME: odo-checks (-debug) must be adjusted, either with -fodoslide or with a possibly new
#        compiler configuration flag as IBM seems to only check against the field-founder's
#        bounds, not the subscript (which is the reason to use "$COBC -x" instead of "$COMPILE")
{ set +x
$as_echo "$at_srcdir/run_extensions.at:1401: \$COBC -x -fodoslide prog.cob"
at_fn_check_prepare_dynamic "$COBC -x -fodoslide prog.cob" "run_extensions.at:1401"
( $at_check_trace; $COBC -x -fodoslide 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/run_extensions.at:1401"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1403: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1403"
( $at_check_trace; $COBCRUN_DIRECT ./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-TRAILER             '
Write SEQ 01, DEP-X = 02 & DEP-Y = 05, TSTREC len:053
Group1: ' 1 2<>  ' len:008
  Data: ' 1 2<>  01***Abcde. 344502***Abcde. 4556<>'
Group2: ' 1 2<> ' len:007
Write SEQ 02, DEP-X = 01 & DEP-Y = 02, TSTREC len:029
Group1: ' 1<>  ' len:006
  Data: ' 1<>  01***Ab. 3<>'
Group2: ' 1<> ' len:005
Write SEQ 03, DEP-X = 03 & DEP-Y = 03, TSTREC len:080
Group1: ' 1 2 3<>  ' len:010
  Data: ' 1 2 3<>  01***Abc. 34545656702***Abc. 45656767803***Abc. 567678789<>'
Group2: ' 1 2 3<> ' len:009
Write SEQ 04, DEP-X = 03 & DEP-Y = 10, TSTREC len:101
Group1: ' 1 2 3<>  ' len:010
  Data: ' 1 2 3<>  01***Abcdefghij. 34545656702***Abcdefghij. 45656767803***Abcdefghij. 567678789<>'
Group2: ' 1 2 3<> ' len:009
Read SEQ 01, DEP-X = 02 & DEP-Y = 05, TSTREC len:053
  Data: ' 1 2<>  01***Abcde. 344502***Abcde. 4556<>'
Read SEQ 02, DEP-X = 01 & DEP-Y = 02, TSTREC len:029
  Data: ' 1<>  01***Ab. 3<>'
Read SEQ 03, DEP-X = 03 & DEP-Y = 03, TSTREC len:080
  Data: ' 1 2 3<>  01***Abc. 34545656702***Abc. 45656767803***Abc. 567678789<>'
Read SEQ 04, DEP-X = 03 & DEP-Y = 10, TSTREC len:101
  Data: ' 1 2 3<>  01***Abcdefghij. 34545656702***Abcdefghij. 45656767803***Abcdefghij. 567678789<>'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1403"
$at_failed && at_fn_log_failure
$at_traceon; }





cat >reference <<'_ATEOF'
010205Howdy 1 2<>  01***Abcde. 344502***Abcde. 4556<>
020102Howdy 1<>  01***Ab. 3<>
030303Howdy 1 2 3<>  01***Abc. 34545656702***Abc. 45656767803***Abc. 567678789<>
040310Howdy 1 2 3<>  01***Abcdefghij. 34545656702***Abcdefghij. 45656767803***Abcdefghij. 567678789<>
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1441: diff reference SEQODO"
at_fn_check_prepare_trace "run_extensions.at:1441"
( $at_check_trace; diff reference SEQODO
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1441"
$at_failed && at_fn_log_failure  \
"./SEQODO"
$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_969
#AT_START_970
at_fn_group_banner 970 'run_extensions.at:1446' \
  "DEPENDING ON with ODOSLIDE for IBM" "             " 4
at_xfail=no
(
  $as_echo "970. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  L1-1-2-S    PIC 99.
       01  L1-1-2-1-S  PIC 99.
       01  L1-2-S      PIC 99.
       01  L1-3-S      PIC 99.
       01  L1-3-2-S    PIC 99.
       01  BUFFER      PIC X(370).

       PROCEDURE DIVISION.
           MOVE ALL '0123456789' TO BUFFER.
           MOVE 3 TO L1-1-2-S.
           MOVE 4 TO L1-1-2-1-S.
           MOVE 0 TO L1-2-S.
           MOVE 6 TO L1-3-S.
           MOVE 1 TO L1-3-2-S.
           CALL 'IBM-ODO-TEST' USING BUFFER
                               L1-1-2-S
                               L1-1-2-1-S
                               L1-2-S
                               L1-3-S
                               L1-3-2-S.

           MOVE ALL '0123456789' TO BUFFER.
           MOVE 2 TO L1-1-2-S.
           MOVE 3 TO L1-1-2-1-S.
           MOVE 1 TO L1-2-S.
           MOVE 4 TO L1-3-S.
           MOVE 0 TO L1-3-2-S.
           CALL 'IBM-ODO-TEST' USING BUFFER
                               L1-1-2-S
                               L1-1-2-1-S
                               L1-2-S
                               L1-3-S
                               L1-3-2-S.
           STOP RUN.
           END PROGRAM prog.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. IBM-ODO-TEST.

       DATA DIVISION.
       WORKING-STORAGE SECTION.

       LINKAGE SECTION.
       01  L1-1-2-S    PIC 99.
       01  L1-1-2-1-S  PIC 99.
       01  L1-2-S      PIC 99.
       01  L1-3-S      PIC 99.
       01  L1-3-2-S    PIC 99.
       01 BASE.
         10 ARRAY OCCURS 2 TIMES.
           20 L1-1.
             25 L1-1-1 PIC X(3).
             25 L1-1-2 OCCURS 4 TIMES DEPENDING ON L1-1-2-S.
               30 L1-1-2-1 OCCURS 5 TIMES DEPENDING ON L1-1-2-1-S
                  PIC XXX.
           20 L1-2 OCCURS 0 TO 1 TIMES DEPENDING ON L1-2-S PIC XX.
           20 L1-3 OCCURS 1 TO 10 TIMES DEPENDING ON L1-3-S.
             25 L1-3-1.
               30  L1-3-1-1 PIC X(5).
               30  L1-3-1-2 PIC X.
               30  L1-3-1-3 PIC X(5).
             25 L1-3-2 OCCURS 0 TO 1 TIMES DEPENDING ON L1-3-2-S PIC X.

       PROCEDURE DIVISION USING BASE
                                L1-1-2-S
                                L1-1-2-1-S
                                L1-2-S
                                L1-3-S
                                L1-3-2-S.
           DISPLAY "Length is " LENGTH OF BASE
                   " with " L1-1-2-S
                   ", " L1-1-2-1-S
                   ", " L1-2-S
                   ", " L1-3-S
                   ", " L1-3-2-S.
           MOVE '.'   TO L1-3-2(1, 5, 1).
           MOVE '--'  TO L1-2(2, 1).
           MOVE '+++' TO L1-1-2-1(2, 1, 5).
           DISPLAY '"' BASE '"'.
       END PROGRAM IBM-ODO-TEST.
_ATEOF

# FIXME: odo-checks (-debug) must be adjusted, either with -fodoslide or with a possibly new
#        compiler configuration flag as IBM seems to only check against the field-founder's
#        bounds, not the subscript (which is the reason to use "$COBC -x" instead of "$COMPILE")
{ set +x
$as_echo "$at_srcdir/run_extensions.at:1539: \$COBC -x -std=ibm -fodoslide prog.cob"
at_fn_check_prepare_dynamic "$COBC -x -std=ibm -fodoslide prog.cob" "run_extensions.at:1539"
( $at_check_trace; $COBC -x -std=ibm -fodoslide 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/run_extensions.at:1539"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1541: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1541"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Length is +0000000222 with 03, 04, 00, 06, 01
\"01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567.901234567890123456789012345+++901234567890123456789--2345678901234567890123456789012345678901234567890123456789012345678901\"
Length is +0000000134 with 02, 03, 01, 04, 00
\"012345678901234567890123456789012345678901234567890123456789012345678901234567.901+++567--01234567890123456789012345678901234567890123\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1541"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_970
#AT_START_971
at_fn_group_banner 971 'run_extensions.at:1551' \
  "INITIALIZE level 01" "                            " 4
at_xfail=no
(
  $as_echo "971. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 L1 OCCURS 1000 TIMES.
           05 L2 PIC S9(9) COMP-5 VALUE 5.
           05 L3 PIC S9(9)        VALUE 5.
       PROCEDURE DIVISION.
           IF L2(3) not = 5
              DISPLAY '0 VALUE(3) = ' L2(3)
              END-DISPLAY
           END-IF.
           INITIALIZE L1(1).
           IF L2(1) not = 0
              DISPLAY '1 VALUE(1) = ' L2(1)
              END-DISPLAY
           END-IF.
           IF L2(3) not = 5
              DISPLAY '1 VALUE(3) = ' L2(3)
              END-DISPLAY
           END-IF.
           INITIALIZE L1(1)  DEFAULT.
           IF L2(1) not = 0
              DISPLAY '2 VALUE(1) = ' L2(1)
              END-DISPLAY
           END-IF.
           IF L2(3) not = 5
              DISPLAY '2 VALUE(3) = ' L2(3)
              END-DISPLAY
           END-IF.
           INITIALIZE L1(1)  ALL VALUE.
           IF L2(1) not = 5
              DISPLAY '3 VALUE(1) = ' L2(1)
              END-DISPLAY
           END-IF.
           IF L2(3) not = 5
              DISPLAY '3 VALUE(3) = ' L2(3)
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1597: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:1597"
( $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/run_extensions.at:1597"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1598: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1598"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:1598"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_971
#AT_START_972
at_fn_group_banner 972 'run_extensions.at:1603' \
  "MOVE of non-integer to alphanumeric" "            " 4
at_xfail=no
(
  $as_echo "972. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
        01 INTEGER             PIC 9(4)   VALUE 1289 .
        01 SIGNED-INTEGER      PIC S9(4)  VALUE -1289 .

        01 ALPHA-FIELD         PIC X(4).

        01 NON-INTEGER           PIC 9(2)V99   VALUE 12.89 .
        01 NON-INTEGER-2         PIC 9(2)V99
                                     USAGE BINARY VALUE 12.89 .
        01 NON-INTEGER-3         PIC 9(2)V99
                                      USAGE PACKED-DECIMAL VALUE 12.89 .
        01 SIGNED-NON-INTEGER    PIC S9(2)V99   VALUE -12.89 .
        01 SIGNED-NON-INTEGER-2  PIC S9(2)V99
                                     USAGE BINARY VALUE -12.89 .
        01 SIGNED-NON-INTEGER-3  PIC S9(2)V99
                                     USAGE PACKED-DECIMAL VALUE -12.89 .

       PROCEDURE        DIVISION.
*     *    MOVE NON-INTEGER TO ALPHA-NUMERIC --> ignore Decimal Point!
       S-01.
          MOVE SPACES TO ALPHA-FIELD.
          MOVE INTEGER TO ALPHA-FIELD.
          DISPLAY  ALPHA-FIELD NO ADVANCING
          END-DISPLAY.
       S-02.
          MOVE SPACES TO ALPHA-FIELD.
          MOVE SIGNED-INTEGER TO ALPHA-FIELD.
          DISPLAY  ALPHA-FIELD NO ADVANCING
          END-DISPLAY.
       S-03.
          MOVE SPACES TO ALPHA-FIELD.
          MOVE NON-INTEGER TO ALPHA-FIELD.
          DISPLAY  ALPHA-FIELD NO ADVANCING
          END-DISPLAY.
       S-10.
          MOVE SPACES TO ALPHA-FIELD.
          MOVE NON-INTEGER-2 TO ALPHA-FIELD.
          DISPLAY  ALPHA-FIELD NO ADVANCING
          END-DISPLAY.
       S-20.
          MOVE SPACES TO ALPHA-FIELD.
          MOVE NON-INTEGER-3 TO ALPHA-FIELD.
          DISPLAY  ALPHA-FIELD NO ADVANCING
          END-DISPLAY.
       S-30.
          MOVE SPACES TO ALPHA-FIELD.
          MOVE SIGNED-NON-INTEGER TO ALPHA-FIELD.
          DISPLAY  ALPHA-FIELD NO ADVANCING
          END-DISPLAY.
       S-40.
          MOVE SPACES TO ALPHA-FIELD.
          MOVE SIGNED-NON-INTEGER-2 TO ALPHA-FIELD.
          DISPLAY  ALPHA-FIELD NO ADVANCING
          END-DISPLAY.
       S-50.
          MOVE SPACES TO ALPHA-FIELD.
          MOVE SIGNED-NON-INTEGER-3 TO ALPHA-FIELD.
          DISPLAY  ALPHA-FIELD NO ADVANCING
          END-DISPLAY.

          STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1673: \$COMPILE -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_extensions.at:1673"
( $at_check_trace; $COMPILE -std=mf 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:36: warning: MOVE of non-integer to alphanumeric
prog.cob: in paragraph 'S-10':
prog.cob:41: warning: MOVE of non-integer to alphanumeric
prog.cob: in paragraph 'S-20':
prog.cob:46: warning: MOVE of non-integer to alphanumeric
prog.cob: in paragraph 'S-30':
prog.cob:51: warning: MOVE of non-integer to alphanumeric
prog.cob: in paragraph 'S-40':
prog.cob:56: warning: MOVE of non-integer to alphanumeric
prog.cob: in paragraph 'S-50':
prog.cob:61: warning: MOVE of non-integer to alphanumeric
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1673"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1687: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1687"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:1687"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_972
#AT_START_973
at_fn_group_banner 973 'run_extensions.at:1693' \
  "CALL USING file-name" "                           " 4
at_xfail=no
(
  $as_echo "973. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >setfilename.c <<'_ATEOF'

#include <stdio.h>
#include <string.h>
#include <libcob.h>

COB_EXT_EXPORT int
setfilename (cob_file *f, unsigned char *name)
{
  memcpy (f->assign->data, name, strlen ((char *)name));
  return 0;
}
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN FILENAME.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       WORKING-STORAGE  SECTION.
       01 FILENAME      PIC X(8).
       PROCEDURE        DIVISION.
           INITIALIZE FILENAME.
           CALL "setfilename" USING TEST-FILE "TESTFILE"
           END-CALL.
           OPEN OUTPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1731: \$COMPILE_MODULE setfilename.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE setfilename.c" "run_extensions.at:1731"
( $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/run_extensions.at:1731"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1732: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:1732"
( $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/run_extensions.at:1732"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1733: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1733"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:1733"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1734: test -e TESTFILE"
at_fn_check_prepare_trace "run_extensions.at:1734"
( $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/run_extensions.at:1734"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_973
#AT_START_974
at_fn_group_banner 974 'run_extensions.at:1738' \
  "CALL unusual PROGRAM-ID." "                       " 4
at_xfail=no
(
  $as_echo "974. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >A@B.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      "A@B".
       PROCEDURE        DIVISION.
           DISPLAY "P1" NO ADVANCING
           END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


cat >A#B.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      "A#B".
       PROCEDURE        DIVISION.
           DISPLAY "P2" NO ADVANCING
           END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


cat >A-B.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      "A-B".
       PROCEDURE        DIVISION.
           DISPLAY "P3" NO ADVANCING
           END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


cat >A_B.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      "A_B".
       PROCEDURE        DIVISION.
           DISPLAY "P4" NO ADVANCING
           END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL "A@B"
           END-CALL.
           CALL "A#B"
           END-CALL.
           CALL "A-B"
           END-CALL.
           CALL "A_B"
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1792: \$COMPILE_MODULE A@B.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE A@B.cob" "run_extensions.at:1792"
( $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/run_extensions.at:1792"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1793: \$COMPILE_MODULE A#B.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE A#B.cob" "run_extensions.at:1793"
( $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/run_extensions.at:1793"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1794: \$COMPILE_MODULE A-B.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE A-B.cob" "run_extensions.at:1794"
( $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/run_extensions.at:1794"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1795: \$COMPILE_MODULE A_B.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE A_B.cob" "run_extensions.at:1795"
( $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/run_extensions.at:1795"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1796: \$COMPILE -o caller caller.cob"
at_fn_check_prepare_dynamic "$COMPILE -o caller caller.cob" "run_extensions.at:1796"
( $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/run_extensions.at:1796"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1798: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:1798"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:1798"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_974
#AT_START_975
at_fn_group_banner 975 'run_extensions.at:1802' \
  "CALL / GOBACK with LOCAL-STORAGE" "               " 4
at_xfail=no
(
  $as_echo "975. $at_setup_line: testing $at_desc ..."
  $at_traceon



# Testcase introduced when Bug #91 occurred.
# Will fail if memory is freed which was
# allocated by mpir/gmp.
cat >prog_a.cob <<'_ATEOF'

		IDENTIFICATION DIVISION.
		PROGRAM-ID. prog_a.
		DATA DIVISION.
		WORKING-STORAGE SECTION.
		77  WS-STRINGA   PIC X(10).
		PROCEDURE DIVISION.
		    MOVE  "hi there"   TO WS-STRINGA
		    CALL  "prog_b"  USING WS-STRINGA
		    DISPLAY "back in prog_a"
		    GOBACK.
_ATEOF


cat >prog_b.cob <<'_ATEOF'

		IDENTIFICATION DIVISION.
		PROGRAM-ID. prog_b.
		DATA DIVISION.
		WORKING-STORAGE SECTION.
		77  WS-STRINGB   PIC X(10).
		77  WS-CALLSB    PIC 9(03).
		LOCAL-STORAGE SECTION.
		77  LS-STRING  PIC X(10).
		LINKAGE SECTION.
		77  LK-STRING  PIC X(10).

		PROCEDURE DIVISION  USING  LK-STRING.
		    DISPLAY "entered prog_b"
		    ADD   1  TO  WS-CALLSB
		    MOVE  LK-STRING TO WS-STRINGB
		    MOVE  LK-STRING TO LS-STRING
		    DISPLAY "exiting prog_b"
		    GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1842: \$COMPILE prog_a.cob"
at_fn_check_prepare_dynamic "$COMPILE prog_a.cob" "run_extensions.at:1842"
( $at_check_trace; $COMPILE prog_a.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/run_extensions.at:1842"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1843: \$COMPILE_MODULE prog_b.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE prog_b.cob" "run_extensions.at:1843"
( $at_check_trace; $COMPILE_MODULE prog_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/run_extensions.at:1843"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1844: \$COBCRUN_DIRECT ./prog_a"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog_a" "run_extensions.at:1844"
( $at_check_trace; $COBCRUN_DIRECT ./prog_a
) >>"$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 "entered prog_b
exiting prog_b
back in prog_a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1844"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_975
#AT_START_976
at_fn_group_banner 976 'run_extensions.at:1852' \
  "CALL BY VALUE alphanumeric item" "                " 4
at_xfail=no
(
  $as_echo "976. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC XX VALUE "OK".
       PROCEDURE        DIVISION.
           CALL "prog2" USING BY VALUE X
           END-CALL.
           IF X NOT = "OK"
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01  Y            PIC XX.
       PROCEDURE        DIVISION USING BY VALUE Y.
           MOVE "KO" TO Y.
           EXIT PROGRAM.
       END PROGRAM prog2.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1880: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:1880"
( $at_check_trace; $COMPILE 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: BY CONTENT assumed for alphanumeric item 'X'
prog.cob:19: warning: handling of parameters passed BY VALUE is unfinished; implementation is likely to be changed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1880"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:1884: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1884"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:1884"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_976
#AT_START_977
at_fn_group_banner 977 'run_extensions.at:1889' \
  "CALL BY VALUE numeric literal WITH SIZE" "        " 4
at_xfail=no
(
  $as_echo "977. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           *> Test of auto size, identical to SIZE AUTO
           CALL "prog2" USING BY VALUE 4 0 0 1 0
           END-CALL

           *> Test of explicit SIZE syntax
           CALL "prog2" USING BY VALUE 1 SIZE 1 2 0 0 0
           END-CALL
           CALL "prog2" USING BY VALUE 2 0 SIZE 2 3 0 0
           END-CALL
           CALL "prog2" USING BY VALUE 4 0 0 SIZE 4 4 0
           END-CALL
           CALL "prog2" USING BY VALUE 8 0 0 0 SIZE 8 5
           END-CALL
           CALL "prog2" USING BY VALUE 4 0 0 SIZE DEFAULT 6 0
           END-CALL
           CALL "prog2" USING BY VALUE 4 0 0 SIZE AUTO    7 0
           END-CALL
           *> test for SIZE AUTO with VALUE > INT_MAX is non-portable

           *> Test of explicit UNSIGNED SIZE syntax
           CALL "prog2" USING BY VALUE 1 UNSIGNED SIZE 1 2 0 0 0
           END-CALL
           CALL "prog2" USING BY VALUE 2 0 UNSIGNED SIZE 2 3 0 0
           END-CALL
           CALL "prog2" USING BY VALUE 4 0 0 UNSIGNED SIZE 4 4 0
           END-CALL
           CALL "prog2" USING BY VALUE 8 0 0 0 UNSIGNED SIZE 8 5 0
           END-CALL
           CALL "prog2" USING BY VALUE 4 0 0 UNSIGNED SIZE AUTO 6 0
           END-CALL
           *> test for SIZE AUTO with VALUE > INT_MAX is non-portable

           *> Test of MF size syntax
           *>CALL "prog2" USING BY VALUE 2 SIZE 1
           *>END-CALL
           *>CALL "prog2" USING BY VALUE 3 SIZE 2
           *>END-CALL
           *>CALL "prog2" USING BY VALUE 4 SIZE 4
           *>END-CALL
           *>CALL "prog2" USING BY VALUE 5 SIZE 8
           *>END-CALL

           STOP RUN.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01  LEN          USAGE BINARY-LONG.
       01  VAR-1        USAGE BINARY-CHAR.
       01  VAR-2        USAGE BINARY-SHORT.
       01  VAR-4        USAGE BINARY-LONG.
       01  VAR-8        USAGE BINARY-DOUBLE.
       PROCEDURE        DIVISION USING BY VALUE LEN
                                                SIZE 1 VAR-1
                                                SIZE 2 VAR-2
                                                SIZE 4 VAR-4
                                                SIZE 8 VAR-8.
           EVALUATE len
              WHEN 1
                 DISPLAY '1: ' VAR-1 END-DISPLAY
              WHEN 2
                 DISPLAY '2: ' VAR-2 END-DISPLAY
              WHEN 4
                 DISPLAY '4: ' VAR-4 END-DISPLAY
              WHEN 8
                 DISPLAY '8: ' VAR-8 END-DISPLAY
           END-EVALUATE
           EXIT PROGRAM.
       END PROGRAM prog2.
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:1969: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:1969"
( $at_check_trace; $COMPILE prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1969"
$at_failed && at_fn_log_failure
$at_traceon; }

#AT_CHECK([$COMPILE prog.cob], [0], [],
# hack for now: ignore
#[prog.cob:58: warning: handling of parameters passed BY VALUE is unfinished; implementation is likely to be changed
#])
{ set +x
$as_echo "$at_srcdir/run_extensions.at:1974: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:1974"
( $at_check_trace; $COBCRUN_DIRECT ./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 "4: +0000000001
1: +002
2: +00003
4: +0000000004
8: +00000000000000000005
4: +0000000006
4: +0000000007
1: +002
2: +00003
4: +0000000004
8: +00000000000000000005
4: +0000000006
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:1974"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_977
#AT_START_978
at_fn_group_banner 978 'run_extensions.at:1993' \
  "Case-sensitive PROGRAM-ID" "                      " 4
at_xfail=no
(
  $as_echo "978. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      PROG.
       PROCEDURE        DIVISION.
           CALL "prog"
           END-CALL.
           STOP RUN.
       PROGRAM-ID.      prog.
       PROCEDURE        DIVISION.
           EXIT PROGRAM.
       END PROGRAM prog.
       END PROGRAM PROG.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2010: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2010"
( $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/run_extensions.at:2010"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2011: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2011"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:2011"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_978
#AT_START_979
at_fn_group_banner 979 'run_extensions.at:2018' \
  "Quoted PROGRAM-ID" "                              " 4
at_xfail=no
(
  $as_echo "979. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      "caller".
       PROCEDURE        DIVISION.
           CALL "callee"
           END-CALL.
           STOP RUN.
       PROGRAM-ID.      "callee".
       PROCEDURE        DIVISION.
           EXIT PROGRAM.
       END PROGRAM callee.
       END PROGRAM caller.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2035: \$COMPILE -w prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -w prog.cob" "run_extensions.at:2035"
( $at_check_trace; $COMPILE -w 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/run_extensions.at:2035"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2036: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2036"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:2036"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_979
#AT_START_980
at_fn_group_banner 980 'run_extensions.at:2041' \
  "PROGRAM-ID AS clause" "                           " 4
at_xfail=no
(
  $as_echo "980. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller AS "PROG".
       PROCEDURE        DIVISION.
           CALL "prog"
           END-CALL.
           STOP RUN.
       PROGRAM-ID.      callee AS "prog".
       PROCEDURE        DIVISION.
           EXIT PROGRAM.
       END PROGRAM callee.
       END PROGRAM caller.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2058: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2058"
( $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/run_extensions.at:2058"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2059: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2059"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:2059"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_980
#AT_START_981
at_fn_group_banner 981 'run_extensions.at:2065' \
  "ASSIGN DYNAMIC and EXTERNAL" "                    " 4
at_xfail=no
(
  $as_echo "981. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN whatever
               ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  f-rec PIC XXX.

       WORKING-STORAGE SECTION.
       01  whatever PIC X(10) VALUE "out.txt".

       PROCEDURE DIVISION.
           OPEN OUTPUT f
           WRITE f-rec FROM "hi"
           CLOSE f
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2093: \$COMPILE -fassign-clause=external prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fassign-clause=external prog.cob" "run_extensions.at:2093"
( $at_check_trace; $COMPILE -fassign-clause=external 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/run_extensions.at:2093"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2094: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2094"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:2094"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >reference <<'_ATEOF'
hi
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2099: diff reference whatever"
at_fn_check_prepare_trace "run_extensions.at:2099"
( $at_check_trace; diff reference whatever
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2099"
$at_failed && at_fn_log_failure  \
"./whatever"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2101: \$COMPILE -fassign-clause=dynamic -fno-implicit-assign-dynamic-var prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fassign-clause=dynamic -fno-implicit-assign-dynamic-var prog.cob" "run_extensions.at:2101"
( $at_check_trace; $COMPILE -fassign-clause=dynamic -fno-implicit-assign-dynamic-var 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/run_extensions.at:2101"
$at_failed && at_fn_log_failure  \
"./whatever"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2102: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2102"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:2102"
$at_failed && at_fn_log_failure  \
"./whatever"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2104: diff reference whatever"
at_fn_check_prepare_trace "run_extensions.at:2104"
( $at_check_trace; diff reference whatever
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2104"
$at_failed && at_fn_log_failure  \
"./whatever"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2106: \$COMPILE -fassign-clause=dynamic prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fassign-clause=dynamic prog.cob" "run_extensions.at:2106"
( $at_check_trace; $COMPILE -fassign-clause=dynamic 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/run_extensions.at:2106"
$at_failed && at_fn_log_failure  \
"./whatever"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2107: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2107"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:2107"
$at_failed && at_fn_log_failure  \
"./whatever"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2109: diff reference out.txt"
at_fn_check_prepare_trace "run_extensions.at:2109"
( $at_check_trace; diff reference out.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2109"
$at_failed && at_fn_log_failure  \
"./whatever" \
"./out.txt"
$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_981
#AT_START_982
at_fn_group_banner 982 'run_extensions.at:2114' \
  "ASSIGN DYNAMIC implicit variable" "               " 4
at_xfail=no
(
  $as_echo "982. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN whatever
               ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  f-rec PIC XXX.

       PROCEDURE DIVISION.
           MOVE "out.txt" TO whatever
           OPEN OUTPUT f
           WRITE f-rec FROM "hi"
           CLOSE f
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2140: \$COMPILE -fassign-clause=dynamic prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fassign-clause=dynamic prog.cob" "run_extensions.at:2140"
( $at_check_trace; $COMPILE -fassign-clause=dynamic prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:16: warning: variable 'whatever' 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/run_extensions.at:2140"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_982
#AT_START_983
at_fn_group_banner 983 'run_extensions.at:2146' \
  "ASSIGN EXTERNAL parsing" "                        " 4
at_xfail=no
(
  $as_echo "983. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
           *> Labels should be removed from EXTERNAL name.
           SELECT TEST-FILE   ASSIGN DA-S-FILENAME.
           *> EXTERNAL name allowed to duplicate FD name.
           SELECT TESTFILE2 ASSIGN TESTFILE2.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       FD TESTFILE2.
       01 TESTREC2      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN OUTPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2171: \$COMPILE -fassign-clause=external prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fassign-clause=external prog.cob" "run_extensions.at:2171"
( $at_check_trace; $COMPILE -fassign-clause=external 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: ASSIGN DA-S-FILENAME interpreted as 'FILENAME'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2171"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2174: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2174"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:2174"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2175: test -f FILENAME"
at_fn_check_prepare_trace "run_extensions.at:2175"
( $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/run_extensions.at:2175"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_983
#AT_START_984
at_fn_group_banner 984 'run_extensions.at:2180' \
  "ASSIGN directive" "                               " 4
at_xfail=no
(
  $as_echo "984. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT f ASSIGN whatever
               ORGANIZATION LINE SEQUENTIAL.
      $SET ASSIGN "EXTERNAL"
           SELECT g ASSIGN whatever
               ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD  f.
       01  f-rec PIC XXX.
       FD  g.
       01  g-rec PIC XXX.

       PROCEDURE DIVISION.
           MOVE "out.txt" TO whatever

           OPEN OUTPUT f
           WRITE f-rec FROM "hi"
           CLOSE f

           OPEN OUTPUT g
           WRITE g-rec FROM "hi"
           CLOSE g
           .
       END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2217: \$COMPILE -fassign-clause=dynamic prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fassign-clause=dynamic prog.cob" "run_extensions.at:2217"
( $at_check_trace; $COMPILE -fassign-clause=dynamic prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog.cob:21: warning: variable 'whatever' 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/run_extensions.at:2217"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2220: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2220"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:2220"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_984
#AT_START_985
at_fn_group_banner 985 'run_extensions.at:2225' \
  "ASSIGN expansion" "                               " 4
at_xfail=no
(
  $as_echo "985. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN "$DIR/FILENAME".
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN OUTPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2245: \$COMPILE -ffilename-mapping prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -ffilename-mapping prog.cob" "run_extensions.at:2245"
( $at_check_trace; $COMPILE -ffilename-mapping 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/run_extensions.at:2245"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2246: DIR=\".\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DIR=\".\" $COBCRUN_DIRECT ./prog" "run_extensions.at:2246"
( $at_check_trace; DIR="." $COBCRUN_DIRECT ./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/run_extensions.at:2246"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2247: test -f \"./FILENAME\" && rm -f \"./FILENAME\""
at_fn_check_prepare_trace "run_extensions.at:2247"
( $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/run_extensions.at:2247"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_985
#AT_START_986
at_fn_group_banner 986 'run_extensions.at:2251' \
  "ASSIGN mapping" "                                 " 4
at_xfail=no
(
  $as_echo "986. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN "FILENAME".
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN OUTPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN "FILENAME2".
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN OUTPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2288: \$COMPILE -fno-filename-mapping prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fno-filename-mapping prog.cob" "run_extensions.at:2288"
( $at_check_trace; $COMPILE -fno-filename-mapping 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/run_extensions.at:2288"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2289: DD_FILENAME=\"x\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "DD_FILENAME=\"x\" $COBCRUN_DIRECT ./prog" "run_extensions.at:2289"
( $at_check_trace; DD_FILENAME="x" $COBCRUN_DIRECT ./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/run_extensions.at:2289"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2290: test -f \"x\""
at_fn_check_prepare_trace "run_extensions.at:2290"
( $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 1 $at_status "$at_srcdir/run_extensions.at:2290"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2291: test -f \"FILENAME\""
at_fn_check_prepare_trace "run_extensions.at:2291"
( $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/run_extensions.at:2291"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2293: \$COMPILE -ffilename-mapping prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE -ffilename-mapping prog2.cob" "run_extensions.at:2293"
( $at_check_trace; $COMPILE -ffilename-mapping prog2.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/run_extensions.at:2293"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2294: DD_FILENAME2=\"x\" \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "DD_FILENAME2=\"x\" $COBCRUN_DIRECT ./prog2" "run_extensions.at:2294"
( $at_check_trace; DD_FILENAME2="x" $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2294"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2295: test -f \"FILENAME2\""
at_fn_check_prepare_trace "run_extensions.at:2295"
( $at_check_trace; test -f "FILENAME2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=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/run_extensions.at:2295"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2296: test -f \"x\""
at_fn_check_prepare_trace "run_extensions.at:2296"
( $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/run_extensions.at:2296"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2297: dd_FILENAME2=\"y\" \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "dd_FILENAME2=\"y\" $COBCRUN_DIRECT ./prog2" "run_extensions.at:2297"
( $at_check_trace; dd_FILENAME2="y" $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2297"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2298: test -f \"y\""
at_fn_check_prepare_trace "run_extensions.at:2298"
( $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/run_extensions.at:2298"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2299: FILENAME2=\"z\" \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "FILENAME2=\"z\" $COBCRUN_DIRECT ./prog2" "run_extensions.at:2299"
( $at_check_trace; FILENAME2="z" $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2299"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2300: test -f \"z\""
at_fn_check_prepare_trace "run_extensions.at:2300"
( $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/run_extensions.at:2300"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2301: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_extensions.at:2301"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2301"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2302: test -f \"FILENAME2\""
at_fn_check_prepare_trace "run_extensions.at:2302"
( $at_check_trace; test -f "FILENAME2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2302"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog3.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT OPTIONAL INFILE ASSIGN TO "MYFILE"
                ORGANIZATION IS RELATIVE
                ACCESS IS SEQUENTIAL
                FILE STATUS IS WSFS.
       DATA DIVISION.
       FILE SECTION.
       FD  INFILE.
       01  INREC             PIC X(80).
       WORKING-STORAGE SECTION.
       01  WSFS              PIC X(2).
       PROCEDURE DIVISION.
      *
      *    open missing file
           OPEN INPUT INFILE
           DISPLAY "STATUS OPENI " WSFS
           CLOSE INFILE
      *
      *    create missing file
           OPEN OUTPUT INFILE
           DISPLAY "STATUS OPENO " WSFS
           CLOSE INFILE
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2336: \$COMPILE prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE prog3.cob" "run_extensions.at:2336"
( $at_check_trace; $COMPILE prog3.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/run_extensions.at:2336"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2338: \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_extensions.at:2338"
( $at_check_trace; $COBCRUN_DIRECT ./prog3
) >>"$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 "STATUS OPENI 05
STATUS OPENO 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2338"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2342: test -f \"MYFILE\""
at_fn_check_prepare_trace "run_extensions.at:2342"
( $at_check_trace; test -f "MYFILE"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2342"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2344: \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_extensions.at:2344"
( $at_check_trace; $COBCRUN_DIRECT ./prog3
) >>"$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 "STATUS OPENI 00
STATUS OPENO 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2344"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2349: MYFILE=\"TSTFILE\" \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "MYFILE=\"TSTFILE\" $COBCRUN_DIRECT ./prog3" "run_extensions.at:2349"
( $at_check_trace; MYFILE="TSTFILE" $COBCRUN_DIRECT ./prog3
) >>"$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 "STATUS OPENI 05
STATUS OPENO 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2349"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2353: test -f \"TSTFILE\""
at_fn_check_prepare_trace "run_extensions.at:2353"
( $at_check_trace; test -f "TSTFILE"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2353"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2355: dd_MYFILE=\"TSTFILE2\" \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "dd_MYFILE=\"TSTFILE2\" $COBCRUN_DIRECT ./prog3" "run_extensions.at:2355"
( $at_check_trace; dd_MYFILE="TSTFILE2" $COBCRUN_DIRECT ./prog3
) >>"$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 "STATUS OPENI 05
STATUS OPENO 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2355"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2359: test -f \"TSTFILE2\""
at_fn_check_prepare_trace "run_extensions.at:2359"
( $at_check_trace; test -f "TSTFILE2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2359"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2361: DD_MYFILE=\"TSTFILE3\" \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "DD_MYFILE=\"TSTFILE3\" $COBCRUN_DIRECT ./prog3" "run_extensions.at:2361"
( $at_check_trace; DD_MYFILE="TSTFILE3" $COBCRUN_DIRECT ./prog3
) >>"$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 "STATUS OPENI 05
STATUS OPENO 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2361"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2365: test -f \"TSTFILE3\""
at_fn_check_prepare_trace "run_extensions.at:2365"
( $at_check_trace; test -f "TSTFILE3"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2365"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2367: DD_MYFILE=\"./nosubhere/TSTFILE\" \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "DD_MYFILE=\"./nosubhere/TSTFILE\" $COBCRUN_DIRECT ./prog3" "run_extensions.at:2367"
( $at_check_trace; DD_MYFILE="./nosubhere/TSTFILE" $COBCRUN_DIRECT ./prog3
) >>"$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 "STATUS OPENI 05
STATUS OPENO 30
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2367"
$at_failed && at_fn_log_failure
$at_traceon; }


cat >prog4.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog4.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT  FILE0 ASSIGN  TO "./nosubhere/MYFILE0"
                   ORGANIZATION  IS LINE SEQUENTIAL
                   FILE STATUS   IS WSFS.
           SELECT  FILE1 ASSIGN  TO "MYFILE1"
                   ORGANIZATION  IS LINE SEQUENTIAL
                   FILE STATUS   IS WSFS.
           SELECT  FILE2 ASSIGN  TO FILENAME
                   ORGANIZATION  IS LINE SEQUENTIAL
                   FILE STATUS   IS WSFS.
       DATA DIVISION.
       FILE SECTION.
       FD  FILE0.
       01  F0REC             PIC X(80).
       FD  FILE1.
       01  F1REC             PIC X(80).
       FD  FILE2.
       01  F2REC             PIC X(80).
       WORKING-STORAGE SECTION.
       77  FILENAME          PIC X(80) VALUE "MYFILE2".
       01  WSFS              PIC X(2).
       PROCEDURE DIVISION.
      *
           OPEN OUTPUT FILE0
           DISPLAY "STATUS OPENO 0 " WSFS
           OPEN OUTPUT FILE1
           DISPLAY "STATUS OPENO 1 " WSFS
           OPEN OUTPUT FILE2
           DISPLAY "STATUS OPENO 2 " WSFS
      *
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2411: \$COMPILE prog4.cob"
at_fn_check_prepare_dynamic "$COMPILE prog4.cob" "run_extensions.at:2411"
( $at_check_trace; $COMPILE prog4.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/run_extensions.at:2411"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2413: DD_MYFILE1=\"./nosubhere/NOFILE1\" DD_MYFILE2=\"./nosubhere/NOFILE2\" \\
\$COBCRUN_DIRECT ./prog4"
at_fn_check_prepare_notrace 'an embedded newline' "run_extensions.at:2413"
( $at_check_trace; DD_MYFILE1="./nosubhere/NOFILE1" DD_MYFILE2="./nosubhere/NOFILE2" \
$COBCRUN_DIRECT ./prog4
) >>"$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 "STATUS OPENO 0 30
STATUS OPENO 1 30
STATUS OPENO 2 30
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2413"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_986
#AT_START_987
at_fn_group_banner 987 'run_extensions.at:2423' \
  "ASSIGN with COB_FILE_PATH" "                      " 4
at_xfail=no
(
  $as_echo "987. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN "FILENAMEX".
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN OUTPUT TEST-FILE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2443: \$COMPILE -ffilename-mapping prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -ffilename-mapping prog.cob" "run_extensions.at:2443"
( $at_check_trace; $COMPILE -ffilename-mapping 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/run_extensions.at:2443"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2444: rm -rf \"tstdir\" && mkdir \"tstdir\""
at_fn_check_prepare_trace "run_extensions.at:2444"
( $at_check_trace; rm -rf "tstdir" && mkdir "tstdir"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2444"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2445: COB_FILE_PATH=\"tstdir\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_FILE_PATH=\"tstdir\" $COBCRUN_DIRECT ./prog" "run_extensions.at:2445"
( $at_check_trace; COB_FILE_PATH="tstdir" $COBCRUN_DIRECT ./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/run_extensions.at:2445"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2446: test -f \"tstdir/FILENAMEX\" && rm -f \"tstdir/FILENAMEX\""
at_fn_check_prepare_trace "run_extensions.at:2446"
( $at_check_trace; test -f "tstdir/FILENAMEX" && rm -f "tstdir/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/run_extensions.at:2446"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2447: COB_FILE_PATH=\"tstdir/\" \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "COB_FILE_PATH=\"tstdir/\" $COBCRUN_DIRECT ./prog" "run_extensions.at:2447"
( $at_check_trace; COB_FILE_PATH="tstdir/" $COBCRUN_DIRECT ./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/run_extensions.at:2447"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2448: test -f \"tstdir/FILENAMEX\""
at_fn_check_prepare_trace "run_extensions.at:2448"
( $at_check_trace; test -f "tstdir/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/run_extensions.at:2448"
$at_failed && at_fn_log_failure
$at_traceon; }


# FIXME: on OPEN we should also output the full filename (if any) leading to the error
{ set +x
$as_echo "$at_srcdir/run_extensions.at:2451: COB_FILE_PATH=\"./nosubhere\" \$COBCRUN_DIRECT ./prog 2>prog.err"
at_fn_check_prepare_dynamic "COB_FILE_PATH=\"./nosubhere\" $COBCRUN_DIRECT ./prog 2>prog.err" "run_extensions.at:2451"
( $at_check_trace; COB_FILE_PATH="./nosubhere" $COBCRUN_DIRECT ./prog 2>prog.err
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=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/run_extensions.at:2451"
$at_failed && at_fn_log_failure
$at_traceon; }

# workaround for testing windows-builds...
{ set +x
$as_echo "$at_srcdir/run_extensions.at:2453: cat prog.err | tr '\\\\' '/'"
at_fn_check_prepare_notrace 'a shell pipeline' "run_extensions.at:2453"
( $at_check_trace; cat prog.err | tr '\\' '/'
) >>"$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 "libcob: prog.cob:13: error: permanent file error (status = 30) for file TEST-FILE ('FILENAMEX' => ./nosubhere/FILENAMEX) on OPEN
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2453"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_987
#AT_START_988
at_fn_group_banner 988 'run_extensions.at:2460' \
  "NUMBER-OF-CALL-PARAMETERS" "                      " 4
at_xfail=no
(
  $as_echo "988. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 W             PIC X.
       01 X             PIC X.
       01 Y             PIC X.
       01 Z             PIC X.
       PROCEDURE        DIVISION
           USING W X Y Z.
           DISPLAY NUMBER-OF-CALL-PARAMETERS
           END-DISPLAY.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 W             PIC X.
       01 X             PIC X.
       01 Y             PIC X.
       01 Z             PIC X.
       PROCEDURE        DIVISION.
           CALL "callee"
           END-CALL.
           CALL "callee" USING W
           END-CALL.
           CALL "callee" USING W X
           END-CALL.
           CALL "callee" USING W X Y
           END-CALL.
           CALL "callee" USING W X Y Z
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2502: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:2502"
( $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/run_extensions.at:2502"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2503: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_extensions.at:2503"
( $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/run_extensions.at:2503"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2504: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:2504"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2504"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_988
#AT_START_989
at_fn_group_banner 989 'run_extensions.at:2515' \
  "TALLY register" "                                 " 4
at_xfail=no
(
  $as_echo "989. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       PROCEDURE        DIVISION.
           ADD 1 TO TALLY END-ADD
           CALL "nested" END-CALL
           STOP RUN.

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      nested.
       PROCEDURE        DIVISION.
           DISPLAY tally END-DISPLAY
           STOP RUN.
       END PROGRAM      nested.
_ATEOF


#FIXME: Should get a dialect check in syntax checks,
#       along with all other special registers
{ set +x
$as_echo "$at_srcdir/run_extensions.at:2536: \$COMPILE_ONLY -fnot-register=TALLY prog.cob"
at_fn_check_prepare_dynamic "$COMPILE_ONLY -fnot-register=TALLY prog.cob" "run_extensions.at:2536"
( $at_check_trace; $COMPILE_ONLY -fnot-register=TALLY 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: 'TALLY' is not defined
prog.cob:12: error: 'tally' is not defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:2536"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2541: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2541"
( $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/run_extensions.at:2541"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2542: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2542"
( $at_check_trace; $COBCRUN_DIRECT ./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 "00001
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2542"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_989
#AT_START_990
at_fn_group_banner 990 'run_extensions.at:2549' \
  "Redefining TALLY" "                               " 4
at_xfail=no
(
  $as_echo "990. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  tally PIC 999 VALUE 1.

       PROCEDURE DIVISION.
           ADD 1 TO tally
           DISPLAY tally UPON SYSOUT
           .
_ATEOF



#FIXME: Should get a dialect check in syntax checks,
#       along with all other special registers
{ set +x
$as_echo "$at_srcdir/run_extensions.at:2569: \$COMPILE -std=ibm-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=ibm-strict prog.cob" "run_extensions.at:2569"
( $at_check_trace; $COMPILE -std=ibm-strict prog.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:2569"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2570: \$COMPILE -std=acu-strict prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=acu-strict prog.cob" "run_extensions.at:2570"
( $at_check_trace; $COMPILE -std=acu-strict 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/run_extensions.at:2570"
$at_failed && at_fn_log_failure
$at_traceon; }

#AT_CHECK([$COMPILE -std=ibm prog.cob], [0], [], [])
#AT_CHECK([$COMPILE -std=ibm-strict prog.cob], [1], [],
#[prog.cob:7: error: redefinition of register 'TALLY'
#])
#AT_CHECK([$COMPILE prog.cob], [0], [], [])
{ set +x
$as_echo "$at_srcdir/run_extensions.at:2576: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2576"
( $at_check_trace; $COBCRUN_DIRECT ./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 "002
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2576"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_990
#AT_START_991
at_fn_group_banner 991 'run_extensions.at:2585' \
  "PROCEDURE DIVISION USING BY ..." "                " 4
at_xfail=no
(
  $as_echo "991. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       LINKAGE          SECTION.
       01 X             PIC X.
       01 Y             PIC 99.
       01 Z             PIC 99 USAGE COMP.
       PROCEDURE        DIVISION
           USING BY VALUE X BY REFERENCE Y Z.
           MOVE "Z" TO X.
           MOVE 56 TO Y.
           MOVE 78 TO Z.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X.
       01 Y             PIC 99.
       01 Z             PIC 99 USAGE COMP.
       PROCEDURE        DIVISION.
           MOVE "X" TO X.
           MOVE 12 TO Y.
           MOVE 34 TO Z.
           CALL "callee" USING BY CONTENT X
                               BY REFERENCE Y
                               BY CONTENT Z
           END-CALL.
           IF X NOT = "X" OR
              Y NOT = 56  OR
              Z NOT = 34
                DISPLAY "X = " X " Y = " Y " Z = " Z
                END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2629: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:2629"
( $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/run_extensions.at:2629"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2630: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_extensions.at:2630"
( $at_check_trace; $COMPILE_MODULE callee.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "callee.cob:10: warning: handling of parameters passed BY VALUE is unfinished; implementation is likely to be changed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2630"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2633: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:2633"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2633"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_991
#AT_START_992
at_fn_group_banner 992 'run_extensions.at:2638' \
  "PROCEDURE DIVISION CHAINING" "                    " 4
at_xfail=no
(
  $as_echo "992. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X.
       01  ABCD         PIC X(4).
       01  NUM          PIC 9 VALUE 7.
       PROCEDURE        DIVISION
                        CHAINING X ABCD NUM.
           IF X    NOT = "X"    OR
              ABCD NOT = "ABCD"
              DISPLAY "X = " X " ABCD = " ABCD
              END-DISPLAY
           END-IF
           IF NUM  NOT = 7
              DISPLAY "NUM not INITIALIZED: " NUM
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  VAR.
           03  X            PIC X VALUE 'a'.
           03  ABCD         PIC X(4).
           03  NUM          PIC 9 VALUE 7.
       PROCEDURE        DIVISION
                        CHAINING VAR.
           DISPLAY '-' VAR '-' WITH NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X.
       01  ABCD         PIC X(4).
       01  NUM          PIC 9 VALUE 7.
       PROCEDURE        DIVISION
                        CHAINING X ABCD NUM.
           IF X    NOT = "X"    OR
              ABCD NOT = "ABCD"
              DISPLAY "X = " X " ABCD = " ABCD
              END-DISPLAY
           END-IF
           IF NUM  NOT = 7
              DISPLAY "NUM not INITIALIZED: " NUM
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       PROCEDURE        DIVISION.
           CALL "prog3" USING "X ABCD" END-CALL
           STOP RUN.
_ATEOF


cat >init.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      init.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  VAR.
           03  X            PIC X VALUE 'a'.
           03  ABCD         PIC X(4).
           03  NUM          PIC 9  VALUE 7.
       77  NUM2             PIC 99 VALUE 2.
       PROCEDURE        DIVISION
                        CHAINING VAR.
           DISPLAY '-' VAR NUM2 '-' WITH NO ADVANCING
           END-DISPLAY
           INITIALIZE  VAR NUM2
           DISPLAY '-' VAR NUM2 '-' WITH NO ADVANCING
           MOVE 'XXXX' TO ABCD
           INITIALIZE  VAR NUM2 ALL TO VALUE
           DISPLAY '-' VAR NUM2 '-' WITH NO ADVANCING
           MOVE ALL 'b' TO ABCD
           INITIALIZE  VAR NUM2 ALL TO VALUE THEN TO DEFAULT
           DISPLAY '-' VAR NUM2 '-' WITH NO ADVANCING
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2735: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2735"
( $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/run_extensions.at:2735"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2736: \$COBCRUN_DIRECT ./prog X ABCD"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog X ABCD" "run_extensions.at:2736"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2736"
$at_failed && at_fn_log_failure
$at_traceon; }


# note: sticky linkage and CHAINING produced compiler errors
#   --> additional test
{ set +x
$as_echo "$at_srcdir/run_extensions.at:2740: \$COMPILE prog.cob -fsticky-linkage -o prog_sticky"
at_fn_check_prepare_dynamic "$COMPILE prog.cob -fsticky-linkage -o prog_sticky" "run_extensions.at:2740"
( $at_check_trace; $COMPILE prog.cob -fsticky-linkage -o prog_sticky
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2740"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2741: \$COBCRUN_DIRECT ./prog_sticky X ABCD"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog_sticky X ABCD" "run_extensions.at:2741"
( $at_check_trace; $COBCRUN_DIRECT ./prog_sticky X ABCD
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2741"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2743: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_extensions.at:2743"
( $at_check_trace; $COMPILE prog2.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/run_extensions.at:2743"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2744: \$COBCRUN_DIRECT ./prog2 X"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2 X" "run_extensions.at:2744"
( $at_check_trace; $COBCRUN_DIRECT ./prog2 X
) >>"$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     -" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2744"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2745: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_extensions.at:2745"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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    7-" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2745"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2747: \$COMPILE_MODULE prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE prog3.cob" "run_extensions.at:2747"
( $at_check_trace; $COMPILE_MODULE prog3.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/run_extensions.at:2747"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2748: \$COBCRUN prog3 X ABCD"
at_fn_check_prepare_dynamic "$COBCRUN prog3 X ABCD" "run_extensions.at:2748"
( $at_check_trace; $COBCRUN prog3 X ABCD
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2748"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2750: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:2750"
( $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/run_extensions.at:2750"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2751: \$COBCRUN_DIRECT ./caller X ABCD"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller X ABCD" "run_extensions.at:2751"
( $at_check_trace; $COBCRUN_DIRECT ./caller X ABCD
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: caller.cob:6: error: CALL of program with CHAINING clause
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:2751"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2755: \$COMPILE init.cob"
at_fn_check_prepare_dynamic "$COMPILE init.cob" "run_extensions.at:2755"
( $at_check_trace; $COMPILE init.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/run_extensions.at:2755"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2756: \$COBCRUN_DIRECT ./init X"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./init X" "run_extensions.at:2756"
( $at_check_trace; $COBCRUN_DIRECT ./init X
) >>"$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     02--     000--aXXXX702--a    702-" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2756"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_992
#AT_START_993
at_fn_group_banner 993 'run_extensions.at:2761' \
  "STOP RUN RETURNING/GIVING" "                      " 4
at_xfail=no
(
  $as_echo "993. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog1.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog1.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  RET          PIC 99 USAGE DISPLAY.
       PROCEDURE        DIVISION.
           MOVE 11 TO RET
           STOP RUN RETURNING RET.
_ATEOF


cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  RET          PIC 99 USAGE PACKED-DECIMAL.
       PROCEDURE        DIVISION.
           MOVE 22 TO RET
           STOP RUN GIVING RET.
_ATEOF


cat >prog3.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog3.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           STOP RUN 33.
_ATEOF


cat >prog4.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog4.
       PROCEDURE        DIVISION.
           STOP RUN RETURNING 44.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2802: \$COMPILE prog1.cob"
at_fn_check_prepare_dynamic "$COMPILE prog1.cob" "run_extensions.at:2802"
( $at_check_trace; $COMPILE prog1.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/run_extensions.at:2802"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2803: \$COBCRUN_DIRECT ./prog1"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog1" "run_extensions.at:2803"
( $at_check_trace; $COBCRUN_DIRECT ./prog1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 11 $at_status "$at_srcdir/run_extensions.at:2803"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2805: \$COMPILE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog2.cob" "run_extensions.at:2805"
( $at_check_trace; $COMPILE prog2.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/run_extensions.at:2805"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2806: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "run_extensions.at:2806"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 22 $at_status "$at_srcdir/run_extensions.at:2806"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2808: \$COMPILE prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE prog3.cob" "run_extensions.at:2808"
( $at_check_trace; $COMPILE prog3.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/run_extensions.at:2808"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2809: \$COBCRUN_DIRECT ./prog3"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3" "run_extensions.at:2809"
( $at_check_trace; $COBCRUN_DIRECT ./prog3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 33 $at_status "$at_srcdir/run_extensions.at:2809"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2811: \$COMPILE prog4.cob"
at_fn_check_prepare_dynamic "$COMPILE prog4.cob" "run_extensions.at:2811"
( $at_check_trace; $COMPILE prog4.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/run_extensions.at:2811"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2812: \$COBCRUN_DIRECT ./prog4"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog4" "run_extensions.at:2812"
( $at_check_trace; $COBCRUN_DIRECT ./prog4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 44 $at_status "$at_srcdir/run_extensions.at:2812"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_993
#AT_START_994
at_fn_group_banner 994 'run_extensions.at:2817' \
  "GOBACK/EXIT PROGRAM RETURNING/GIVING" "           " 4
at_xfail=no
(
  $as_echo "994. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  RETURN-DISP  PIC S9(08).
       PROCEDURE        DIVISION.
           CALL 'prog1' END-CALL
           IF RETURN-CODE NOT = -1
              MOVE RETURN-CODE TO RETURN-DISP
              DISPLAY 'RETURN-CODE ' RETURN-DISP
                      ' INSTEAD OF -1'
              END-DISPLAY
           END-IF
           CALL 'prog2' END-CALL
           IF RETURN-CODE NOT = 2
              MOVE RETURN-CODE TO RETURN-DISP
              DISPLAY 'RETURN-CODE ' RETURN-DISP
                      ' INSTEAD OF 2'
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


cat >prog1.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog1.
       PROCEDURE        DIVISION.
           EXIT PROGRAM RETURNING -1.
_ATEOF



cat >prog2.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog2.
       PROCEDURE        DIVISION.
           GOBACK GIVING 2.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2859: \$COMPILE prog.cob prog1.cob prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob prog1.cob prog2.cob" "run_extensions.at:2859"
( $at_check_trace; $COMPILE prog.cob prog1.cob prog2.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/run_extensions.at:2859"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2860: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2860"
( $at_check_trace; $COBCRUN_DIRECT ./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 2 $at_status "$at_srcdir/run_extensions.at:2860"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_994
#AT_START_995
at_fn_group_banner 995 'run_extensions.at:2867' \
  "ENTRY" "                                          " 4
at_xfail=no
(
  $as_echo "995. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       PROCEDURE        DIVISION.
           CALL "hello" USING "COBOL"
           END-CALL.
           CALL "bye" USING "COBOL"
           END-CALL.
           STOP RUN.
_ATEOF


cat >hello.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      hello.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 MSG-HELLO     PIC X(7) VALUE "Hello, ".
       01 MSG-BYE       PIC X(5) VALUE "Bye, ".
       LINKAGE          SECTION.
       01 X             PIC X(5).
       01 Y             PIC X(5).
       PROCEDURE        DIVISION USING X.
           DISPLAY MSG-HELLO X "!".
           EXIT PROGRAM.

       ENTRY "bye" USING Y.
           DISPLAY MSG-BYE Y "!".
           EXIT PROGRAM.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2900: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:2900"
( $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/run_extensions.at:2900"
$at_failed && at_fn_log_failure
$at_traceon; }

# TODO: Doesn't work without sticky-linkage which is likely a bug!
{ set +x
$as_echo "$at_srcdir/run_extensions.at:2902: \$COMPILE_MODULE -fentry-statement=ok -fsticky-linkage hello.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE -fentry-statement=ok -fsticky-linkage hello.cob" "run_extensions.at:2902"
( $at_check_trace; $COMPILE_MODULE -fentry-statement=ok -fsticky-linkage 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/run_extensions.at:2902"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2903: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:2903"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2903"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_995
#AT_START_996
at_fn_group_banner 996 'run_extensions.at:2913' \
  "LINE SEQUENTIAL write" "                          " 4
at_xfail=no
(
  $as_echo "996. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN OUTPUT TEST-FILE.
           MOVE "a"    TO TEST-REC.
           WRITE TEST-REC
           END-WRITE.
           MOVE "ab"   TO TEST-REC.
           WRITE TEST-REC AFTER 1 LINES
           END-WRITE.
           MOVE "abc"  TO TEST-REC.
           WRITE TEST-REC BEFORE 2 LINES
           END-WRITE.
           MOVE "abcd" TO TEST-REC.
           WRITE TEST-REC
           END-WRITE.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:2946: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:2946"
( $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/run_extensions.at:2946"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2947: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:2947"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:2947"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:2948: cat TEST-FILE"
at_fn_check_prepare_trace "run_extensions.at:2948"
( $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

ababc

abcd
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:2948"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_996
#AT_START_997
at_fn_group_banner 997 'run_extensions.at:2959' \
  "LINE SEQUENTIAL read" "                           " 4
at_xfail=no
(
  $as_echo "997. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >TEST-FILE <<'_ATEOF'
a
ab
abc
abcd
abcde
abcdef
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN       "./TEST-FILE"
                        ORGANIZATION IS LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(4).
       PROCEDURE        DIVISION.
           OPEN INPUT TEST-FILE.
           READ TEST-FILE
           END-READ.
           DISPLAY "(" TEST-REC ")"
           END-DISPLAY.
           READ TEST-FILE
           END-READ.
           DISPLAY "(" TEST-REC ")"
           END-DISPLAY.
           READ TEST-FILE
           END-READ.
           DISPLAY "(" TEST-REC ")"
           END-DISPLAY.
           READ TEST-FILE
           END-READ.
           DISPLAY "(" TEST-REC ")"
           END-DISPLAY.
           READ TEST-FILE
           END-READ.
           DISPLAY "(" TEST-REC ")"
           END-DISPLAY.
           READ TEST-FILE
           END-READ.
           DISPLAY "(" TEST-REC ")"
           END-DISPLAY.
           CLOSE TEST-FILE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3013: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3013"
( $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/run_extensions.at:3013"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3014: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3014"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3014"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_997
#AT_START_998
at_fn_group_banner 998 'run_extensions.at:3026' \
  "ASSIGN to KEYBOARD/DISPLAY" "                     " 4
at_xfail=no
(
  $as_echo "998. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >TEST-FILE <<'_ATEOF'
a
ab
abc
abcd
abcde
abcdef
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN  KEYBOARD
                        ORGANIZATION IS LINE SEQUENTIAL.
       SELECT TEST-OUT  ASSIGN  DISPLAY
                        ORGANIZATION IS LINE SEQUENTIAL.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(80).
       FD TEST-OUT.
       01 TEST-REC-OUT  PIC X(80).
       PROCEDURE        DIVISION.
       A00.
           OPEN INPUT  TEST-FILE.
           OPEN OUTPUT TEST-OUT.
       A01.
           READ TEST-FILE AT END
                GO TO Z99
           END-READ.
           WRITE TEST-REC-OUT FROM TEST-REC
           END-WRITE.
           GO TO A01.
       Z99.
           CLOSE TEST-FILE.
           CLOSE TEST-OUT.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3071: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3071"
( $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/run_extensions.at:3071"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3072: cat TEST-FILE | \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'a shell pipeline' "run_extensions.at:3072"
( $at_check_trace; cat TEST-FILE | $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3072"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_998
#AT_START_999
at_fn_group_banner 999 'run_extensions.at:3084' \
  "SORT ASSIGN KEYBOARD to ASSIGN DISPLAY" "         " 4
at_xfail=yes
(
  $as_echo "999. $at_setup_line: testing $at_desc ..."
  $at_traceon



# GC has an extension "SORT FILES always in memory" and therefore didn't
# used the ASSIGN clause (which should be mandatory) for SORT files at all.
# We should add an according test and change the test here after cleanup,
# officially documenting the "ASSIGN clause not necessary for SORT FILES"
# extension and enable it only with a conf entry (set only in default.conf).


cat >TEST-FILE <<'_ATEOF'
9
22
11
0
00
8
77
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT      DIVISION.
       INPUT-OUTPUT     SECTION.
       FILE-CONTROL.
       SELECT TEST-FILE ASSIGN  KEYBOARD
                        ORGANIZATION IS LINE SEQUENTIAL.
       SELECT TEST-OUT  ASSIGN  DISPLAY
                        ORGANIZATION IS LINE SEQUENTIAL.
       SELECT SORT-FILE.
       DATA             DIVISION.
       FILE             SECTION.
       FD TEST-FILE.
       01 TEST-REC      PIC X(80).
       FD TEST-OUT.
       01 TEST-REC-OUT  PIC X(80).
       SD SORT-FILE.
       01 SORT-REC      PIC X(80).
       PROCEDURE        DIVISION.
       A00.
           SORT SORT-FILE
                ON ASCENDING SORT-REC
                USING        TEST-FILE
                GIVING       TEST-OUT.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3132: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3132"
( $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/run_extensions.at:3132"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3133: cat TEST-FILE | \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_notrace 'a shell pipeline' "run_extensions.at:3133"
( $at_check_trace; cat TEST-FILE | $COBCRUN_DIRECT ./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
00
11
22
77
8
9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3133"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_999
#AT_START_1000
at_fn_group_banner 1000 'run_extensions.at:3146' \
  "Environment/Argument variable" "                  " 4
at_xfail=no
(
  $as_echo "1000. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X(4).
       01 Y             PIC X(8).
       01 Z             PIC 9(4).
       PROCEDURE        DIVISION.
           DISPLAY "TEST_ENV" UPON ENVIRONMENT-NAME
           END-DISPLAY.
           ACCEPT X FROM ENVIRONMENT-VALUE
           END-ACCEPT.
           DISPLAY "(" X ")"
           END-DISPLAY.
           DISPLAY "RXW" UPON ENVIRONMENT-VALUE
           END-DISPLAY.
           ACCEPT X FROM ENVIRONMENT-VALUE
           END-ACCEPT.
           DISPLAY "(" X ")"
           END-DISPLAY.
           ACCEPT Y FROM ARGUMENT-VALUE
           END-ACCEPT.
           DISPLAY "(" Y ")"
           END-DISPLAY.
           ACCEPT Z FROM ARGUMENT-NUMBER
           END-ACCEPT.
           DISPLAY "(" Z ")"
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3181: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3181"
( $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/run_extensions.at:3181"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3182: TEST_ENV=OK \$COBCRUN_DIRECT ./prog CHECKPAR"
at_fn_check_prepare_dynamic "TEST_ENV=OK $COBCRUN_DIRECT ./prog CHECKPAR" "run_extensions.at:3182"
( $at_check_trace; TEST_ENV=OK $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3182"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1000
#AT_START_1001
at_fn_group_banner 1001 'run_extensions.at:3192' \
  "78 Level (1)" "                                   " 4
at_xfail=no
(
  $as_echo "1001. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       78  X            VALUE "OK".
       PROCEDURE        DIVISION.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3207: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3207"
( $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/run_extensions.at:3207"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3208: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3208"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3208"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1001
#AT_START_1002
at_fn_group_banner 1002 'run_extensions.at:3215' \
  "78 Level (2)" "                                   " 4
at_xfail=no
(
  $as_echo "1002. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z.
       78  X            VALUE "OK".
       78  Y            VALUE "OK".
           03  FILLER   PIC XX VALUE "OK".
       PROCEDURE        DIVISION.
           DISPLAY X Z Y
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3233: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3233"
( $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/run_extensions.at:3233"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3234: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3234"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3234"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1002
#AT_START_1003
at_fn_group_banner 1003 'run_extensions.at:3241' \
  "78 Level (3)" "                                   " 4
at_xfail=no
(
  $as_echo "1003. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       78  X            VALUE "OK".
       01  Z            PIC XX VALUE "OK".
       PROCEDURE        DIVISION.
           DISPLAY Z X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3257: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3257"
( $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/run_extensions.at:3257"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3258: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3258"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3258"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1003
#AT_START_1004
at_fn_group_banner 1004 'run_extensions.at:3265' \
  "SWITCHES with non-standard names" "               " 4
at_xfail=no
(
  $as_echo "1004. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           SW1
             ON  IS SWIT1-ON
             OFF IS SWIT1-OFF
           .
           SWITCH B IS SWITCH-B
             ON  IS SWIT2-ON
             OFF IS SWIT2-OFF
           .
           SWITCH 25
             ON  IS SWIT25-ON
             OFF IS SWIT25-OFF
           .
           SWITCH Z
             ON  IS SWIT26-ON
             OFF IS SWIT26-OFF
           .
           USW-31
             ON  IS SWIT31-ON
             OFF IS SWIT31-OFF
           .
           SWITCH-32
             ON  IS SWIT32-ON
             OFF IS SWIT32-OFF
           .
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  SWITCH       PIC 99 VALUE 12.
	   78  Z            VALUE 11.
       PROCEDURE        DIVISION.
           ADD SWITCH 1 GIVING SWITCH
           END-ADD.
           IF SWITCH NOT = 13
              DISPLAY "SWITCH (variable) + 1 WRONG: "
                      SWITCH
              END-DISPLAY
           END-IF.
           ADD SWITCH Z GIVING SWITCH
           END-ADD.
           IF SWITCH NOT = 24
              DISPLAY "SWITCH (variable) + Z WRONG: "
                      SWITCH
              END-DISPLAY
           END-IF.
           IF SWIT1-ON
              DISPLAY "ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY "OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           IF SWIT2-ON
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           SET SWITCH-B TO OFF
           IF SWIT2-ON
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           IF SWIT25-ON
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           IF SWIT26-ON
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           IF SWIT31-ON
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           IF SWIT32-ON
              DISPLAY " ON" NO ADVANCING
              END-DISPLAY
           ELSE
              DISPLAY " OFF" NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3370: \$COMPILE -fsystem-name=\"sw1, SwItCh\\ b, SWITCH\\ 25\" \\
-fsystem-name=SWITCH-32 -fsystem-name=\"SWITCH\\ Z\" -fsystem-name=USW-31 prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "run_extensions.at:3370"
( $at_check_trace; $COMPILE -fsystem-name="sw1, SwItCh\ b, SWITCH\ 25" \
-fsystem-name=SWITCH-32 -fsystem-name="SWITCH\ Z" -fsystem-name=USW-31 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/run_extensions.at:3370"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3372: COB_SWITCH_2=1 COB_SWITCH_26=1 COB_SWITCH_31=1 COB_SWITCH_32=1 ./prog"
at_fn_check_prepare_trace "run_extensions.at:3372"
( $at_check_trace; COB_SWITCH_2=1 COB_SWITCH_26=1 COB_SWITCH_31=1 COB_SWITCH_32=1 ./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 "OFF ON OFF OFF ON ON ON" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3372"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1004
#AT_START_1005
at_fn_group_banner 1005 'run_extensions.at:3378' \
  "Larger REDEFINES lengths" "                       " 4
at_xfail=no
(
  $as_echo "1005. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  Z            PIC 99.
       01  XMAIN        PIC X(8).
       01  XMAINRED REDEFINES XMAIN.
           03  FILLER         PIC X(4).
           03  XMAIN03.
               05  XMAIN0501  PIC X(4).
               05  XMAIN0502 REDEFINES XMAIN0501 PIC X(5).
       01 USE-VARS.
          05 USE-VALUE                PIC 9
                                      VALUE ZERO.
             88 USE-ACTIVE-FIRST      VALUE 1.
             88 USE-ACTIVE-SECOND     VALUE 2.
          05 USE-FIRST.
             10 FIRST-DATA.
                20 FIRST-DATA-VAR     PIC X(033).
             10 FIRST-VARIANT-A REDEFINES FIRST-DATA.
                20 PART-A-FIRST       PIC X(33211).
             10 FIRST-VARIANT-B REDEFINES FIRST-DATA.
                20 PART-B-FIRST       PIC X(24561).
             10 FIRST-VARIANT-C REDEFINES FIRST-DATA.
                20 PART-C-FIRST       PIC X(3421).
         05 USE-SECOND REDEFINES USE-FIRST.
            10 SECOND-HEADER.
               20 SECOND-DATA         PIC 9(015).
               20 SECOND-CONTROL-SUM  PIC 9(015)V9(003).
            10 SECOND-VARIANT-A REDEFINES SECOND-HEADER.
               20 PART-A-SECOND       PIC X(27241).
            10 SECOND-VARIANT-B REDEFINES SECOND-HEADER.
               20 PART-B-SECOND       PIC X(3879).
       PROCEDURE        DIVISION.
           MOVE    LENGTH OF XMAIN       TO Z.
           IF Z NOT = 8
              DISPLAY "Test 1 " Z
              END-DISPLAY
           END-IF.
           MOVE    LENGTH OF XMAINRED    TO Z.
           IF Z NOT = 9
              DISPLAY "Test 2 " Z
              END-DISPLAY
           END-IF.
           MOVE    LENGTH OF XMAIN03     TO Z.
           IF Z NOT = 5
              DISPLAY "Test 3 " Z
              END-DISPLAY
           END-IF.
           MOVE    LENGTH OF XMAIN0501   TO Z.
           IF Z NOT = 4
              DISPLAY "Test 4 " Z
              END-DISPLAY
           END-IF.
           MOVE    LENGTH OF XMAIN0502   TO Z.
           IF Z NOT = 5
              DISPLAY "Test 5 " Z
              END-DISPLAY
           END-IF.
           IF LENGTH OF USE-FIRST  NOT = 33211
              DISPLAY LENGTH OF USE-FIRST   END-DISPLAY
           END-IF.
           IF LENGTH OF USE-SECOND NOT = 27241
              DISPLAY LENGTH OF USE-SECOND  END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3450: \$COMPILE -flarger-redefines-ok -Wno-constant-expression prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -flarger-redefines-ok -Wno-constant-expression prog.cob" "run_extensions.at:3450"
( $at_check_trace; $COMPILE -flarger-redefines-ok -Wno-constant-expression 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: size of 'XMAIN0502' larger than size of 'XMAIN0501'
prog.cob:21: warning: size of 'FIRST-VARIANT-A' larger than size of 'FIRST-DATA'
prog.cob:23: warning: size of 'FIRST-VARIANT-B' larger than size of 'FIRST-DATA'
prog.cob:25: warning: size of 'FIRST-VARIANT-C' larger than size of 'FIRST-DATA'
prog.cob:31: warning: size of 'SECOND-VARIANT-A' larger than size of 'SECOND-HEADER'
prog.cob:33: warning: size of 'SECOND-VARIANT-B' larger than size of 'SECOND-HEADER'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3450"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3458: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3458"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3458"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1005
#AT_START_1006
at_fn_group_banner 1006 'run_extensions.at:3462' \
  "REDEFINES: non-referenced ambiguous item" "       " 4
at_xfail=no
(
  $as_echo "1006. $at_setup_line: testing $at_desc ..."
  $at_traceon



# bad extension, supported for compatibility to at least MicroFocus
# the redefines always applies to the item defined before

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC X value '1'.
       01 X             PIC X value '2'.
       01 G             REDEFINES X PIC 9.
       PROCEDURE        DIVISION.
           IF G NOT = 2
              DISPLAY 'G IS ' G.
           STOP RUN.
_ATEOF


# syntax checked in syn_definition.at
{ set +x
$as_echo "$at_srcdir/run_extensions.at:3483: \$COMPILE -w prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -w prog.cob" "run_extensions.at:3483"
( $at_check_trace; $COMPILE -w 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/run_extensions.at:3483"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3484: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3484"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3484"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1006
#AT_START_1007
at_fn_group_banner 1007 'run_extensions.at:3488' \
  "Obsolete 2002 keywords with COBOL2014" "          " 4
at_xfail=no
(
  $as_echo "1007. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  TERMINAL     PIC XX VALUE "OK".
       01  SEND         PIC XX VALUE "OK".
       PROCEDURE        DIVISION.
           DISPLAY TERMINAL SEND.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3503: \$COMPILE -std=cobol2002 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=cobol2002 prog.cob" "run_extensions.at:3503"
( $at_check_trace; $COMPILE -std=cobol2002 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: syntax error, unexpected TERMINAL
prog.cob:7: error: syntax error, unexpected SEND
prog.cob:9: error: syntax error, unexpected TERMINAL, expecting (
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:3503"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3508: \$COMPILE -std=cobol2014 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=cobol2014 prog.cob" "run_extensions.at:3508"
( $at_check_trace; $COMPILE -std=cobol2014 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/run_extensions.at:3508"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3509: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3509"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3509"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1007
#AT_START_1008
at_fn_group_banner 1008 'run_extensions.at:3518' \
  "System routine with wrong number of parameters" " " 4
at_xfail=no
(
  $as_echo "1008. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  N            PIC 9 USAGE BINARY.
       77  X            PIC X.
       PROCEDURE        DIVISION.
           CALL "C$NARG" USING N X
           END-CALL
           IF N NOT = 2
              DISPLAY "NOTOK " N
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


cat >wrong.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      wrong.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77  X            PIC X.
       PROCEDURE        DIVISION.
           CALL "CBL_OR" USING X
           END-CALL
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3550: \$COMPILE wrong.cob"
at_fn_check_prepare_dynamic "$COMPILE wrong.cob" "run_extensions.at:3550"
( $at_check_trace; $COMPILE wrong.cob
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "wrong.cob:8: error: wrong number of CALL parameters for 'CBL_OR', 1 given, 3 expected
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:3550"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3553: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3553"
( $at_check_trace; $COMPILE 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: wrong number of CALL parameters for 'C\$NARG', 2 given, 1 expected
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3553"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3556: \$COBCRUN_DIRECT ./prog 1 2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog 1 2" "run_extensions.at:3556"
( $at_check_trace; $COBCRUN_DIRECT ./prog 1 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3556"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1008
#AT_START_1009
at_fn_group_banner 1009 'run_extensions.at:3561' \
  "System routine C\$NARG" "                          " 4
at_xfail=no
(
  $as_echo "1009. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            USAGE BINARY-LONG.
       LINKAGE SECTION.
       01  Y            PIC   X.
       PROCEDURE        DIVISION USING Y.
           CALL "C$NARG" USING X
           END-CALL
           IF X NOT = 1
              DISPLAY "NOTOK callee " X
              END-DISPLAY
           END-IF
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X VALUE "X".
       01  N            PIC 9 USAGE BINARY.
       LINKAGE SECTION.
       77  Y            PIC X.
       77  Z            PIC X.
       PROCEDURE        DIVISION.
           CALL "C$NARG" USING N
           END-CALL
           IF N NOT = 2
              DISPLAY "NOTOK caller (1) " N
              END-DISPLAY
           END-IF
           CALL "callee" USING X
           END-CALL
           CALL "C$NARG" USING N
           END-CALL
           IF N NOT = 2
              DISPLAY "NOTOK caller (2) " N
              END-DISPLAY
           END-IF
           STOP RUN.
_ATEOF


cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  N            PIC 9 USAGE BINARY.
       LINKAGE SECTION.
       77  X            PIC X.
       77  Y            PIC X.
       77  Z            PIC X.
       PROCEDURE        DIVISION.
           CALL "C$NARG" USING N
           END-CALL
           DISPLAY N WITH NO ADVANCING
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3628: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:3628"
( $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/run_extensions.at:3628"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3629: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_extensions.at:3629"
( $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/run_extensions.at:3629"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3630: \$COBCRUN_DIRECT ./caller 1 2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller 1 2" "run_extensions.at:3630"
( $at_check_trace; $COBCRUN_DIRECT ./caller 1 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3630"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3631: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3631"
( $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/run_extensions.at:3631"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3632: \$COBCRUN_DIRECT ./prog \"1 2\""
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog \"1 2\"" "run_extensions.at:3632"
( $at_check_trace; $COBCRUN_DIRECT ./prog "1 2"
) >>"$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/run_extensions.at:3632"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3633: \$COBCRUN_DIRECT ./prog 1 2 3"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog 1 2 3" "run_extensions.at:3633"
( $at_check_trace; $COBCRUN_DIRECT ./prog 1 2 3
) >>"$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" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3633"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1009
#AT_START_1010
at_fn_group_banner 1010 'run_extensions.at:3638' \
  "System routine C\$PARAMSIZE" "                     " 4
at_xfail=no
(
  $as_echo "1010. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            USAGE BINARY-LONG.
       LINKAGE SECTION.
       01  Y            PIC   X ANY LENGTH.
       PROCEDURE        DIVISION USING Y.
           MOVE 1 TO X.
           CALL "C$PARAMSIZE" USING X
           END-CALL.
           IF RETURN-CODE NOT = 2
              DISPLAY "NOTOK "  RETURN-CODE
              END-DISPLAY
           END-IF.
           MOVE 0 TO RETURN-CODE.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC XX VALUE "XY".
       PROCEDURE        DIVISION.
           CALL "callee" USING X
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3673: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:3673"
( $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/run_extensions.at:3673"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3674: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_extensions.at:3674"
( $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/run_extensions.at:3674"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3675: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:3675"
( $at_check_trace; $COBCRUN_DIRECT ./caller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3675"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1010
#AT_START_1011
at_fn_group_banner 1011 'run_extensions.at:3680' \
  "System routine C\$CALLEDBY" "                      " 4
at_xfail=no
(
  $as_echo "1011. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >callee.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      callee.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(6) VALUE "X".
       PROCEDURE        DIVISION.
           CALL "C$CALLEDBY" USING X
           END-CALL.
           IF RETURN-CODE = 1 AND
              X = "caller"
              DISPLAY "OK" NO ADVANCING
              END-DISPLAY
           END-IF.
           EXIT PROGRAM.
_ATEOF


cat >caller.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      caller.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(6) VALUE "X".
       PROCEDURE        DIVISION.
           CALL "C$CALLEDBY" USING X
           END-CALL.
           IF RETURN-CODE = 0 AND
              X = SPACES
              DISPLAY "OK" NO ADVANCING
              END-DISPLAY
           END-IF.
           CALL "callee"
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3719: \$COMPILE caller.cob"
at_fn_check_prepare_dynamic "$COMPILE caller.cob" "run_extensions.at:3719"
( $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/run_extensions.at:3719"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3720: \$COMPILE_MODULE callee.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE callee.cob" "run_extensions.at:3720"
( $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/run_extensions.at:3720"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3721: \$COBCRUN_DIRECT ./caller"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./caller" "run_extensions.at:3721"
( $at_check_trace; $COBCRUN_DIRECT ./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 "OKOK" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:3721"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1011
#AT_START_1012
at_fn_group_banner 1012 'run_extensions.at:3726' \
  "System routine C\$JUSTIFY" "                       " 4
at_xfail=no
(
  $as_echo "1012. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(4) VALUE " OK ".
       PROCEDURE        DIVISION.
           CALL "C$JUSTIFY" USING X "L"
           END-CALL.
           IF X NOT = "OK  "
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3745: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3745"
( $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/run_extensions.at:3745"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3746: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3746"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3746"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1012
#AT_START_1013
at_fn_group_banner 1013 'run_extensions.at:3751' \
  "System routine C\$PRINTABLE" "                     " 4
at_xfail=no
(
  $as_echo "1013. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X.
           03  X1       PIC X.
           03  X234     PIC XXX.
       PROCEDURE        DIVISION.
           MOVE LOW-VALUE TO X1.
           MOVE "BCD"     TO X234.
           CALL "C$PRINTABLE" USING X
           END-CALL.
           IF X NOT = ".BCD"
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3774: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3774"
( $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/run_extensions.at:3774"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3775: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3775"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3775"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1013
#AT_START_1014
at_fn_group_banner 1014 'run_extensions.at:3780' \
  "System routine C\$MAKEDIR" "                       " 4
at_xfail=no
(
  $as_echo "1014. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           CALL "C$MAKEDIR" USING "TMP"
           END-CALL.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3794: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3794"
( $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/run_extensions.at:3794"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3795: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3795"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3795"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3796: test -d \"TMP\" && rmdir \"TMP\""
at_fn_check_prepare_trace "run_extensions.at:3796"
( $at_check_trace; test -d "TMP" && rmdir "TMP"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:3796"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1014
#AT_START_1015
at_fn_group_banner 1015 'run_extensions.at:3801' \
  "System routine C\$GETPID" "                        " 4
at_xfail=no
(
  $as_echo "1015. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
           CALL "C$GETPID"
           END-CALL.
           IF RETURN-CODE = 0
              DISPLAY "C$GETPID returned zero!"
              END-DISPLAY
           END-IF.
           MOVE 0 TO RETURN-CODE.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3820: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3820"
( $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/run_extensions.at:3820"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3821: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3821"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3821"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1015
#AT_START_1016
at_fn_group_banner 1016 'run_extensions.at:3826' \
  "System routine C\$TOUPPER" "                       " 4
at_xfail=no
(
  $as_echo "1016. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(2) VALUE "ok".
       PROCEDURE        DIVISION.
           CALL "C$TOUPPER" USING X BY VALUE 2
           END-CALL.
           IF X NOT = "OK"
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3845: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3845"
( $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/run_extensions.at:3845"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3846: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3846"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3846"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1016
#AT_START_1017
at_fn_group_banner 1017 'run_extensions.at:3851' \
  "System routine C\$TOLOWER" "                       " 4
at_xfail=no
(
  $as_echo "1017. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(2) VALUE "OK".
       PROCEDURE        DIVISION.
           CALL "C$TOLOWER" USING X BY VALUE 2
           END-CALL.
           IF X NOT = "ok"
              DISPLAY X NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3870: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3870"
( $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/run_extensions.at:3870"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3871: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3871"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3871"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1017
#AT_START_1018
at_fn_group_banner 1018 'run_extensions.at:3876' \
  "System routine CBL_OR" "                          " 4
at_xfail=no
(
  $as_echo "1018. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(4) VALUE "0000".
       01  Z            PIC X(4) VALUE X"01010101".
       PROCEDURE        DIVISION.
           CALL "CBL_OR" USING X Z
                BY VALUE LENGTH OF Z
           END-CALL.
           IF Z NOT = "1111"
              DISPLAY Z NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3897: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3897"
( $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/run_extensions.at:3897"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3898: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3898"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3898"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1018
#AT_START_1019
at_fn_group_banner 1019 'run_extensions.at:3903' \
  "System routine CBL_NOR" "                         " 4
at_xfail=no
(
  $as_echo "1019. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(4) VALUE X"03030303".
       01  Z            PIC X(4) VALUE X"05050505".
       PROCEDURE        DIVISION.
           CALL "CBL_NOR" USING X Z
                BY VALUE LENGTH OF Z
           END-CALL.
           IF Z NOT = X"F8F8F8F8"
              DISPLAY "NG" NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3924: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3924"
( $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/run_extensions.at:3924"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3925: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3925"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3925"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1019
#AT_START_1020
at_fn_group_banner 1020 'run_extensions.at:3930' \
  "System routine CBL_AND" "                         " 4
at_xfail=no
(
  $as_echo "1020. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(4) VALUE "3333".
       01  Z            PIC X(4) VALUE "5555".
       PROCEDURE        DIVISION.
           CALL "CBL_AND" USING X Z
                BY VALUE LENGTH OF Z
           END-CALL.
           IF Z NOT = "1111"
              DISPLAY Z NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3951: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3951"
( $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/run_extensions.at:3951"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3952: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3952"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3952"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1020
#AT_START_1021
at_fn_group_banner 1021 'run_extensions.at:3957' \
  "System routine CBL_XOR" "                         " 4
at_xfail=no
(
  $as_echo "1021. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(4) VALUE "3333".
       01  Z            PIC X(4) VALUE X"02020202".
       PROCEDURE        DIVISION.
           CALL "CBL_XOR" USING X Z
                BY VALUE LENGTH OF Z
           END-CALL.
           IF Z NOT = "1111"
              DISPLAY Z NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:3978: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:3978"
( $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/run_extensions.at:3978"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:3979: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:3979"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:3979"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1021
#AT_START_1022
at_fn_group_banner 1022 'run_extensions.at:3984' \
  "System routine CBL_IMP" "                         " 4
at_xfail=no
(
  $as_echo "1022. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(4) VALUE HIGH-VALUE.
       01  Z            PIC X(4) VALUE "1111".
       PROCEDURE        DIVISION.
           CALL "CBL_IMP" USING X Z
                BY VALUE LENGTH OF Z
           END-CALL.
           IF Z NOT = "1111"
              DISPLAY Z NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4005: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4005"
( $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/run_extensions.at:4005"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4006: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4006"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:4006"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1022
#AT_START_1023
at_fn_group_banner 1023 'run_extensions.at:4011' \
  "System routine CBL_NIMP" "                        " 4
at_xfail=no
(
  $as_echo "1023. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(4) VALUE "1111".
       01  Z            PIC X(4) VALUE LOW-VALUE.
       PROCEDURE        DIVISION.
           CALL "CBL_NIMP" USING X Z
                BY VALUE LENGTH OF Z
           END-CALL.
           IF Z NOT = "1111"
              DISPLAY Z NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4032: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4032"
( $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/run_extensions.at:4032"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4033: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4033"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:4033"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1023
#AT_START_1024
at_fn_group_banner 1024 'run_extensions.at:4038' \
  "System routine CBL_NOT" "                         " 4
at_xfail=no
(
  $as_echo "1024. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(4) VALUE HIGH-VALUE.
       PROCEDURE        DIVISION.
           CALL "CBL_NOT" USING X
                BY VALUE LENGTH OF X
           END-CALL.
           IF X NOT = LOW-VALUE
              DISPLAY "NG" NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4058: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4058"
( $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/run_extensions.at:4058"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4059: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4059"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:4059"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1024
#AT_START_1025
at_fn_group_banner 1025 'run_extensions.at:4064' \
  "System routine CBL_EQ" "                          " 4
at_xfail=no
(
  $as_echo "1025. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01  X            PIC X(4) VALUE HIGH-VALUE.
       01  Z            PIC X(4) VALUE "1111".
       PROCEDURE        DIVISION.
           CALL "CBL_EQ" USING X Z
                BY VALUE LENGTH OF Z
           END-CALL.
           IF Z NOT = "1111"
              DISPLAY Z NO ADVANCING
              END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4085: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4085"
( $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/run_extensions.at:4085"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4086: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4086"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:4086"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1025
#AT_START_1026
at_fn_group_banner 1026 'run_extensions.at:4091' \
  "System routine CBL_GC_GETOPT" "                   " 4
at_xfail=no
(
  $as_echo "1026. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog.
      *> check combination of long and short options
        DATA DIVISION.
        WORKING-STORAGE SECTION.
           01 LO.
                05 OPTIONRECORD OCCURS 2 TIMES.
                    10 ONAME        PIC X(25).
                    10 HAS-VALUE    PIC 9.
                    10 VALPOINT     POINTER     VALUE NULL.
                    10 VAL          PIC X(4).

            01 SO             PIC X(256).
            01 LONGIND        PIC 99.
            01 LONG-ONLY      PIC 9 VALUE 1.
            01 RETURN-CHAR    PIC X(4).
            01 OPT-VAL        PIC X(10).
            01 RET-DISP       PIC S9 VALUE 0.

            01 COUNTER        PIC 9 VALUE 0.
        PROCEDURE DIVISION.
            MOVE "jkl"     TO SO.

            MOVE "version" TO ONAME     (1).
            MOVE 0         TO HAS-VALUE (1).
            MOVE "v"       TO VAL       (1).

            MOVE "verbose" TO ONAME     (2).
            MOVE 0         TO HAS-VALUE (2).
            MOVE "V"       TO VAL       (2).

            PERFORM WITH TEST AFTER
                    VARYING COUNTER FROM 0 BY 1
                    UNTIL RETURN-CODE = -1
               CALL 'CBL_GC_GETOPT' USING
                  BY REFERENCE SO LO LONGIND
                  BY VALUE     LONG-ONLY
                  BY REFERENCE RETURN-CHAR OPT-VAL
               END-CALL

               EVALUATE COUNTER
                  WHEN 0
                     IF RETURN-CHAR NOT = 'v' THEN
                        DISPLAY '0-ERROR: ' RETURN-CHAR END-DISPLAY
                     END-IF
                  WHEN 1
                     IF RETURN-CHAR NOT = 'V' THEN
                        DISPLAY '1-ERROR: ' RETURN-CHAR END-DISPLAY
                     END-IF
                  WHEN 2
                     IF RETURN-CHAR NOT = 'j' THEN
                        DISPLAY '2-ERROR: ' RETURN-CHAR END-DISPLAY
                     END-IF
                  WHEN 3
                     IF RETURN-CHAR NOT = 'k' THEN
                        DISPLAY '3-ERROR: ' RETURN-CHAR END-DISPLAY
                     END-IF
                  WHEN 4
                     IF RETURN-CHAR NOT = 'l' THEN
                        DISPLAY '4-ERROR: ' RETURN-CHAR END-DISPLAY
                     END-IF
                  WHEN 5
                     IF RETURN-CODE NOT = -1 THEN
                        MOVE RETURN-CODE TO RET-DISP
                        DISPLAY 'last RETURN-CODE wrong: ' RET-DISP
                        END-DISPLAY
                     END-IF
                     EXIT PERFORM
               END-EVALUATE
            END-PERFORM.

            MOVE 0 TO RETURN-CODE.

            IF COUNTER NOT = 5 THEN
               MOVE RETURN-CODE TO RET-DISP
               DISPLAY 'CBL_GC_GETOPT returned -1 too early: ' COUNTER
               END-DISPLAY
            END-IF.

            STOP RUN.
_ATEOF


cat >prog2.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog2.
      *> check if partial options work correct
        DATA DIVISION.
        WORKING-STORAGE SECTION.
      *> Check with wrong record count


            01 LO.
                05 OPTIONRECORD OCCURS 3 TIMES.
                    10 ONAME        PIC X(25).
                    10 HAS-VALUE    PIC 9.
                    10 VALPOINT     POINTER     VALUE NULL.
                    10 VAL          PIC X(4).

            78 SO             VALUE "jkl".
            01 LONGIND        PIC 99.
            01 LONG-ONLY      PIC 9 VALUE 1.
            01 RETURN-CHAR    PIC X(4).
            01 OPT-VAL        PIC X(10).
            01 RET-DISP       PIC S9 VALUE 0.

            01 COUNTER        PIC 9 VALUE 0.
        PROCEDURE DIVISION.
            MOVE "version" TO ONAME     (1).
            MOVE 0         TO HAS-VALUE (1).
            MOVE "v"       TO VAL       (1).

            MOVE "verbose" TO ONAME     (2).
            MOVE 0         TO HAS-VALUE (2).
            MOVE "V"       TO VAL       (2).

            PERFORM WITH TEST AFTER
                    VARYING COUNTER FROM 0 BY 1
                    UNTIL RETURN-CODE = -1
               CALL 'CBL_GC_GETOPT' USING
                  BY REFERENCE SO LO LONGIND
                  BY VALUE     LONG-ONLY
                  BY REFERENCE RETURN-CHAR OPT-VAL
               END-CALL

               EVALUATE COUNTER
                  WHEN 0
                     IF RETURN-CHAR NOT = '?' THEN
                        DISPLAY '0-ERROR: ' RETURN-CHAR END-DISPLAY
                     END-IF
                  WHEN 1
                     IF RETURN-CHAR NOT = 'v' THEN
                        DISPLAY '1-ERROR: ' RETURN-CHAR END-DISPLAY
                     END-IF
                  WHEN 2
                     IF RETURN-CODE NOT = -1 THEN
                        MOVE RETURN-CODE TO RET-DISP
                        DISPLAY 'last RETURN-CODE wrong: ' RET-DISP
                        END-DISPLAY
                     END-IF
                     EXIT PERFORM
               END-EVALUATE
            END-PERFORM.

            MOVE 0 TO RETURN-CODE.

            IF COUNTER NOT = 2 THEN
               MOVE RETURN-CODE TO RET-DISP
               DISPLAY 'CBL_GC_GETOPT returned -1 too early: ' COUNTER
               END-DISPLAY
            END-IF.

            STOP RUN.
_ATEOF


cat >prog3.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog3.
      *> check for optional and mandatory parameters
        DATA DIVISION.
        WORKING-STORAGE SECTION.
            01 SO PIC X(128).
            01 LO.
                05 OPTIONRECORD OCCURS 3 TIMES.
                    10 ONAME        PIC X(25).
                    10 HAS-VALUE    PIC 9.
                    10 VALPOINT     POINTER     VALUE NULL.
                    10 VAL          PIC X(4).
            01 LONGIND        PIC 99.
            01 LONG-ONLY      PIC 9 VALUE 0.
            01 RETURN-CHAR    PIC X(4).
            01 OPT-VAL        PIC X(10).
            01 RET-DISP       PIC S9 VALUE 0.

            01 COUNTER        PIC 9 VALUE 0.
        PROCEDURE DIVISION.
            MOVE "j:k::l"  TO SO.

            MOVE "version" TO ONAME     (1).
            MOVE 1         TO HAS-VALUE (1).
            MOVE "v"       TO VAL       (1).

            MOVE "verbose" TO ONAME     (2).
            MOVE 2         TO HAS-VALUE (2).
            MOVE "V"       TO VAL       (2).

            MOVE "usage"   TO ONAME     (3).
            MOVE 0         TO HAS-VALUE (3).
            MOVE "u"       TO VAL       (3).

            PERFORM WITH TEST AFTER
                    VARYING COUNTER FROM 0 BY 1
                    UNTIL RETURN-CODE = -1
               CALL 'CBL_GC_GETOPT' USING
                  BY REFERENCE SO LO LONGIND
                  BY VALUE     LONG-ONLY
                  BY REFERENCE RETURN-CHAR OPT-VAL
               END-CALL

               EVALUATE COUNTER
                  WHEN 0
                     IF OPT-VAL(1:4) NOT = 'lang' THEN
                        DISPLAY '0-ERROR: ' OPT-VAL END-DISPLAY
                     END-IF
                  WHEN 1
                     IF (OPT-VAL(1:1) NOT = 'k' OR
                         RETURN-CHAR  NOT = 'V' OR
                         OPT-VAL(1:4)     = 'kang')  THEN
                        DISPLAY '1-ERROR: ' OPT-VAL ' ' RETURN-CHAR
                        END-DISPLAY
                     END-IF
                  WHEN 2
                     IF RETURN-CHAR NOT = 'u' THEN
                        DISPLAY '2-ERROR: ' RETURN-CHAR END-DISPLAY
                     END-IF
                  WHEN 3
                     IF OPT-VAL(1:1) NOT = '5' OR
                        RETURN-CHAR  NOT = 'j' THEN
                        DISPLAY '3-ERROR: ' OPT-VAL ' ' RETURN-CHAR
                        END-DISPLAY
                     END-IF
                  WHEN 4
                     IF OPT-VAL(1:1) NOT = '6' OR
                        RETURN-CHAR  NOT = 'k' THEN
                        DISPLAY '4-ERROR: ' OPT-VAL ' ' RETURN-CHAR
                        END-DISPLAY
                     END-IF
                  WHEN 5
                     IF RETURN-CHAR NOT = 'l' THEN
                        DISPLAY '5-ERROR: ' RETURN-CHAR END-DISPLAY
                     END-IF
                  WHEN 6
                     IF RETURN-CODE NOT = -1 THEN
                        MOVE RETURN-CODE TO RET-DISP
                        DISPLAY 'last RETURN-CODE wrong: ' RET-DISP
                        END-DISPLAY
                     END-IF
                     EXIT PERFORM
               END-EVALUATE
            END-PERFORM.

            MOVE 0 TO RETURN-CODE.

            IF COUNTER NOT = 6 THEN
               MOVE RETURN-CODE TO RET-DISP
               DISPLAY 'CBL_GC_GETOPT returned -1 too early: ' COUNTER
               END-DISPLAY
            END-IF.

            STOP RUN.
_ATEOF


cat >prog4.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog4.
      *> check use of value pointer and trimming of opt-val
        DATA DIVISION.
        WORKING-STORAGE SECTION.
            01 SO PIC X(12).
            01 LO.
                05 OPTIONRECORD OCCURS 3 TIMES.
                    10 ONAME        PIC X(25).
                    10 HAS-VALUE    PIC 9.
                    10 VALPOINT     POINTER     VALUE NULL.
                    10 VAL          PIC X(4).
            01 LONGIND          PIC 99.
            01 LONG-ONLY        PIC 9 VALUE 1.
            01 RETURN-CHAR      PIC X(4).
            01 OPT-VAL          PIC X(10).
            01 RET-DISP         PIC S999 VALUE 0.

            01 COUNTER          PIC 9 VALUE 0.

            01 FLAG-VAL         PIC X(4).
        procedure division.
            MOVE "jkl"       TO SO.

            MOVE "static"    TO ONAME     (1).
            MOVE 0           TO HAS-VALUE (1).
            SET  VALPOINT(1) TO ADDRESS OF FLAG-VAL.
            MOVE '1'         TO VAL       (1).

            MOVE "dynamic"   TO ONAME     (2).
            MOVE 0           TO HAS-VALUE (2).
            SET  VALPOINT(2) TO ADDRESS OF FLAG-VAL.
            MOVE '0'         TO VAL       (2).

            MOVE "usage"     TO ONAME     (3).
            MOVE 1           TO HAS-VALUE (3).
            MOVE 'u'         TO VAL       (3).

            PERFORM WITH TEST AFTER
                    VARYING COUNTER FROM 0 BY 1
                    UNTIL RETURN-CODE = -1
               CALL 'CBL_GC_GETOPT' USING
                  BY REFERENCE SO LO LONGIND
                  BY VALUE     LONG-ONLY
                  BY REFERENCE RETURN-CHAR OPT-VAL
               END-CALL

               EVALUATE COUNTER
                  WHEN 0
                     IF RETURN-CODE NOT = 0 OR
                        FLAG-VAL    NOT = '1' THEN
                        DISPLAY '0-ERROR: ' RET-DISP ' ' FLAG-VAL
                        END-DISPLAY
                     END-IF
                  WHEN 1
                     IF RETURN-CODE NOT = 0 OR
                        FLAG-VAL    NOT = '0' THEN
                        DISPLAY '1-ERROR: ' RET-DISP ' ' FLAG-VAL
                        END-DISPLAY
                     END-IF
                  WHEN 2
                     IF RETURN-CHAR NOT = 'u' OR
                        RETURN-CODE NOT = 2 THEN
                        DISPLAY '2-ERROR: ' RET-DISP ' ' FLAG-VAL
                        END-DISPLAY
                     END-IF
                  WHEN 3
                     IF RETURN-CODE NOT = -1 THEN
                        MOVE RETURN-CODE TO RET-DISP
                        DISPLAY 'last RETURN-CODE wrong: ' RET-DISP
                        END-DISPLAY
                     END-IF
                     EXIT PERFORM
               END-EVALUATE
            END-PERFORM.

            MOVE 0 TO RETURN-CODE.

            IF COUNTER NOT = 3 THEN
               MOVE RETURN-CODE TO RET-DISP
               DISPLAY 'CBL_GC_GETOPT returned -1 too early: ' COUNTER
               END-DISPLAY
            END-IF.

            STOP RUN.
_ATEOF


cat >prog5.cob <<'_ATEOF'

        IDENTIFICATION DIVISION.
        PROGRAM-ID. prog5.
      *> check for wrong longoption structure
        DATA DIVISION.
        WORKING-STORAGE SECTION.
            01 SO PIC X.
            01 LO.
                05 OPTIONRECORD OCCURS 2 TIMES.
                    10 ONAME        PIC X(45).
                    10 HAS-VALUE    PIC 9.
                    10 VALPOINT     POINTER     VALUE NULL.
                    10 VAL          PIC X(4).
            01 LONGIND       PIC 99.
            01 LONG-ONLY     PIC 9 VALUE 1.
            01 RETURN-CHAR   PIC X(4).
            01 OPT-VAL       PIC X(10).
            01 RET-DISP      PIC S999 VALUE 0.

            01 COUNTER       PIC 9 VALUE 0.

            01 FLAG-VAL      PIC 9.
        PROCEDURE DIVISION.
            MOVE "super-long-option-with-more-than-25-bytes"
              TO ONAME(1).
            MOVE 0   TO HAS-VALUE(1).
            MOVE '1' TO VAL(1).

            MOVE "stupid-long-option-with-more-than-25-bytes"
              TO ONAME(2).
            MOVE 0   TO HAS-VALUE(2).
            MOVE '0' TO VAL(2).

            PERFORM WITH TEST AFTER
                    VARYING COUNTER FROM 0 BY 1
                    UNTIL RETURN-CODE = -1
               CALL 'CBL_GC_GETOPT' USING
                  BY REFERENCE SO LO LONGIND
                  BY VALUE     LONG-ONLY
                  BY REFERENCE RETURN-CHAR OPT-VAL
               END-CALL

               EVALUATE COUNTER
                  WHEN 0
                  WHEN 1
                  WHEN 2
                     CONTINUE

      *>       MOVE RETURN-CODE TO RET-DISP

      *>       IF COUNTER = 0 AND RETURN-CODE NOT = 1 THEN
      *>          DISPLAY 'RETURN VALUE: ' RET-DISP ' ' FLAG-VAL
      *>       END-IF
                  WHEN 3
                     IF RETURN-CODE NOT = -1 THEN
                        MOVE RETURN-CODE TO RET-DISP
                        DISPLAY 'last RETURN-CODE wrong: ' RET-DISP
                        END-DISPLAY
                     END-IF
                     EXIT PERFORM
               END-EVALUATE
            END-PERFORM.

            MOVE 0 TO RETURN-CODE.

            IF COUNTER NOT = 3 THEN
               MOVE RETURN-CODE TO RET-DISP
               DISPLAY 'CBL_GC_GETOPT returned -1 too early: ' COUNTER
               END-DISPLAY
            END-IF.

            STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4508: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4508"
( $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/run_extensions.at:4508"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4509: \$COBCRUN_DIRECT ./prog --version --verbose -jkl"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog --version --verbose -jkl" "run_extensions.at:4509"
( $at_check_trace; $COBCRUN_DIRECT ./prog --version --verbose -jkl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4509"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4510: \$COMPILE_MODULE prog2.cob"
at_fn_check_prepare_dynamic "$COMPILE_MODULE prog2.cob" "run_extensions.at:4510"
( $at_check_trace; $COMPILE_MODULE prog2.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/run_extensions.at:4510"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4511: \$COBCRUN prog2 --ver --vers"
at_fn_check_prepare_dynamic "$COBCRUN prog2 --ver --vers" "run_extensions.at:4511"
( $at_check_trace; $COBCRUN prog2 --ver --vers
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "prog2: option '--ver' is ambiguous; possibilities: '--version' '--verbose'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4511"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4514: \$COMPILE prog3.cob"
at_fn_check_prepare_dynamic "$COMPILE prog3.cob" "run_extensions.at:4514"
( $at_check_trace; $COMPILE prog3.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/run_extensions.at:4514"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4515: \$COBCRUN_DIRECT ./prog3 --version=lang --verbose=k --usage -j 5 -k6 -l"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog3 --version=lang --verbose=k --usage -j 5 -k6 -l" "run_extensions.at:4515"
( $at_check_trace; $COBCRUN_DIRECT ./prog3 --version=lang --verbose=k --usage -j 5 -k6 -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4515"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4516: \$COMPILE prog4.cob --free"
at_fn_check_prepare_dynamic "$COMPILE prog4.cob --free" "run_extensions.at:4516"
( $at_check_trace; $COMPILE prog4.cob --free
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4516"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4517: \$COBCRUN_DIRECT ./prog4 --static --dynamic --usage=boringandtoolongtext"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog4 --static --dynamic --usage=boringandtoolongtext" "run_extensions.at:4517"
( $at_check_trace; $COBCRUN_DIRECT ./prog4 --static --dynamic --usage=boringandtoolongtext
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4517"
$at_failed && at_fn_log_failure
$at_traceon; }

# Again a long and system specific error message which we ignore.
# Return code 1 is sufficient as proof of hard return (as wanted).
{ set +x
$as_echo "$at_srcdir/run_extensions.at:4520: \$COMPILE prog5.cob"
at_fn_check_prepare_dynamic "$COMPILE prog5.cob" "run_extensions.at:4520"
( $at_check_trace; $COMPILE prog5.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/run_extensions.at:4520"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4521: \$COBCRUN_DIRECT ./prog5 --static"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog5 --static" "run_extensions.at:4521"
( $at_check_trace; $COBCRUN_DIRECT ./prog5 --static
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog5.cob:37: error: Call to CBL_GC_GETOPT with wrong longoption size.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:4521"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1026
#AT_START_1027
at_fn_group_banner 1027 'run_extensions.at:4528' \
  "System routine CBL_GC_FORK" "                     " 4
at_xfail=no
(
  $as_echo "1027. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 CHILD-PID   USAGE BINARY-LONG.
       77 PARENT-PID  USAGE BINARY-LONG.
       PROCEDURE DIVISION.

           CALL "C$GETPID" RETURNING PARENT-PID
           CALL "CBL_GC_FORK" END-CALL
           EVALUATE RETURN-CODE
              WHEN ZERO
                 PERFORM CHILD-CODE
              WHEN -1
                 STOP RUN RETURNING 77 *> skip test
              WHEN OTHER
                 PERFORM PARENT-CODE
           END-EVALUATE

           STOP RUN.

       CHILD-CODE.
           CALL "C$SLEEP"  USING 1.
           DISPLAY "Hello, I am the child".
           CALL "C$GETPID" RETURNING CHILD-PID.
           IF CHILD-PID = PARENT-PID
              DISPLAY "CHILD: parent and child have same PID: "
                      "'" CHILD-PID "'" UPON SYSERR
              END-DISPLAY
           END-IF.
           MOVE 0 TO RETURN-CODE.

       PARENT-CODE.
           DISPLAY "Hello, I am the parent".
           CALL "C$SLEEP"  USING 4.
           DISPLAY "Parent again".
           IF RETURN-CODE = PARENT-PID
              DISPLAY "PARENT: parent and child have same PID: "
                      "'" PARENT-PID "'" UPON SYSERR
              END-DISPLAY
           END-IF.
           CALL "C$GETPID".
           IF RETURN-CODE NOT = PARENT-PID
              DISPLAY "PARENT: parent PID has changed: "
                      "'" PARENT-PID "' -> '" RETURN-CODE "'"
                      UPON SYSERR
              END-DISPLAY
           END-IF.
           MOVE 0 TO RETURN-CODE.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4583: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4583"
( $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/run_extensions.at:4583"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4585: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4585"
( $at_check_trace; $COBCRUN_DIRECT ./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, I am the parent
Hello, I am the child
Parent again
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4585"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1027
#AT_START_1028
at_fn_group_banner 1028 'run_extensions.at:4596' \
  "System routine CBL_GC_WAITPID" "                  " 4
at_xfail=no
(
  $as_echo "1028. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 CHILD-PID   PIC S9(9) BINARY.
       01 WAIT-STS    PIC S9(9) BINARY VALUE -3.
       PROCEDURE DIVISION.

           CALL "CBL_GC_FORK" RETURNING CHILD-PID.
           EVALUATE CHILD-PID
              WHEN ZERO
                 PERFORM CHILD-CODE
              WHEN -1
                 STOP RUN RETURNING 77 *> skip test
              WHEN OTHER
                 PERFORM PARENT-CODE
           END-EVALUATE.

           STOP RUN.

       CHILD-CODE.
           CALL "C$SLEEP" USING 1.
           DISPLAY "Hello, I am the child".
           MOVE 2 TO RETURN-CODE.

       PARENT-CODE.
           DISPLAY "Hello, I am the parent".
           CALL "CBL_GC_WAITPID" USING CHILD-PID
              RETURNING WAIT-STS
           END-CALL
           MOVE 0 TO RETURN-CODE
           IF WAIT-STS = -1
              STOP RUN RETURNING 77 *> skip test
           END-IF
           DISPLAY "Child ended status " WAIT-STS
           END-DISPLAY.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4638: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4638"
( $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/run_extensions.at:4638"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4640: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4640"
( $at_check_trace; $COBCRUN_DIRECT ./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, I am the parent
Hello, I am the child
Child ended status +000000002
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4640"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1028
#AT_START_1029
at_fn_group_banner 1029 'run_extensions.at:4648' \
  "System routine CBL_GC_HOSTED" "                   " 4
at_xfail=no
(
  $as_echo "1029. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >test_errno.c <<'_ATEOF'

#include <errno.h>
#include <stdio.h>

#include <libcob.h>

COB_EXT_EXPORT int
test_errno(void)
{
    FILE *fail;
    fail = fopen("file-not-to-be-found", "r");
    if (errno != 2) {
        printf("BAD ERRNO %d", errno);
    } else {
        if (fail) fclose(fail);
    }
    return 0;
}
_ATEOF


cat >test_stdio.c <<'_ATEOF'

#include <stdio.h>

#include <libcob.h>
COB_EXT_EXPORT int
test_stdio(FILE *si, FILE *so, FILE *se)
{
    if (feof(si)) {
        fprintf(se, "BAD STDIN EOF\n");
    }
    fprintf(so, "OUT");
    return fprintf(se, "ERR");
}
_ATEOF

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 STDIN    USAGE POINTER.
       01 STDOUT   USAGE POINTER.
       01 STDERR   USAGE POINTER.
       01 CELL     USAGE BINARY-LONG.
       01 ARGC     USAGE BINARY-LONG.
       01 ARGV     USAGE POINTER.
       01 ERRPTR   USAGE POINTER.
       01 ERRNO    USAGE BINARY-LONG BASED.
       01 CERRNO   USAGE BINARY-LONG EXTERNAL AS "errno".
       01 TZNAME   USAGE POINTER.
       01 TZNAMES  USAGE POINTER BASED.
          05 TZS      USAGE POINTER OCCURS 2 TIMES.
       01 TIMEZONE USAGE BINARY-C-LONG.
       01 DAYLIGHT USAGE BINARY-LONG.
       01 EXTPTR   USAGE POINTER. *> only for the check, otherwise unused

       PROCEDURE DIVISION.
           CALL "CBL_GC_HOSTED" USING STDIN "stdin"
           CALL "CBL_GC_HOSTED" USING STDOUT "stdout"
           CALL "CBL_GC_HOSTED" USING STDERR "stderr"
      *> verify working alias with old name "CBL_OC_HOSTED"
           CALL "CBL_OC_HOSTED" USING ARGC "argc"
           CALL "CBL_OC_HOSTED" USING ARGV "argv"
           CALL "CBL_GC_HOSTED" USING CELL "cell"
           CALL "CBL_GC_HOSTED" USING ERRPTR "errno"
           CALL "CBL_GC_HOSTED" USING ARGC "arg"
           CALL "CBL_GC_HOSTED" USING NULL "argc"
           SET ADDRESS OF ERRNO TO ERRPTR
           CALL "CBL_GC_HOSTED" USING TZNAME "tzname"
           CALL "CBL_GC_HOSTED" USING TIMEZONE "timezone"
           CALL "CBL_GC_HOSTED" USING DAYLIGHT "daylight"

      *> prog.cob must be compiled with same C runtime as libcob to match...
           IF ERRPTR NOT EQUAL ADDRESS OF CERRNO
              DISPLAY "ADDRESS OF ERRNO VARIABLES DON'T MATCH"
              SET EXTPTR TO ADDRESS OF CERRNO
              DISPLAY "HOSTED: "   ERRPTR ", "
                      "EXTERNAL: " EXTPTR
              END-DISPLAY
           END-IF

      *> test_errno.c must be compiled with same C runtime as libcob to match...
           CALL "test_errno"
           IF ERRNO NOT EQUAL 2 THEN
              DISPLAY "BAD HOSTED ERRNO " ERRNO
              IF CERRNO NOT EQUAL 2 THEN
                 DISPLAY "BAD EXTERNAL ERRNO " CERRNO
              END-IF
           END-IF

           IF ARGC NOT EQUAL 2 THEN
              DISPLAY "BAD ARGC " ARGC
           END-IF
           IF ARGV EQUAL NULL THEN
              DISPLAY "BAD ARGV"
           END-IF

           IF CELL LESS THAN 0 OR GREATER THAN 8 THEN
              DISPLAY "UNK CELL " CELL
           END-IF

           SET ENVIRONMENT "TZ" TO "PST8PDT"
           CALL "tzset" RETURNING OMITTED
              ON EXCEPTION CONTINUE
           END-CALL
           IF TZNAME NOT EQUAL NULL THEN
              SET ADDRESS OF TZNAMES TO TZNAME
              IF TZS(1) EQUAL NULL THEN
                 DISPLAY "BAD TZNAME" END-DISPLAY
              END-IF
           END-IF

      *> Test assumes return-code will be 3, chars output by last fprintf
      *> test_stdio.c must be compiled with same C runtime as libcob to match...
           CALL "test_stdio" USING BY VALUE STDIN STDOUT STDERR
           END-CALL

           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4770: \$COMPILE_MODULE test_errno.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE test_errno.c" "run_extensions.at:4770"
( $at_check_trace; $COMPILE_MODULE test_errno.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/run_extensions.at:4770"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4771: \$COMPILE_MODULE test_stdio.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE test_stdio.c" "run_extensions.at:4771"
( $at_check_trace; $COMPILE_MODULE test_stdio.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/run_extensions.at:4771"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4772: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4772"
( $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/run_extensions.at:4772"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4773: \$COBCRUN_DIRECT ./prog 1ARG"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog 1ARG" "run_extensions.at:4773"
( $at_check_trace; $COBCRUN_DIRECT ./prog 1ARG
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ERR" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OUT" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 3 $at_status "$at_srcdir/run_extensions.at:4773"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1029
#AT_START_1030
at_fn_group_banner 1030 'run_extensions.at:4778' \
  "System routine SYSTEM, parameter handling" "      " 4
at_xfail=no
(
  $as_echo "1030. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
      *
       77  test-no                    PIC 9 VALUE 0.
       77  chaining-param             PIC X(20).
       77  chaining-param-2           PIC X(20).
      *
       PROCEDURE DIVISION CHAINING chaining-param, chaining-param-2.
      *
       main.
           EVALUATE chaining-param ALSO chaining-param-2
              WHEN SPACES  ALSO SPACES
                 DISPLAY "started without options - closing"
              WHEN "1"     ALSO SPACES
              WHEN '"1"'   ALSO SPACES
              WHEN "a v"   ALSO SPACES
              WHEN '"a v"' ALSO SPACES
                 DISPLAY "  called with -"
                         function trim (chaining-param) "-"
              WHEN "a"    ALSO "v"
                 DISPLAY "  called with -"
                         FUNCTION TRIM (chaining-param) "-"
                         " and with -"
                         FUNCTION TRIM (chaining-param-2) "-"
              WHEN "start" ALSO SPACES
                 MOVE 'prog 1'         TO chaining-param
                 PERFORM callme
                 MOVE 'prog "1"'       TO chaining-param
                 PERFORM callme
                 MOVE '"prog" 1'       TO chaining-param
                 PERFORM callme
                 MOVE '"prog" "1"'     TO chaining-param
                 PERFORM callme
                 MOVE 'prog a v'       TO chaining-param
                 PERFORM callme
                 MOVE 'prog "a v"'     TO chaining-param
                 PERFORM callme
                 MOVE '"prog" a v'     TO chaining-param
                 PERFORM callme
                 MOVE '"prog" "a v"'   TO chaining-param
                 PERFORM callme
                 MOVE '"prog" "a" "v"' TO chaining-param
                 PERFORM callme
                 DISPLAY "tests finished"
              WHEN OTHER
                 DISPLAY "called with unexpected -"
                         FUNCTION TRIM (chaining-param) "-"
           END-EVALUATE
           STOP RUN.
      *
       callme.
           ADD  1 TO test-no.
           DISPLAY "Test #" test-no ":"
           DISPLAY "  CALL 'SYSTEM' with "
                   FUNCTION TRIM (chaining-param) ":"
           CALL "SYSTEM" USING FUNCTION TRIM (chaining-param)
           DISPLAY "  --> return of the given CALL 'SYSTEM': "
                   return-code.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4845: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4845"
( $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/run_extensions.at:4845"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4846: PATH=.:\$PATH \$COBCRUN_DIRECT prog \"start\""
at_fn_check_prepare_dynamic "PATH=.:$PATH $COBCRUN_DIRECT prog \"start\"" "run_extensions.at:4846"
( $at_check_trace; PATH=.:$PATH $COBCRUN_DIRECT prog "start"
) >>"$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 "Test #1:
  CALL 'SYSTEM' with prog 1:
  called with -1-
  --> return of the given CALL 'SYSTEM': +000000000
Test #2:
  CALL 'SYSTEM' with prog \"1\":
  called with -1-
  --> return of the given CALL 'SYSTEM': +000000000
Test #3:
  CALL 'SYSTEM' with \"prog\" 1:
  called with -1-
  --> return of the given CALL 'SYSTEM': +000000000
Test #4:
  CALL 'SYSTEM' with \"prog\" \"1\":
  called with -1-
  --> return of the given CALL 'SYSTEM': +000000000
Test #5:
  CALL 'SYSTEM' with prog a v:
  called with -a- and with -v-
  --> return of the given CALL 'SYSTEM': +000000000
Test #6:
  CALL 'SYSTEM' with prog \"a v\":
  called with -a v-
  --> return of the given CALL 'SYSTEM': +000000000
Test #7:
  CALL 'SYSTEM' with \"prog\" a v:
  called with -a- and with -v-
  --> return of the given CALL 'SYSTEM': +000000000
Test #8:
  CALL 'SYSTEM' with \"prog\" \"a v\":
  called with -a v-
  --> return of the given CALL 'SYSTEM': +000000000
Test #9:
  CALL 'SYSTEM' with \"prog\" \"a\" \"v\":
  called with -a- and with -v-
  --> return of the given CALL 'SYSTEM': +000000000
tests finished
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:4846"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1030
#AT_START_1031
at_fn_group_banner 1031 'run_extensions.at:4889' \
  "System routine CBL_ERROR_PROC (1)" "              " 4
at_xfail=no
(
  $as_echo "1031. $at_setup_line: testing $at_desc ..."
  $at_traceon



# tests that error handlers work (later for ACU: test for re-ordered)
# including multiple error handlers

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. DemoErrProc IS RECURSIVE.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77  Err-Proc-Address            USAGE PROGRAM-POINTER.
       77  Err-Message-Len             PIC 9(04) USAGE COMP-5.
       LINKAGE SECTION.
       77  Err-Message-From-Runtime    PIC X(1023).
       PROCEDURE DIVISION.
       S1.
           DISPLAY 'Program is starting'
      *>   Do this for the ACU test, where second call moves top front
      *>   SET Err-Proc-Address TO ENTRY 'ErrProc-internal'
      *>   CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
           SET Err-Proc-Address TO ENTRY 'ErrProc'
           CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
           SET Err-Proc-Address TO ENTRY 'ErrProc-internal'
           CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
      *>   Ensure susbequent CALLs with the same one are ignored (MF!)
           SET Err-Proc-Address TO ENTRY 'ErrProc'
           CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
           SET Err-Proc-Address TO NULL
           CALL 'Tilt' *> THIS DOESN'T EXIST!!!!
           DISPLAY 'Program is stopping'
           STOP RUN
           .
       ENTRY 'ErrProc-internal' USING Err-Message-From-Runtime.
           DISPLAY 'Error (interal): ' FUNCTION EXCEPTION-LOCATION  '-'
           DISPLAY '                 ' FUNCTION EXCEPTION-STATEMENT '-'
           DISPLAY '                 ' FUNCTION EXCEPTION-STATUS    '-'
           *> NOTE: the error message is *EXPLICIT* specified to end with x'00'
           MOVE 0 TO Err-Message-Len
           INSPECT Err-Message-From-Runtime
              TALLYING Err-Message-Len FOR CHARACTERS BEFORE x'00'
           DISPLAY 'Error-Message:   ' Err-Message-From-Runtime
                                       (1:Err-Message-Len)
           DISPLAY '-*- Returning to Next Error Routine -*-'
           MOVE    1         TO RETURN-CODE
           EXIT PROGRAM
           .
       END PROGRAM DemoErrProc.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. ErrProc.
       PROCEDURE DIVISION.
       000-Main.
           DISPLAY 'Error: ' FUNCTION EXCEPTION-LOCATION  '-'
           DISPLAY '       ' FUNCTION EXCEPTION-STATEMENT '-'
           DISPLAY '       ' FUNCTION EXCEPTION-STATUS    '-'
           DISPLAY '-*- Returning to Standard Error Routine -*-'
           MOVE    1         TO RETURN-CODE
           EXIT PROGRAM
           .
       END PROGRAM ErrProc.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4953: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:4953"
( $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/run_extensions.at:4953"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4954: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:4954"
( $at_check_trace; $COBCRUN_DIRECT ./prog
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: prog.cob:25: error: module 'Tilt' not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Program is starting
Error (interal): DemoErrProc; S1; 25-
                 CALL                           -
                 EC-PROGRAM-NOT-FOUND           -
Error-Message:   prog.cob:25: module 'Tilt' not found
-*- Returning to Next Error Routine -*-
Error: DemoErrProc; S1; 25-
       CALL                           -
       EC-PROGRAM-NOT-FOUND           -
-*- Returning to Standard Error Routine -*-
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:4954"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/run_extensions.at:4969: \$COBC -x -o prog_noloc prog.cob"
at_fn_check_prepare_dynamic "$COBC -x -o prog_noloc prog.cob" "run_extensions.at:4969"
( $at_check_trace; $COBC -x -o prog_noloc 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/run_extensions.at:4969"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:4970: \$COBCRUN_DIRECT ./prog_noloc"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog_noloc" "run_extensions.at:4970"
( $at_check_trace; $COBCRUN_DIRECT ./prog_noloc
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "libcob: error: module 'Tilt' not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Program is starting
Error (interal):  -
                                                -
                 EC-PROGRAM-NOT-FOUND           -
Error-Message:   module 'Tilt' not found
-*- Returning to Next Error Routine -*-
Error:  -
                                      -
       EC-PROGRAM-NOT-FOUND           -
-*- Returning to Standard Error Routine -*-
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:4970"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1031
#AT_START_1032
at_fn_group_banner 1032 'run_extensions.at:4988' \
  "System routine CBL_ERROR_PROC (2)" "              " 4
at_xfail=no
(
  $as_echo "1032. $at_setup_line: testing $at_desc ..."
  $at_traceon



# tests that error handlers can stop the processing,
# including the internal error handler
# and that the MF "LOCAL-STORAGE implies RECURSIVE" works

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. DemoErrProc.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77  Err-Proc-Address            USAGE PROGRAM-POINTER.
       77  Err-Message-Len             PIC 9(04) USAGE COMP-5.
       LOCAL-STORAGE SECTION.  *> can even be empty...
       LINKAGE SECTION.
       77  Err-Message-From-Runtime    PIC X(1023).
       PROCEDURE DIVISION.
       S1.
           DISPLAY 'Program is starting'
           SET Err-Proc-Address TO ENTRY 'ErrProc'
           CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
           SET Err-Proc-Address TO ENTRY 'ErrProc-internal'
           CALL 'CBL_ERROR_PROC' USING 0, Err-Proc-Address
           SET Err-Proc-Address TO NULL
           CALL 'Tilt' *> THIS DOESN'T EXIST!!!!
           DISPLAY 'Program is stopping'
           STOP RUN
           .
       ENTRY 'ErrProc-internal' USING Err-Message-From-Runtime.
           DISPLAY 'Error (interal): ' FUNCTION EXCEPTION-LOCATION  '-'
           DISPLAY '                 ' FUNCTION EXCEPTION-STATEMENT '-'
           DISPLAY '                 ' FUNCTION EXCEPTION-STATUS    '-'
           *> NOTE: the error message is *EXPLICIT* specified to end with x'00'
           MOVE 0 TO Err-Message-Len
           INSPECT Err-Message-From-Runtime
              TALLYING Err-Message-Len FOR CHARACTERS BEFORE x'00'
           DISPLAY 'Error-Message:   ' Err-Message-From-Runtime
                                       (1:Err-Message-Len)
           DISPLAY '-*- Stop error routines here -*-'
           MOVE    0         TO RETURN-CODE
           EXIT PROGRAM
           .
       END PROGRAM DemoErrProc.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. ErrProc.
       PROCEDURE DIVISION.
       000-Main.
           DISPLAY 'Error: ' FUNCTION EXCEPTION-LOCATION  '-'
           DISPLAY '       ' FUNCTION EXCEPTION-STATEMENT '-'
           DISPLAY '       ' FUNCTION EXCEPTION-STATUS    '-'
           DISPLAY '-*- Returning to Standard Error Routine -*-'
           MOVE    1         TO RETURN-CODE
           EXIT PROGRAM
           .
       END PROGRAM ErrProc.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5048: \$COMPILE -std=mf prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=mf prog.cob" "run_extensions.at:5048"
( $at_check_trace; $COMPILE -std=mf 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/run_extensions.at:5048"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5049: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:5049"
( $at_check_trace; $COBCRUN_DIRECT ./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 "Program is starting
Error (interal): DemoErrProc; S1; 20-
                 CALL                           -
                 EC-PROGRAM-NOT-FOUND           -
Error-Message:   prog.cob:20: module 'Tilt' not found
-*- Stop error routines here -*-
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/run_extensions.at:5049"
$at_failed && at_fn_log_failure
$at_traceon; }


# to be done
#AT_CHECK([$COMPILE -o prog_noloc prog.cob], [0], [], [])
#AT_CHECK([$COBCRUN_DIRECT ./prog_noloc], [1],
#[Program is starting
#],
#[libcob: error: recursive CALL from 'DemoErrProc' to 'DemoErrProc' which is NOT RECURSIVE
#])

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1032
#AT_START_1033
at_fn_group_banner 1033 'run_extensions.at:5069' \
  "DISPLAY DIRECTIVE and \$DISPLAY" "                 " 4
at_xfail=no
(
  $as_echo "1033. $at_setup_line: testing $at_desc ..."
  $at_traceon



# note: as we do support inline comments here we do not
#       allow the * to be part of a non-literal output

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 var1          pic x.
       $DISPLAY  MF compile time text # A.0-B;C *> without comment
       01 var2          pic x.
       >> DISPLAY some.text-here
       01 var3          pic x.
       PROCEDURE        DIVISION.
       >> DISPLAY   other  text #2  *> comment
       >> DISPLAY  "literal text...  *> no comment"
       $DISPLAY  "MF compile time text"
           GOBACK.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:5092: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:5092"
( $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=:
echo >>"$at_stdout"; $as_echo "MF compile time text # A.0-B;C
some.text-here
other  text #2
literal text...  *> no comment
MF compile time text
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:5092"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1033
#AT_START_1034
at_fn_group_banner 1034 'run_extensions.at:5102' \
  "Conditional / define directives (1)" "            " 4
at_xfail=no
(
  $as_echo "1034. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       >>IF ACTIVATE NOT DEFINED
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY
       >>ELSE
           DISPLAY "NOTOK" NO ADVANCING
           END-DISPLAY
       >>END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:5121: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:5121"
( $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/run_extensions.at:5121"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5122: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:5122"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:5122"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1034
#AT_START_1035
at_fn_group_banner 1035 'run_extensions.at:5127' \
  "Conditional / define directives (2)" "            " 4
at_xfail=no
(
  $as_echo "1035. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       >>IF ACTIVATE DEFINED
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY
       >>ELSE
           DISPLAY "NOTOK" NO ADVANCING
           END-DISPLAY
       >>END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:5146: \$COMPILE -DACTIVATE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -DACTIVATE prog.cob" "run_extensions.at:5146"
( $at_check_trace; $COMPILE -DACTIVATE 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/run_extensions.at:5146"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5147: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:5147"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:5147"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1035
#AT_START_1036
at_fn_group_banner 1036 'run_extensions.at:5152' \
  "Conditional / define directives (3)" "            " 4
at_xfail=no
(
  $as_echo "1036. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       >>IF ACTIVATE DEFINED
           DISPLAY "NOTOK" NO ADVANCING
           END-DISPLAY
       >>ELIF ACTIVATE2 DEFINED
           DISPLAY "OK" NO ADVANCING
           END-DISPLAY
       >>ELSE
           DISPLAY "NOTOK" NO ADVANCING
           END-DISPLAY
       >>END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:5174: \$COMPILE -DACTIVATE2 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -DACTIVATE2 prog.cob" "run_extensions.at:5174"
( $at_check_trace; $COMPILE -DACTIVATE2 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/run_extensions.at:5174"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5175: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:5175"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:5175"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1036
#AT_START_1037
at_fn_group_banner 1037 'run_extensions.at:5180' \
  "Conditional / define directives (4)" "            " 4
at_xfail=no
(
  $as_echo "1037. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       PROCEDURE        DIVISION.
       >>IF ACTIVATE DEFINED
           DISPLAY "NOTOK" NO ADVANCING
           END-DISPLAY
       >>ELIF ACTIVATE2 DEFINED
       >>ELSE
           DISPLAY "NOTOK" NO ADVANCING
           END-DISPLAY
       >>END-IF
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:5200: \$COMPILE -DACTIVATE2 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -DACTIVATE2 prog.cob" "run_extensions.at:5200"
( $at_check_trace; $COMPILE -DACTIVATE2 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/run_extensions.at:5200"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5201: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:5201"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_extensions.at:5201"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1037
#AT_START_1038
at_fn_group_banner 1038 'run_extensions.at:5206' \
  "Variable format" "                                " 4
at_xfail=no
(
  $as_echo "1038. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       >>SOURCE FORMAT VARIABLE
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. prog.
000030* blah blah blah
000040 PROCEDURE DIVISION.
000050                                                                  DISPLAY "Hello!"
000060     .
000070 END PROGRAM prog.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:5220: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:5220"
( $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/run_extensions.at:5220"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5221: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:5221"
( $at_check_trace; $COBCRUN_DIRECT ./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!
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:5221"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1038
#AT_START_1039
at_fn_group_banner 1039 'run_extensions.at:5228' \
  "Binary COMP-1 (1)" "                              " 4
at_xfail=no
(
  $as_echo "1039. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  comp1       COMP-1.
       01  num         PIC 9.9.

       PROCEDURE       DIVISION.
           COMPUTE comp1 = 7 / 2
           MOVE comp1 TO num
           DISPLAY num
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:5247: \$COMPILE -fbinary-comp-1 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fbinary-comp-1 prog.cob" "run_extensions.at:5247"
( $at_check_trace; $COMPILE -fbinary-comp-1 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/run_extensions.at:5247"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5248: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:5248"
( $at_check_trace; $COBCRUN_DIRECT ./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.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:5248"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5251: \$COMPILE -fno-binary-comp-1 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fno-binary-comp-1 prog.cob" "run_extensions.at:5251"
( $at_check_trace; $COMPILE -fno-binary-comp-1 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/run_extensions.at:5251"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5252: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:5252"
( $at_check_trace; $COBCRUN_DIRECT ./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.5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:5252"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1039
#AT_START_1040
at_fn_group_banner 1040 'run_extensions.at:5259' \
  "Binary COMP-1 (2)" "                              " 4
at_xfail=no
(
  $as_echo "1040. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       >>IF BINARY-COMP-1 IS DEFINED
           $SET COMP-1(BINARY)
       >>ELSE
           $SET COMP1 "float"
       >>END-IF
       IDENTIFICATION  DIVISION.
       PROGRAM-ID.     prog.

       DATA            DIVISION.
       WORKING-STORAGE SECTION.
       01  comp1       COMP-1.
       01  num         PIC 9.9.

       PROCEDURE       DIVISION.
           COMPUTE comp1 = 7 / 2
           MOVE comp1 TO num
           DISPLAY num
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:5283: \$COMPILE -DBINARY-COMP-1 prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -DBINARY-COMP-1 prog.cob" "run_extensions.at:5283"
( $at_check_trace; $COMPILE -DBINARY-COMP-1 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/run_extensions.at:5283"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5284: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:5284"
( $at_check_trace; $COBCRUN_DIRECT ./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.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:5284"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5287: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_extensions.at:5287"
( $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/run_extensions.at:5287"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5288: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:5288"
( $at_check_trace; $COBCRUN_DIRECT ./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.5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:5288"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1040
#AT_START_1041
at_fn_group_banner 1041 'run_extensions.at:5295' \
  "EXHIBIT statement" "                              " 4
at_xfail=no
(
  $as_echo "1041. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       77 VAR-1         PIC X(8).
       77 VAR-2         PIC 999.
       PROCEDURE        DIVISION.
           EXHIBIT CHANGED VAR-1 'X'
           MOVE ALL 'X' TO VAR-1
           MOVE 123 TO VAR-1
           EXHIBIT NAMED VAR-1 VAR-2 'Y'
           EXHIBIT VAR-2
           EXHIBIT RETURN-CODE TALLY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_extensions.at:5315: \$COMPILE -Wno-strict-typing -Wno-pending prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -Wno-strict-typing -Wno-pending prog.cob" "run_extensions.at:5315"
( $at_check_trace; $COMPILE -Wno-strict-typing -Wno-pending 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/run_extensions.at:5315"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_extensions.at:5316: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_extensions.at:5316"
( $at_check_trace; $COBCRUN_DIRECT ./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
VAR-1 = 123      VAR-2 = 000 Y
VAR-2 = 000
RETURN-CODE = +000000000 TALLY = 00000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_extensions.at:5316"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1041
#AT_START_1042
at_fn_group_banner 1042 'run_ml.at:19' \
  "XML GENERATE general" "                           " 4
at_xfail=no
(
  $as_echo "1042. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:22" >"$at_check_line_file"
(test "$COB_HAS_XML2" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:22"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION       DIVISION.
       PROGRAM-ID.          prog.

       DATA                 DIVISION.
       WORKING-STORAGE      SECTION.
       01  namespace-str    PIC X(100)
                            VALUE 'http://www.w3.org/1999/xhtml'.
       01  prefix-str       PIC X(100) VALUE 'pre'.

       01  out              PIC X(200).
       01  rec.
           03  a            PIC X(3) VALUE 'A'.
           03  b            PIC X(3) VALUE ALL 'B'.
           03  c.
               05  d        PIC X(3) VALUE SPACES.

       01  0SpecialTAGName  PIC X(3) VALUE "abc".

       01  employee.
           05 id            PIC 9(1)  value 1.
           05 name          PIC X(10) value "Someone".
           05 dept          PIC X(10) value "Marketing".

       PROCEDURE            DIVISION.
           XML GENERATE out
               FROM rec
               WITH XML-DECLARATION
               NAME OF a IS 'alpha', d IS 'ABCDEF';
               TYPE OF a IS ATTRIBUTE
               SUPPRESS WHEN SPACES
           IF out <> '<?xml version="1.0"?>' & X'0A'
                   & '<rec alpha="A"><b>BBB</b></rec>'
               DISPLAY 'Test 1 failed: ' FUNCTION TRIM (out)
           END-IF

           XML GENERATE out FROM d
           IF out <> '<d> </d>'
               DISPLAY 'Test 2 failed: ' FUNCTION TRIM (out)
           END-IF

           XML GENERATE out FROM c, WITH ATTRIBUTES.
           IF out <> '<c d=" "/>'
               DISPLAY 'Test 3 failed: ' FUNCTION TRIM (out)
           END-IF

           MOVE ALL 'A' TO a
           MOVE ALL 'C' TO c
           XML GENERATE out FROM rec, TYPE OF a IS CONTENT,
               b IS CONTENT, d IS CONTENT
           IF out <> '<rec>AAABBB<c>CCC</c></rec>'
               DISPLAY 'Test 4 failed: ' FUNCTION TRIM (out)
           END-IF

           XML GENERATE out FROM rec, TYPE OF a IS CONTENT, d IS CONTENT
           IF out <> '<rec>AAA<b>BBB</b><c>CCC</c></rec>'
               DISPLAY 'Test 5 failed: ' FUNCTION TRIM (out)
           END-IF

           XML GENERATE out FROM c, NAMESPACE namespace-str,
               NAMESPACE-PREFIX prefix-str
           IF out <> '<pre:c xmlns:pre="http://www.w3.org/1999/xhtml">'-
                   '<pre:d>CCC</pre:d></pre:c>'
               DISPLAY 'Test 6 failed: ' FUNCTION TRIM (out)
                   " " XML-CODE
           END-IF

           MOVE SPACES TO namespace-str, prefix-str
           XML GENERATE out FROM c, NAMESPACE namespace-str,
               NAMESPACE-PREFIX prefix-str
           IF out <> '<c><d>CCC</d></c>'
               DISPLAY 'Test 7 failed: ' FUNCTION TRIM (out)
           END-IF

           MOVE ALL "&" TO d
           XML GENERATE out FROM d
           IF out <> '<d>&amp;&amp;&amp;</d>'
               DISPLAY 'Test 8 failed: ' FUNCTION TRIM (out)
           END-IF

           *> Test the case of the id in the DATA DIVISION is preserved.
           XML GENERATE out FROM 0specialtagname
           IF out <> '<_0SpecialTAGName>abc</_0SpecialTAGName>'
               DISPLAY 'Test 9 failed: ' FUNCTION TRIM (out)
           END-IF
           .

           *> Another test with mixed attributes and values
           XML GENERATE out FROM EMPLOYEE TYPE OF ID IS ATTRIBUTE
           IF out <> '<employee id="1">'-
                     '<name>Someone</name>'-
                     '<dept>Marketing</dept>'-
                     '</employee>'
               DISPLAY 'Test 10 failed: ' FUNCTION TRIM (out)
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_ml.at:122: \$COMPILE -fnot-reserved=ID prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fnot-reserved=ID prog.cob" "run_ml.at:122"
( $at_check_trace; $COMPILE -fnot-reserved=ID 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/run_ml.at:122"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:123: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:123"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:123"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1042
#AT_START_1043
at_fn_group_banner 1043 'run_ml.at:127' \
  "XML GENERATE SUPPRESS" "                          " 4
at_xfail=no
(
  $as_echo "1043. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:130" >"$at_check_line_file"
(test "$COB_HAS_XML2" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:130"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION       DIVISION.
       PROGRAM-ID.          prog.

       DATA                 DIVISION.
       WORKING-STORAGE      SECTION.
       01  a.
           03  b            PIC X(3) VALUE SPACES.
           03  c            PIC X(3) VALUE SPACES.

       01  p.
           03  q            PIC 9(3) VALUE ZERO.
           03  r            PIC X(3) VALUE "abc".

       01  x.
           03  y.
               05  z        PIC X VALUE SPACE.

       01  out              PIC X(100).

       PROCEDURE            DIVISION.
           XML GENERATE out FROM a SUPPRESS WHEN SPACES
           IF out <> '<a/>'
               DISPLAY 'Test 1 failed: ' out
           END-IF

           XML GENERATE out FROM a SUPPRESS b WHEN SPACES
           IF out <> '<a><c> </c></a>'
               DISPLAY 'Test 2 failed: ' out
           END-IF

           XML GENERATE out FROM a SUPPRESS EVERY NONNUMERIC WHEN SPACES
           IF out <> '<a/>'
               DISPLAY 'Test 3 failed: ' out
           END-IF

           XML GENERATE out FROM p
               WITH ATTRIBUTES
               SUPPRESS EVERY ATTRIBUTE WHEN ZERO
           IF out <> '<p r="abc"/>'
               DISPLAY 'Test 4 failed: ' out
           END-IF

           XML GENERATE out FROM a
               SUPPRESS c WHEN LOW-VALUES, c WHEN SPACES,
                    c WHEN LOW-VALUES,
                    EVERY ELEMENT WHEN SPACES
           IF out <> '<a><c> </c></a>'
               DISPLAY 'Test 5 failed: ' out
           END-IF

           MOVE HIGH-VALUES TO b
           MOVE LOW-VALUES TO c
           XML GENERATE out FROM a
               SUPPRESS EVERY ELEMENT WHEN HIGH-VALUES OR LOW-VALUES
                   OR ZEROES OR SPACES
           IF out <> '<a/>'
               DISPLAY 'Test 6 failed: ' out
           END-IF

           XML GENERATE out FROM x SUPPRESS z WHEN SPACE
           IF out <> '<x/>'
               DISPLAY 'Test 7 failed: ' out
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_ml.at:199: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:199"
( $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/run_ml.at:199"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:200: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:200"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1043
#AT_START_1044
at_fn_group_banner 1044 'run_ml.at:204' \
  "XML GENERATE exceptions" "                        " 4
at_xfail=no
(
  $as_echo "1044. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:207" >"$at_check_line_file"
(test "$COB_HAS_XML2" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:207"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  normal-str PIC X(200).

       01  valid-rec.
           03  a PIC XX VALUE "aa".
           03  b PIC XX VALUE "bb".
       01  short-str PIC X(5).
       01  xml-len   PIC 99.

       01  valid-namespace CONSTANT "http://www.w3.org/1999/xhtml".
       01  invalid-namespace CONSTANT X"00".
       01  invalid-prefix PIC XXX VALUE "#<>".
       01  invalid-content PIC X(3) VALUE X"8AFF00".
       01  count-in-too-small PIC 9.

       PROCEDURE DIVISION.
           XML GENERATE short-str FROM valid-rec
               COUNT IN xml-len
           IF short-str <> "<vali"
                   OR xml-len <> 42
                   OR XML-CODE <> 400
               DISPLAY "Failed 1: " short-str " " xml-len " " XML-CODE
           END-IF

           XML GENERATE normal-str FROM valid-rec
               NAMESPACE invalid-namespace
           IF XML-CODE <> 416
               DISPLAY "Failed 2: " FUNCTION TRIM (normal-str)
                   " " XML-CODE
           END-IF

           XML GENERATE normal-str FROM invalid-content
           IF normal-str <> '<hex.invalid-content>8aff00</hex.'-
                            'invalid-content>'
                   OR XML-CODE <> 417
               DISPLAY "Failed 3: " FUNCTION TRIM (normal-str)
                   " " XML-CODE
           END-IF

           XML GENERATE normal-str FROM valid-rec
               NAMESPACE "http://www.w3.org/1999/xhtml"
               NAMESPACE-PREFIX invalid-prefix
           IF XML-CODE <> 419
               DISPLAY "Failed 4: " FUNCTION TRIM (normal-str)
                   " " XML-CODE
           END-IF

           XML GENERATE normal-str FROM valid-rec
                ON EXCEPTION
                    DISPLAY "Failed 5: EXCEPTION "
                        FUNCTION TRIM (normal-str)
                        " " XML-CODE
                    END-DISPLAY
                    *> The END-DISPLAY is important! Otherwise the DISPLAY will
                    *> take the NOT ON EXCEPTION.

                NOT ON EXCEPTION
                    IF XML-CODE <> 0
                        DISPLAY "Failed 5: NOT EXCEPTION "
                            FUNCTION TRIM (normal-str)
                            " " XML-CODE
                    END-IF
           END-XML

           XML GENERATE short-str FROM valid-rec
                NOT EXCEPTION
                    DISPLAY "Failed 6: NOT EXCEPTION "
                        FUNCTION TRIM (normal-str)
                        " " XML-CODE
                    END-DISPLAY

                EXCEPTION
                    IF XML-CODE <> 400
                        DISPLAY "Failed 6: ON EXCEPTION "
                            FUNCTION TRIM (normal-str)
                            " " XML-CODE
                    END-IF
           END-XML
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_ml.at:295: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:295"
( $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/run_ml.at:295"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:296: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:296"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:296"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1044
#AT_START_1045
at_fn_group_banner 1045 'run_ml.at:300' \
  "XML GENERATE record selection" "                  " 4
at_xfail=no
(
  $as_echo "1045. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:303" >"$at_check_line_file"
(test "$COB_HAS_XML2" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:303"

# TO-DO: Add support for generating OCCURS items.

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  a.
           03  b.
               05 c1 PIC X(3) VALUE "abc".
               05 c2 PIC 9(3) VALUE 0.
           03  d REDEFINES b.
               05  e PIC X(6).
           03  f PIC X OCCURS 3 VALUE "f".

       66  h RENAMES c1 THRU c2.

       01  out PIC X(60).

       PROCEDURE DIVISION.
           *> XML GENERATE out FROM a
           *> IF out <> '<a><b><c1>abc</c1><c2>0</c2></b><f>f</f><f>f</f>'-
           *>          '<f>f</f></a>'
           *>    DISPLAY "Failed 1: " FUNCTION TRIM (out)
           *> END-IF

           XML GENERATE out FROM d
           IF out <> '<d><e>abc000</e></d>'
               DISPLAY "Failed 2: " FUNCTION TRIM (out)
           END-IF
           .
       END PROGRAM prog.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_ml.at:339: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:339"
( $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/run_ml.at:339"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:340: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:340"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:340"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1045
#AT_START_1046
at_fn_group_banner 1046 'run_ml.at:344' \
  "XML GENERATE trimming" "                          " 4
at_xfail=no
(
  $as_echo "1046. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:347" >"$at_check_line_file"
(test "$COB_HAS_XML2" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:347"

# TO-DO: Add support for IBM/COBOL 2002 edited floating point (e.g. PIC 9(3)E+99).

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  str                     PIC X(3) VALUE "ab".
       01  num-edited              PIC 99.99 VALUE "01.00".
       01  leading-zeroes          PIC 9(5) VALUE 5.
       01  decimal-num             PIC 99V999 PACKED-DECIMAL VALUE 0.12.
       01  signed-decimal-num      PIC S999 COMP-X VALUE -1.
       01  comp-5-item             PIC 9(10) COMP-5 VALUE 5.
       01  index-item              INDEX.
       01  float-short-item        FLOAT-SHORT VALUE 100.
       01  float-long-item         FLOAT-LONG VALUE 123.0E-10.
       01  just-item               PIC X(10) JUST.
       01  integer-with-p          PIC 999PPP VALUE 10000.
       01  decimal-with-p          PIC VPP99 VALUE 0.0004.

       01  out                     PIC X(300).

       PROCEDURE DIVISION.
           XML GENERATE out FROM str
           IF out <> '<str>ab</str>'
               DISPLAY "Failed 1: " FUNCTION TRIM (out)
           END-IF

           XML GENERATE out FROM num-edited
           IF out <> '<num-edited>01.00</num-edited>'
               DISPLAY "Failed 2: " FUNCTION TRIM (out)
           END-IF

           XML GENERATE out FROM leading-zeroes
           IF out <> '<leading-zeroes>5</leading-zeroes>'
               DISPLAY "Failed 3: " FUNCTION TRIM (out)
           END-IF

           XML GENERATE out FROM decimal-num
           IF out <> '<decimal-num>0.120</decimal-num>'
               DISPLAY "Failed 4: " FUNCTION TRIM (out)
           END-IF

           XML GENERATE out FROM signed-decimal-num
           IF out <> '<signed-decimal-num>-1</signed-decimal-num>'
               DISPLAY "Failed 5: " FUNCTION TRIM (out)
           END-IF

           XML GENERATE out FROM comp-5-item
           IF out <> '<comp-5-item>5</comp-5-item>'
               DISPLAY "Failed 6: " FUNCTION TRIM (out)
           END-IF

           SET index-item TO 500
           XML GENERATE out FROM index-item
           IF out <> '<index-item>500</index-item>'
               DISPLAY "Failed 7: " FUNCTION TRIM (out)
           END-IF

           *> XML GENERATE out FROM float-short-item
           *> IF out <> '<float-short-item>1E+02</float-short-item>'
           *>     DISPLAY "Failed 8: " FUNCTION TRIM (out)
           *> END-IF

           *> XML GENERATE out FROM float-long-item
           *> IF out <> '<float-long-item>123E-10</float-long-item>'
           *>     DISPLAY "Failed 9: " FUNCTION TRIM (out)
           *> END-IF

           MOVE "blah " TO just-item
           XML GENERATE out FROM just-item
           IF out <> '<just-item>blah </just-item>'
               DISPLAY "Failed 10: " FUNCTION TRIM (out)
           END-IF

           XML GENERATE out FROM integer-with-p
           IF out <> '<integer-with-p>10000</integer-with-p>'
               DISPLAY "Failed 11: " FUNCTION TRIM (out)
           END-IF

           XML GENERATE out FROM decimal-with-p
           IF out <> '<decimal-with-p>0.0004</decimal-with-p>'
               DISPLAY "Failed 12: " FUNCTION TRIM (out)
           END-IF
           .
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_ml.at:436: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:436"
( $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/run_ml.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:437: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:437"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:437"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1046
#AT_START_1047
at_fn_group_banner 1047 'run_ml.at:441' \
  "XML DPC-IN-DATA directive" "                      " 4
at_xfail=no
(
  $as_echo "1047. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:444" >"$at_check_line_file"
(test "$COB_HAS_XML2" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:444"

cat >prog.cob <<'_ATEOF'

      $SET DPC-IN-DATA "JSON"
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT IS COMMA.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  num PIC 9V9 VALUE 1,1.
       01  out PIC X(100).

       PROCEDURE DIVISION.
           XML GENERATE out FROM num
           IF out <> '<num>1.1</num>'
              DISPLAY "Failed: " FUNCTION TRIM (out).
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_ml.at:467: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:467"
( $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/run_ml.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:468: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:468"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:468"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1047
#AT_START_1048
at_fn_group_banner 1048 'run_ml.at:472' \
  "XML dpc-in-data config option" "                  " 4
at_xfail=no
(
  $as_echo "1048. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:475" >"$at_check_line_file"
(test "$COB_HAS_XML2" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:475"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT IS COMMA.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  num PIC 9V9 VALUE 1,1.
       01  out PIC X(100).

       PROCEDURE DIVISION.
           XML GENERATE out FROM num
           DISPLAY FUNCTION TRIM(out)
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_ml.at:497: \$COMPILE -fdpc-in-data=none prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdpc-in-data=none prog.cob" "run_ml.at:497"
( $at_check_trace; $COMPILE -fdpc-in-data=none 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/run_ml.at:497"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:498: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:498"
( $at_check_trace; $COBCRUN_DIRECT ./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 "<num>1.1</num>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:498"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:501: \$COMPILE -fdpc-in-data=xml prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdpc-in-data=xml prog.cob" "run_ml.at:501"
( $at_check_trace; $COMPILE -fdpc-in-data=xml 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/run_ml.at:501"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:502: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:502"
( $at_check_trace; $COBCRUN_DIRECT ./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 "<num>1,1</num>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:502"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:505: \$COMPILE  -fdpc-in-data=json prog.cob"
at_fn_check_prepare_dynamic "$COMPILE  -fdpc-in-data=json prog.cob" "run_ml.at:505"
( $at_check_trace; $COMPILE  -fdpc-in-data=json 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/run_ml.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:506: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:506"
( $at_check_trace; $COBCRUN_DIRECT ./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 "<num>1.1</num>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:506"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:509: \$COMPILE  -fdpc-in-data=all prog.cob"
at_fn_check_prepare_dynamic "$COMPILE  -fdpc-in-data=all prog.cob" "run_ml.at:509"
( $at_check_trace; $COMPILE  -fdpc-in-data=all 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/run_ml.at:509"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:510: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:510"
( $at_check_trace; $COBCRUN_DIRECT ./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 "<num>1,1</num>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:510"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1048
#AT_START_1049
at_fn_group_banner 1049 'run_ml.at:516' \
  "JSON GENERATE general" "                          " 4
at_xfail=no
(
  $as_echo "1049. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:519" >"$at_check_line_file"
(test "$COB_HAS_JSON" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:519"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION       DIVISION.
       PROGRAM-ID.          prog.

       DATA                 DIVISION.
       WORKING-STORAGE      SECTION.
       01  out              PIC X(200).
       01  rec.
           03  a            PIC X(3) VALUE 'A'.
           03  b            PIC X(3) VALUE ALL 'B'.
           03  c.
               05  d        PIC X(3) VALUE SPACES.

       PROCEDURE            DIVISION.
           JSON GENERATE out
               FROM rec
               NAME OF a IS 'alpha', d IS 'ABCDEF'
               SUPPRESS c
           IF out <> '{"rec":{"alpha":"A","b":"BBB"}}'
               DISPLAY 'Test 1 failed: ' FUNCTION TRIM (out)
           END-IF

           JSON GENERATE out FROM d
           IF out <> '{"d":" "}'
               DISPLAY 'Test 2 failed: ' FUNCTION TRIM (out)
           END-IF

           JSON GENERATE out FROM c
           IF out <> '{"c":{"d":" "}}'
               DISPLAY 'Test 3 failed: ' FUNCTION TRIM (out)
           END-IF

           MOVE ALL QUOTES TO d
           JSON GENERATE out FROM d
           IF out <> '{"d":"\"\"\""}'
               DISPLAY 'Test 4 failed: ' FUNCTION TRIM (out)
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_ml.at:561: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:561"
( $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/run_ml.at:561"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:562: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:562"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:562"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1049
#AT_START_1050
at_fn_group_banner 1050 'run_ml.at:566' \
  "JSON GENERATE SUPPRESS" "                         " 4
at_xfail=no
(
  $as_echo "1050. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:569" >"$at_check_line_file"
(test "$COB_HAS_JSON" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:569"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION       DIVISION.
       PROGRAM-ID.          prog.

       DATA                 DIVISION.
       WORKING-STORAGE      SECTION.
       01  a.
           03  b            PIC X(3) VALUE SPACES.
           03  c            PIC X(3) VALUE SPACES.

       01  x.
           03  y.
               05  z        PIC X VALUE SPACE.

       01  out              PIC X(100).

       PROCEDURE            DIVISION.
           JSON GENERATE out FROM a SUPPRESS b
           IF out <> '{"a":{"c":" "}}'
               DISPLAY 'Test 1 failed: ' out
           END-IF

           JSON GENERATE out FROM x SUPPRESS z
           IF out <> '{"x":{}}'
               DISPLAY 'Test 2 failed: ' out
           END-IF
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_ml.at:600: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:600"
( $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/run_ml.at:600"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:601: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:601"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:601"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1050
#AT_START_1051
at_fn_group_banner 1051 'run_ml.at:605' \
  "JSON GENERATE exceptions" "                       " 4
at_xfail=no
(
  $as_echo "1051. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:608" >"$at_check_line_file"
(test "$COB_HAS_JSON" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:608"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  normal-str PIC X(200).

       01  valid-rec.
           03  a PIC XX VALUE "aa".
           03  b PIC XX VALUE "bb".
       01  short-str PIC X(5).
       01  json-len   PIC 99.

       PROCEDURE DIVISION.
           JSON GENERATE short-str FROM valid-rec
               COUNT IN json-len
           IF short-str <> '{"val'
                   OR json-len <> 33
                   OR JSON-CODE <> 1
               DISPLAY "Failed 1: " short-str " " json-len " " JSON-CODE
           END-IF

           JSON GENERATE normal-str FROM valid-rec
                ON EXCEPTION
                    DISPLAY "Failed 2: EXCEPTION "
                        FUNCTION TRIM (normal-str)
                        " " JSON-CODE
                    END-DISPLAY

                NOT ON EXCEPTION
                    IF JSON-CODE <> 0
                        DISPLAY "Failed 2: NOT EXCEPTION "
                            FUNCTION TRIM (normal-str)
                            " " JSON-CODE
                    END-IF
           END-JSON

           JSON GENERATE short-str FROM valid-rec
                NOT EXCEPTION
                    DISPLAY "Failed 3: NOT EXCEPTION "
                        FUNCTION TRIM (normal-str)
                        " " JSON-CODE
                    END-DISPLAY

                EXCEPTION
                    IF JSON-CODE <> 1
                        DISPLAY "Failed 3: ON EXCEPTION "
                            FUNCTION TRIM (normal-str)
                            " " JSON-CODE
                    END-IF
           END-JSON
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_ml.at:665: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:665"
( $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/run_ml.at:665"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:666: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:666"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:666"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1051
#AT_START_1052
at_fn_group_banner 1052 'run_ml.at:670' \
  "JSON GENERATE record selection" "                 " 4
at_xfail=no
(
  $as_echo "1052. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:673" >"$at_check_line_file"
(test "$COB_HAS_JSON" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:673"

# TO-DO: Add support for generating OCCURS items.

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  a.
           03  b.
               05 c1 PIC X(3) VALUE "abc".
               05 c2 PIC 9(3) VALUE 0.
           03  d REDEFINES b.
               05  e PIC X(6).
           03  f PIC X OCCURS 3 VALUE "f".

       66  h RENAMES c1 THRU c2.

       01  out PIC X(60).

       PROCEDURE DIVISION.
           *> JSON GENERATE out FROM a
           *> IF out <> '<a><b><c1>abc</c1><c2>0</c2></b><f>f</f><f>f</f>'-
           *>          '<f>f</f></a>'
           *>    DISPLAY "Failed 1: " FUNCTION TRIM (out)
           *> END-IF

           JSON GENERATE out FROM d
           IF out <> '{"d":{"e":"abc000"}}'
               DISPLAY "Failed 2: " FUNCTION TRIM (out)
           END-IF
           .
       END PROGRAM prog.
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_ml.at:709: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:709"
( $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/run_ml.at:709"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:710: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:710"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:710"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1052
#AT_START_1053
at_fn_group_banner 1053 'run_ml.at:714' \
  "JSON GENERATE trimming" "                         " 4
at_xfail=no
(
  $as_echo "1053. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:717" >"$at_check_line_file"
(test "$COB_HAS_JSON" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:717"

# TO-DO: Add support for IBM/COBOL 2002 edited floating point (e.g. PIC 9(3)E+99).

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  str                     PIC X(3) VALUE "ab".
       01  num-edited              PIC 99.99 VALUE "01.00".
       01  leading-zeroes          PIC 9(5) VALUE 5.
       01  decimal-nums.
           03  decimal-num         PIC 99V999 PACKED-DECIMAL VALUE 0.12.
           03  decimal-num-2       PIC 99V9 VALUE 0.1.
       01  signed-decimal-num      PIC S999 COMP-X VALUE -1.
       01  comp-5-item             PIC 9(10) COMP-5 VALUE 5.
       01  index-item              INDEX.
       01  float-short-item        FLOAT-SHORT VALUE 100.
       01  float-long-item         FLOAT-LONG VALUE 123.0E-10.
       01  just-item               PIC X(10) JUST.
       01  integer-with-p          PIC 999PPP VALUE 10000.
       01  decimal-with-p          PIC VPP99 VALUE 0.0004.

       01  out                     PIC X(300).

       PROCEDURE DIVISION.
           JSON GENERATE out FROM str
           IF out <> '{"str":"ab"}'
               DISPLAY "Failed 1: " FUNCTION TRIM (out)
           END-IF

           JSON GENERATE out FROM num-edited
           IF out <> '{"num-edited":"01.00"}'
               DISPLAY "Failed 2: " FUNCTION TRIM (out)
           END-IF

           JSON GENERATE out FROM leading-zeroes
           IF out <> '{"leading-zeroes":5}'
               DISPLAY "Failed 3: " FUNCTION TRIM (out)
           END-IF

           JSON GENERATE out FROM decimal-nums
           IF out <> '{"decimal-nums":{"decimal-num":0.120,'-
                     '"decimal-num-2":0.1}}'
               DISPLAY "Failed 4: " FUNCTION TRIM (out)
           END-IF

           JSON GENERATE out FROM signed-decimal-num
           IF out <> '{"signed-decimal-num":-1}'
               DISPLAY "Failed 5: " FUNCTION TRIM (out)
           END-IF

           JSON GENERATE out FROM comp-5-item
           IF out <> '{"comp-5-item":5}'
               DISPLAY "Failed 6: " FUNCTION TRIM (out)
           END-IF

           SET index-item TO 500
           JSON GENERATE out FROM index-item
           IF out <> '{"index-item":500}'
               DISPLAY "Failed 7: " FUNCTION TRIM (out)
           END-IF

           *> JSON GENERATE out FROM float-short-item
           *> IF out <> '{"float-short-item":1E+02}'
           *>     DISPLAY "Failed 8: " FUNCTION TRIM (out)
           *> END-IF

           *> JSON GENERATE out FROM float-long-item
           *> IF out <> '{"float-long-item":123E-10}'
           *>     DISPLAY "Failed 9: " FUNCTION TRIM (out)
           *> END-IF

           MOVE "blah " TO just-item
           JSON GENERATE out FROM just-item
           IF out <> '{"just-item":"blah "}'
               DISPLAY "Failed 10: " FUNCTION TRIM (out)
           END-IF

           JSON GENERATE out FROM integer-with-p
           IF out <> '{"integer-with-p":10000}'
               DISPLAY "Failed 11: " FUNCTION TRIM (out)
           END-IF

           JSON GENERATE out FROM decimal-with-p
           IF out <> '{"decimal-with-p":0.0004}'
               DISPLAY "Failed 12: " FUNCTION TRIM (out)
           END-IF
           .
_ATEOF

{ set +x
$as_echo "$at_srcdir/run_ml.at:809: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:809"
( $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/run_ml.at:809"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:810: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:810"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:810"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1053
#AT_START_1054
at_fn_group_banner 1054 'run_ml.at:814' \
  "JSON DPC-IN-DATA directive" "                     " 4
at_xfail=no
(
  $as_echo "1054. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:817" >"$at_check_line_file"
(test "$COB_HAS_JSON" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:817"

cat >prog.cob <<'_ATEOF'

      $SET DPC-IN-DATA "JSON"
       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT IS COMMA.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  num PIC 9V9 VALUE 1,1.
       01  out PIC X(100).

       PROCEDURE DIVISION.
           JSON GENERATE out FROM num
           IF out <> '{"num":1,1}'
              DISPLAY "Failed: " FUNCTION TRIM (out).
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_ml.at:840: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "run_ml.at:840"
( $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/run_ml.at:840"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:841: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:841"
( $at_check_trace; $COBCRUN_DIRECT ./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/run_ml.at:841"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1054
#AT_START_1055
at_fn_group_banner 1055 'run_ml.at:845' \
  "JSON dpc-in-data config option" "                 " 4
at_xfail=no
(
  $as_echo "1055. $at_setup_line: testing $at_desc ..."
  $at_traceon



$as_echo "run_ml.at:848" >"$at_check_line_file"
(test "$COB_HAS_JSON" = "no") \
  && at_fn_check_skip 77 "$at_srcdir/run_ml.at:848"

cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT IS COMMA.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  num PIC 9V9 VALUE 1,1.
       01  out PIC X(100).

       PROCEDURE DIVISION.
           JSON GENERATE out FROM num
           DISPLAY FUNCTION TRIM(out)
           .
_ATEOF


{ set +x
$as_echo "$at_srcdir/run_ml.at:870: \$COMPILE -fdpc-in-data=none prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdpc-in-data=none prog.cob" "run_ml.at:870"
( $at_check_trace; $COMPILE -fdpc-in-data=none 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/run_ml.at:870"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:871: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:871"
( $at_check_trace; $COBCRUN_DIRECT ./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 "{\"num\":1.1}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:871"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:874: \$COMPILE -fdpc-in-data=xml prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fdpc-in-data=xml prog.cob" "run_ml.at:874"
( $at_check_trace; $COMPILE -fdpc-in-data=xml 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/run_ml.at:874"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:875: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:875"
( $at_check_trace; $COBCRUN_DIRECT ./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 "{\"num\":1.1}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:875"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:878: \$COMPILE  -fdpc-in-data=json prog.cob"
at_fn_check_prepare_dynamic "$COMPILE  -fdpc-in-data=json prog.cob" "run_ml.at:878"
( $at_check_trace; $COMPILE  -fdpc-in-data=json 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/run_ml.at:878"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:879: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:879"
( $at_check_trace; $COBCRUN_DIRECT ./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 "{\"num\":1,1}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:879"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:882: \$COMPILE  -fdpc-in-data=all prog.cob"
at_fn_check_prepare_dynamic "$COMPILE  -fdpc-in-data=all prog.cob" "run_ml.at:882"
( $at_check_trace; $COMPILE  -fdpc-in-data=all 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/run_ml.at:882"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/run_ml.at:883: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "run_ml.at:883"
( $at_check_trace; $COBCRUN_DIRECT ./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 "{\"num\":1,1}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/run_ml.at:883"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1055
#AT_START_1056
at_fn_group_banner 1056 'data_binary.at:23' \
  "BINARY: 2-4-8 big-endian" "                       " 5
at_xfail=no
(
  $as_echo "1056. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (unsigned char *data)
{
  int i;
  for (i = 0; i < 8; i++)
    printf ("%02x", data[i]);
  puts ("");
  return 0;
}
_ATEOF


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:43: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:43"
( $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/data_binary.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:44: \$COMPILE -fbinary-size=2-4-8 \\
                   -fbinary-byteorder=big-endian prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:44"
( $at_check_trace; $COMPILE -fbinary-size=2-4-8 \
                   -fbinary-byteorder=big-endian 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/data_binary.at:44"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:46: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:46"
( $at_check_trace; $COBCRUN_DIRECT ./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
0000303920202020
0001e24020202020
0012d68720202020
00bc614e20202020
075bcd1520202020
00000000499602d2
00000002dfdc1c35
0000001cbe991a14
0000011f71fb04cb
00000b3a73ce2ff2
00007048860ddf79
000462d53c8abac0
002bdc545d6b4b87
01b69b4ba630f34e
ffff202020202020
fff4202020202020
ff85202020202020
fb2e202020202020
ffffcfc720202020
fffe1dc020202020
ffed297920202020
ff439eb220202020
f8a432eb20202020
ffffffffb669fd2e
fffffffd2023e3cb
ffffffe34166e5ec
fffffee08e04fb35
fffff4c58c31d00e
ffff8fb779f22087
fffb9d2ac3754540
ffd423aba294b479
fe4964b459cf0cb2
0000202020202020
0000202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000202020202020
0000202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000202020202020
0000202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000202020202020
0000202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:159: \$COMPILE -fbinary-size=2-4-8 \\
                   -fbinary-byteorder=big-endian prog.cob -o prog2"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:159"
( $at_check_trace; $COMPILE -fbinary-size=2-4-8 \
                   -fbinary-byteorder=big-endian prog.cob -o prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:161: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:161"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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
12345
123456
1234567
12345678
123456789
1234567890
12345678901
123456789012
1234567890123
12345678901234
123456789012345
1234567890123456
12345678901234567
123456789012345678
-1
-12
-123
-1234
-12345
-123456
-1234567
-12345678
-123456789
-1234567890
-12345678901
-123456789012
-1234567890123
-12345678901234
-123456789012345
-1234567890123456
-12345678901234567
-123456789012345678
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:161"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1056
#AT_START_1057
at_fn_group_banner 1057 'data_binary.at:205' \
  "BINARY: 2-4-8 native" "                           " 5
at_xfail=no
(
  $as_echo "1057. $at_setup_line: testing $at_desc ..."
  $at_traceon



if test "x$COB_BIGENDIAN" = "xyes"; then
{ set +x
$as_echo "$at_srcdir/data_binary.at:209: true"
at_fn_check_prepare_trace "data_binary.at:209"
( $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/data_binary.at:209"
$at_failed && at_fn_log_failure
$at_traceon; }

else


cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (unsigned char *data)
{
  int i;
  for (i = 0; i < 8; i++)
    printf ("%02x", data[i]);
  puts ("");
  return 0;
}
_ATEOF


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:230: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:230"
( $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/data_binary.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:231: \$COMPILE -fbinary-size=2-4-8 \\
                   -fbinary-byteorder=native  prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:231"
( $at_check_trace; $COMPILE -fbinary-size=2-4-8 \
                   -fbinary-byteorder=native  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/data_binary.at:231"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:233: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:233"
( $at_check_trace; $COBCRUN_DIRECT ./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
3930000020202020
40e2010020202020
87d6120020202020
4e61bc0020202020
15cd5b0720202020
d202964900000000
351cdcdf02000000
141a99be1c000000
cb04fb711f010000
f22fce733a0b0000
79df0d8648700000
c0ba8a3cd5620400
874b6b5d54dc2b00
4ef330a64b9bb601
ffff202020202020
f4ff202020202020
85ff202020202020
2efb202020202020
c7cfffff20202020
c01dfeff20202020
7929edff20202020
b29e43ff20202020
eb32a4f820202020
2efd69b6ffffffff
cbe32320fdffffff
ece56641e3ffffff
35fb048ee0feffff
0ed0318cc5f4ffff
8720f279b78fffff
404575c32a9dfbff
79b494a2ab23d4ff
b20ccf59b46449fe
0000202020202020
0000202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000202020202020
0000202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000202020202020
0000202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000202020202020
0000202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:233"
$at_failed && at_fn_log_failure
$at_traceon; }


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:346: \$COMPILE -fbinary-size=2-4-8 \\
                   -fbinary-byteorder=native prog.cob -o prog2"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:346"
( $at_check_trace; $COMPILE -fbinary-size=2-4-8 \
                   -fbinary-byteorder=native prog.cob -o prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:346"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:348: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:348"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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
12345
123456
1234567
12345678
123456789
1234567890
12345678901
123456789012
1234567890123
12345678901234
123456789012345
1234567890123456
12345678901234567
123456789012345678
-1
-12
-123
-1234
-12345
-123456
-1234567
-12345678
-123456789
-1234567890
-12345678901
-123456789012
-1234567890123
-12345678901234
-123456789012345
-1234567890123456
-12345678901234567
-123456789012345678
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:348"
$at_failed && at_fn_log_failure
$at_traceon; }

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_1057
#AT_START_1058
at_fn_group_banner 1058 'data_binary.at:393' \
  "BINARY: 1-2-4-8 big-endian" "                     " 5
at_xfail=no
(
  $as_echo "1058. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (unsigned char *data)
{
  int i;
  for (i = 0; i < 8; i++)
    printf ("%02x", data[i]);
  puts ("");
  return 0;
}
_ATEOF


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:413: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:413"
( $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/data_binary.at:413"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:414: \$COMPILE -fbinary-size=1-2-4-8 \\
                   -fbinary-byteorder=big-endian prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:414"
( $at_check_trace; $COMPILE -fbinary-size=1-2-4-8 \
                   -fbinary-byteorder=big-endian 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/data_binary.at:414"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:416: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:416"
( $at_check_trace; $COBCRUN_DIRECT ./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
0000303920202020
0001e24020202020
0012d68720202020
00bc614e20202020
075bcd1520202020
00000000499602d2
00000002dfdc1c35
0000001cbe991a14
0000011f71fb04cb
00000b3a73ce2ff2
00007048860ddf79
000462d53c8abac0
002bdc545d6b4b87
01b69b4ba630f34e
ff20202020202020
f420202020202020
ff85202020202020
fb2e202020202020
ffffcfc720202020
fffe1dc020202020
ffed297920202020
ff439eb220202020
f8a432eb20202020
ffffffffb669fd2e
fffffffd2023e3cb
ffffffe34166e5ec
fffffee08e04fb35
fffff4c58c31d00e
ffff8fb779f22087
fffb9d2ac3754540
ffd423aba294b479
fe4964b459cf0cb2
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:416"
$at_failed && at_fn_log_failure
$at_traceon; }


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:529: \$COMPILE -fbinary-size=1-2-4-8 \\
                   -fbinary-byteorder=big-endian prog.cob -o prog2"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:529"
( $at_check_trace; $COMPILE -fbinary-size=1-2-4-8 \
                   -fbinary-byteorder=big-endian prog.cob -o prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:529"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:531: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:531"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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
12345
123456
1234567
12345678
123456789
1234567890
12345678901
123456789012
1234567890123
12345678901234
123456789012345
1234567890123456
12345678901234567
123456789012345678
-1
-12
-123
-1234
-12345
-123456
-1234567
-12345678
-123456789
-1234567890
-12345678901
-123456789012
-1234567890123
-12345678901234
-123456789012345
-1234567890123456
-12345678901234567
-123456789012345678
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:531"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1058
#AT_START_1059
at_fn_group_banner 1059 'data_binary.at:575' \
  "BINARY: 1-2-4-8 native" "                         " 5
at_xfail=no
(
  $as_echo "1059. $at_setup_line: testing $at_desc ..."
  $at_traceon



if test "x$COB_BIGENDIAN" = "xyes"; then
{ set +x
$as_echo "$at_srcdir/data_binary.at:579: true"
at_fn_check_prepare_trace "data_binary.at:579"
( $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/data_binary.at:579"
$at_failed && at_fn_log_failure
$at_traceon; }

else

cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (unsigned char *data)
{
  int i;
  for (i = 0; i < 8; i++)
    printf ("%02x", data[i]);
  puts ("");
  return 0;
}
_ATEOF


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:599: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:599"
( $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/data_binary.at:599"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:600: \$COMPILE -fbinary-size=1-2-4-8 \\
                   -fbinary-byteorder=native prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:600"
( $at_check_trace; $COMPILE -fbinary-size=1-2-4-8 \
                   -fbinary-byteorder=native 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/data_binary.at:600"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:602: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:602"
( $at_check_trace; $COBCRUN_DIRECT ./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
3930000020202020
40e2010020202020
87d6120020202020
4e61bc0020202020
15cd5b0720202020
d202964900000000
351cdcdf02000000
141a99be1c000000
cb04fb711f010000
f22fce733a0b0000
79df0d8648700000
c0ba8a3cd5620400
874b6b5d54dc2b00
4ef330a64b9bb601
ff20202020202020
f420202020202020
85ff202020202020
2efb202020202020
c7cfffff20202020
c01dfeff20202020
7929edff20202020
b29e43ff20202020
eb32a4f820202020
2efd69b6ffffffff
cbe32320fdffffff
ece56641e3ffffff
35fb048ee0feffff
0ed0318cc5f4ffff
8720f279b78fffff
404575c32a9dfbff
79b494a2ab23d4ff
b20ccf59b46449fe
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000020202020
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:602"
$at_failed && at_fn_log_failure
$at_traceon; }


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:715: \$COMPILE -fbinary-size=1-2-4-8 \\
                   -fbinary-byteorder=native prog.cob -o prog2"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:715"
( $at_check_trace; $COMPILE -fbinary-size=1-2-4-8 \
                   -fbinary-byteorder=native prog.cob -o prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:715"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:717: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:717"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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
12345
123456
1234567
12345678
123456789
1234567890
12345678901
123456789012
1234567890123
12345678901234
123456789012345
1234567890123456
12345678901234567
123456789012345678
-1
-12
-123
-1234
-12345
-123456
-1234567
-12345678
-123456789
-1234567890
-12345678901
-123456789012
-1234567890123
-12345678901234
-123456789012345
-1234567890123456
-12345678901234567
-123456789012345678
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:717"
$at_failed && at_fn_log_failure
$at_traceon; }


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_1059
#AT_START_1060
at_fn_group_banner 1060 'data_binary.at:763' \
  "BINARY: 1--8 big-endian" "                        " 5
at_xfail=no
(
  $as_echo "1060. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (unsigned char *data)
{
  int i;
  for (i = 0; i < 8; i++)
    printf ("%02x", data[i]);
  puts ("");
  return 0;
}
_ATEOF


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:783: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:783"
( $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/data_binary.at:783"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:784: \$COMPILE -fbinary-size=1--8 \\
                   -fbinary-byteorder=big-endian prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:784"
( $at_check_trace; $COMPILE -fbinary-size=1--8 \
                   -fbinary-byteorder=big-endian 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/data_binary.at:784"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:786: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:786"
( $at_check_trace; $COBCRUN_DIRECT ./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
0030392020202020
01e2402020202020
12d6872020202020
00bc614e20202020
075bcd1520202020
00499602d2202020
02dfdc1c35202020
1cbe991a14202020
011f71fb04cb2020
0b3a73ce2ff22020
007048860ddf7920
0462d53c8abac020
002bdc545d6b4b87
01b69b4ba630f34e
ff20202020202020
f420202020202020
ff85202020202020
fb2e202020202020
ffcfc72020202020
fe1dc02020202020
ffed297920202020
ff439eb220202020
f8a432eb20202020
ffb669fd2e202020
fd2023e3cb202020
ffe34166e5ec2020
fee08e04fb352020
f4c58c31d00e2020
ff8fb779f2208720
fb9d2ac375454020
ffd423aba294b479
fe4964b459cf0cb2
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000002020202020
0000002020202020
0000002020202020
0000000020202020
0000000020202020
0000000000202020
0000000000202020
0000000000202020
0000000000002020
0000000000002020
0000000000000020
0000000000000020
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000002020202020
0000002020202020
0000000020202020
0000000020202020
0000000020202020
0000000000202020
0000000000202020
0000000000002020
0000000000002020
0000000000002020
0000000000000020
0000000000000020
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000002020202020
0000002020202020
0000002020202020
0000000020202020
0000000020202020
0000000000202020
0000000000202020
0000000000202020
0000000000002020
0000000000002020
0000000000000020
0000000000000020
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000002020202020
0000002020202020
0000000020202020
0000000020202020
0000000020202020
0000000000202020
0000000000202020
0000000000002020
0000000000002020
0000000000002020
0000000000000020
0000000000000020
0000000000000000
0000000000000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:786"
$at_failed && at_fn_log_failure
$at_traceon; }


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:899: \$COMPILE -fbinary-size=1--8 \\
                   -fbinary-byteorder=big-endian prog.cob -o prog2"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:899"
( $at_check_trace; $COMPILE -fbinary-size=1--8 \
                   -fbinary-byteorder=big-endian prog.cob -o prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:899"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:901: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:901"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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
12345
123456
1234567
12345678
123456789
1234567890
12345678901
123456789012
1234567890123
12345678901234
123456789012345
1234567890123456
12345678901234567
123456789012345678
-1
-12
-123
-1234
-12345
-123456
-1234567
-12345678
-123456789
-1234567890
-12345678901
-123456789012
-1234567890123
-12345678901234
-123456789012345
-1234567890123456
-12345678901234567
-123456789012345678
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:901"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1060
#AT_START_1061
at_fn_group_banner 1061 'data_binary.at:945' \
  "BINARY: 1--8 native" "                            " 5
at_xfail=no
(
  $as_echo "1061. $at_setup_line: testing $at_desc ..."
  $at_traceon



if test "x$COB_BIGENDIAN" = "xyes"; then
{ set +x
$as_echo "$at_srcdir/data_binary.at:949: true"
at_fn_check_prepare_trace "data_binary.at:949"
( $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/data_binary.at:949"
$at_failed && at_fn_log_failure
$at_traceon; }

else

cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (unsigned char *data)
{
  int i;
  for (i = 0; i < 8; i++)
    printf ("%02x", data[i]);
  puts ("");
  return 0;
}
_ATEOF


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-dump.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:969: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_binary.at:969"
( $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/data_binary.at:969"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:970: \$COMPILE -fbinary-size=1--8 \\
                   -fbinary-byteorder=native prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:970"
( $at_check_trace; $COMPILE -fbinary-size=1--8 \
                   -fbinary-byteorder=native 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/data_binary.at:970"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:972: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:972"
( $at_check_trace; $COBCRUN_DIRECT ./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
3930002020202020
40e2012020202020
87d6122020202020
4e61bc0020202020
15cd5b0720202020
d202964900202020
351cdcdf02202020
141a99be1c202020
cb04fb711f012020
f22fce733a0b2020
79df0d8648700020
c0ba8a3cd5620420
874b6b5d54dc2b00
4ef330a64b9bb601
ff20202020202020
f420202020202020
85ff202020202020
2efb202020202020
c7cfff2020202020
c01dfe2020202020
7929edff20202020
b29e43ff20202020
eb32a4f820202020
2efd69b6ff202020
cbe32320fd202020
ece56641e3ff2020
35fb048ee0fe2020
0ed0318cc5f42020
8720f279b78fff20
404575c32a9dfb20
79b494a2ab23d4ff
b20ccf59b46449fe
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000002020202020
0000002020202020
0000002020202020
0000000020202020
0000000020202020
0000000000202020
0000000000202020
0000000000202020
0000000000002020
0000000000002020
0000000000000020
0000000000000020
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000002020202020
0000002020202020
0000000020202020
0000000020202020
0000000020202020
0000000000202020
0000000000202020
0000000000002020
0000000000002020
0000000000002020
0000000000000020
0000000000000020
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000002020202020
0000002020202020
0000002020202020
0000000020202020
0000000020202020
0000000000202020
0000000000202020
0000000000202020
0000000000002020
0000000000002020
0000000000000020
0000000000000020
0000000000000000
0000000000000000
0020202020202020
0020202020202020
0000202020202020
0000202020202020
0000002020202020
0000002020202020
0000000020202020
0000000020202020
0000000020202020
0000000000202020
0000000000202020
0000000000002020
0000000000002020
0000000000002020
0000000000000020
0000000000000020
0000000000000000
0000000000000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:972"
$at_failed && at_fn_log_failure
$at_traceon; }


sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:1085: \$COMPILE -fbinary-size=1--8 \\
                   -fbinary-byteorder=native prog.cob -o prog2"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:1085"
( $at_check_trace; $COMPILE -fbinary-size=1--8 \
                   -fbinary-byteorder=native prog.cob -o prog2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1085"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:1087: \$COBCRUN_DIRECT ./prog2"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog2" "data_binary.at:1087"
( $at_check_trace; $COBCRUN_DIRECT ./prog2
) >>"$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
12345
123456
1234567
12345678
123456789
1234567890
12345678901
123456789012
1234567890123
12345678901234
123456789012345
1234567890123456
12345678901234567
123456789012345678
-1
-12
-123
-1234
-12345
-123456
-1234567
-12345678
-123456789
-1234567890
-12345678901
-123456789012
-1234567890123
-12345678901234
-123456789012345
-1234567890123456
-12345678901234567
-123456789012345678
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1087"
$at_failed && at_fn_log_failure
$at_traceon; }


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_1061
#AT_START_1062
at_fn_group_banner 1062 'data_binary.at:1133' \
  "BINARY: full-print" "                             " 5
at_xfail=no
(
  $as_echo "1062. $at_setup_line: testing $at_desc ..."
  $at_traceon




sed -e 's/@USAGE@/BINARY/' "${TEMPLATE}/numeric-display.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_binary.at:1139: \$COMPILE -fbinary-size=1--8 \\
                   -fno-pretty-display prog.cob"
at_fn_check_prepare_notrace 'an embedded newline' "data_binary.at:1139"
( $at_check_trace; $COMPILE -fbinary-size=1--8 \
                   -fno-pretty-display 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/data_binary.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:1141: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1141"
( $at_check_trace; $COBCRUN_DIRECT ./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
00012345
00123456
01234567
0012345678
0123456789
0001234567890
0012345678901
0123456789012
001234567890123
012345678901234
00123456789012345
01234567890123456
00012345678901234567
00123456789012345678
-001
-012
-00123
-01234
-00012345
-00123456
-0001234567
-0012345678
-0123456789
-0001234567890
-0012345678901
-000123456789012
-001234567890123
-012345678901234
-00123456789012345
-01234567890123456
-00012345678901234567
-00123456789012345678
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1141"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1062
#AT_START_1063
at_fn_group_banner 1063 'data_binary.at:1185' \
  "BINARY: 64bit unsigned compare" "                 " 5
at_xfail=no
(
  $as_echo "1063. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 BDU-1         USAGE BINARY-DOUBLE UNSIGNED.
       01 BDU-2         USAGE BINARY-DOUBLE UNSIGNED.
       PROCEDURE        DIVISION.
           MOVE 18446744073709551615 TO BDU-1 BDU-2
           IF BDU-1 NOT EQUAL BDU-2 THEN
           DISPLAY "FAIL"
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_binary.at:1203: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_binary.at:1203"
( $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/data_binary.at:1203"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:1204: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1204"
( $at_check_trace; $COBCRUN_DIRECT ./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/data_binary.at:1204"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1063
#AT_START_1064
at_fn_group_banner 1064 'data_binary.at:1210' \
  "BINARY: 64bit unsigned arithmetic notrunc" "      " 5
at_xfail=no
(
  $as_echo "1064. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WORK-UDWORD-1 PIC 9(18) COMP.
       PROCEDURE        DIVISION.
           MOVE 18446744073709551615 TO WORK-UDWORD-1.
           DISPLAY WORK-UDWORD-1
           END-DISPLAY.
           COMPUTE  WORK-UDWORD-1 = WORK-UDWORD-1 / 2
           END-COMPUTE.
           DISPLAY WORK-UDWORD-1
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_binary.at:1230: \$COMPILE -fnotrunc prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fnotrunc prog.cob" "data_binary.at:1230"
( $at_check_trace; $COMPILE -fnotrunc 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/data_binary.at:1230"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:1231: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1231"
( $at_check_trace; $COBCRUN_DIRECT ./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 "18446744073709551615
09223372036854775807
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1231"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1064
#AT_START_1065
at_fn_group_banner 1065 'data_binary.at:1240' \
  "BINARY: 64bit signed negative constant range" "   " 5
at_xfail=no
(
  $as_echo "1065. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WORK-DWORD-1  PIC S9(18) COMP-5 VALUE -9223372036854775808.
       PROCEDURE        DIVISION.
           DISPLAY WORK-DWORD-1 WITH NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_binary.at:1255: \$COMPILE -fnotrunc prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fnotrunc prog.cob" "data_binary.at:1255"
( $at_check_trace; $COMPILE -fnotrunc 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/data_binary.at:1255"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_binary.at:1256: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1256"
( $at_check_trace; $COBCRUN_DIRECT ./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 "-09223372036854775808" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1256"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1065
#AT_START_1066
at_fn_group_banner 1066 'data_binary.at:1261' \
  "COMP-4 Truncate" "                                " 5
at_xfail=no
(
  $as_echo "1066. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  RANDOM-ORIGIN-B                     PIC 9V99 COMP-4.
       01  RANDOM-TARGET-B                     PIC V99  COMP-4.
       01  RANDOM-ORIGIN-D                     PIC 9V99 DISPLAY.
       01  RANDOM-TARGET-D                     PIC V99  DISPLAY.

       PROCEDURE DIVISION.
           MOVE 0.12            TO RANDOM-ORIGIN-D
           MOVE RANDOM-ORIGIN-D TO RANDOM-TARGET-D
           MOVE 0.12            TO RANDOM-ORIGIN-B
           MOVE RANDOM-ORIGIN-B TO RANDOM-TARGET-B
           IF RANDOM-ORIGIN-D <> RANDOM-ORIGIN-B
             DISPLAY "ORIGIN 0.12 WRONG"
             DISPLAY "DISPLAY: " RANDOM-ORIGIN-D
                " !=  BINARY : " RANDOM-ORIGIN-B
           END-IF.
           IF RANDOM-TARGET-D <> RANDOM-TARGET-B
             DISPLAY "TARGET  .12 WRONG"
             DISPLAY "DISPLAY: " RANDOM-TARGET-D
                " !=  BINARY : " RANDOM-TARGET-B
           ELSE
             DISPLAY "Ok with " RANDOM-TARGET-D " == " RANDOM-TARGET-B
           END-IF.

           MOVE 9.85            TO RANDOM-ORIGIN-D
           MOVE RANDOM-ORIGIN-D TO RANDOM-TARGET-D
           MOVE 9.85            TO RANDOM-ORIGIN-B
           MOVE RANDOM-ORIGIN-B TO RANDOM-TARGET-B
           IF RANDOM-ORIGIN-D <> RANDOM-ORIGIN-B
             DISPLAY "ORIGIN 9.85 WRONG"
             DISPLAY "DISPLAY: " RANDOM-ORIGIN-D
                " !=  BINARY : " RANDOM-ORIGIN-B
           END-IF.
           IF RANDOM-TARGET-D <> RANDOM-TARGET-B
             DISPLAY "TARGET  .85 WRONG"
             DISPLAY "DISPLAY: " RANDOM-TARGET-D
                " !=  BINARY : " RANDOM-TARGET-B
           ELSE
             DISPLAY "Ok with " RANDOM-TARGET-D " == " RANDOM-TARGET-B
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_binary.at:1312: \$COMPILE -w prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -w prog.cob" "data_binary.at:1312"
( $at_check_trace; $COMPILE -w 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/data_binary.at:1312"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/data_binary.at:1314: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1314"
( $at_check_trace; $COBCRUN_DIRECT ./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 with .12 == .12
Ok with .85 == .85
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1314"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1066
#AT_START_1067
at_fn_group_banner 1067 'data_binary.at:1322' \
  "COMP-4 No Truncate" "                             " 5
at_xfail=no
(
  $as_echo "1067. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION DIVISION.
       PROGRAM-ID. prog.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  RANDOM-ORIGIN-B                     PIC 9V99 COMP-4.
       01  RANDOM-TARGET-B                     PIC V99  COMP-4.
       01  RANDOM-ORIGIN-D                     PIC 9V99 DISPLAY.
       01  RANDOM-TARGET-D                     PIC V99  DISPLAY.

       PROCEDURE DIVISION.
           MOVE 0.12            TO RANDOM-ORIGIN-D
           MOVE RANDOM-ORIGIN-D TO RANDOM-TARGET-D
           MOVE 0.12            TO RANDOM-ORIGIN-B
           MOVE RANDOM-ORIGIN-B TO RANDOM-TARGET-B
           IF RANDOM-ORIGIN-D <> RANDOM-ORIGIN-B
             DISPLAY "ORIGIN 0.12 WRONG"
             DISPLAY "DISPLAY: " RANDOM-ORIGIN-D
                " !=  BINARY : " RANDOM-ORIGIN-B
           END-IF.
           IF RANDOM-TARGET-D <> RANDOM-TARGET-B
             DISPLAY "TARGET  .12 WRONG"
             DISPLAY "DISPLAY: " RANDOM-TARGET-D
                " !=  BINARY : " RANDOM-TARGET-B
           ELSE
             DISPLAY "Ok with " RANDOM-TARGET-D " == " RANDOM-TARGET-B
           END-IF.

           MOVE 9.85            TO RANDOM-ORIGIN-D
           MOVE RANDOM-ORIGIN-D TO RANDOM-TARGET-D
           MOVE 9.85            TO RANDOM-ORIGIN-B
           MOVE RANDOM-ORIGIN-B TO RANDOM-TARGET-B
           IF RANDOM-ORIGIN-D <> RANDOM-ORIGIN-B
             DISPLAY "ORIGIN 9.85 WRONG"
             DISPLAY "DISPLAY: " RANDOM-ORIGIN-D
                " !=  BINARY : " RANDOM-ORIGIN-B
           END-IF.
           IF RANDOM-TARGET-D <> RANDOM-TARGET-B
             DISPLAY "TARGET  .85 WRONG"
             DISPLAY "DISPLAY: " RANDOM-TARGET-D
                " !=  BINARY : " RANDOM-TARGET-B
           ELSE
             DISPLAY "Ok with " RANDOM-TARGET-D " == " RANDOM-TARGET-B
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_binary.at:1373: \$COMPILE -w -fnotrunc prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -w -fnotrunc prog.cob" "data_binary.at:1373"
( $at_check_trace; $COMPILE -w -fnotrunc 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/data_binary.at:1373"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/data_binary.at:1375: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_binary.at:1375"
( $at_check_trace; $COBCRUN_DIRECT ./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 with 12 == 012
TARGET  .85 WRONG
DISPLAY: 85 !=  BINARY : 217
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_binary.at:1375"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1067
#AT_START_1068
at_fn_group_banner 1068 'data_display.at:21' \
  "DISPLAY: Sign ASCII" "                            " 5
at_xfail=no
(
  $as_echo "1068. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X(5).
         02 X-9         REDEFINES X PIC 9(4).
         02 X-S9        REDEFINES X PIC S9(4).
         02 X-S9-L      REDEFINES X PIC S9(4) LEADING.
         02 X-S9-LS     REDEFINES X PIC S9(4) LEADING SEPARATE.
         02 X-S9-T      REDEFINES X PIC S9(4) TRAILING.
         02 X-S9-TS     REDEFINES X PIC S9(4) TRAILING SEPARATE.
       PROCEDURE        DIVISION.
           MOVE ZERO TO X. MOVE  1234 TO X-9.     DISPLAY X
           END-DISPLAY.
           MOVE ZERO TO X. MOVE  1234 TO X-S9.    DISPLAY X
           END-DISPLAY.
           MOVE ZERO TO X. MOVE -1234 TO X-S9.    DISPLAY X
           END-DISPLAY.
           MOVE ZERO TO X. MOVE  1234 TO X-S9-L.  DISPLAY X
           END-DISPLAY.
           MOVE ZERO TO X. MOVE -1234 TO X-S9-L.  DISPLAY X
           END-DISPLAY.
           MOVE ZERO TO X. MOVE  1234 TO X-S9-LS. DISPLAY X
           END-DISPLAY.
           MOVE ZERO TO X. MOVE -1234 TO X-S9-LS. DISPLAY X
           END-DISPLAY.
           MOVE ZERO TO X. MOVE  1234 TO X-S9-T.  DISPLAY X
           END-DISPLAY.
           MOVE ZERO TO X. MOVE -1234 TO X-S9-T.  DISPLAY X
           END-DISPLAY.
           MOVE ZERO TO X. MOVE  1234 TO X-S9-TS. DISPLAY X
           END-DISPLAY.
           MOVE ZERO TO X. MOVE -1234 TO X-S9-TS. DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_display.at:63: \$COMPILE -fsign=ascii prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fsign=ascii prog.cob" "data_display.at:63"
( $at_check_trace; $COMPILE -fsign=ascii 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/data_display.at:63"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_display.at:64: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_display.at:64"
( $at_check_trace; $COBCRUN_DIRECT ./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
q2340
+1234
-1234
12340
123t0
1234+
1234-
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_display.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1068
#AT_START_1069
at_fn_group_banner 1069 'data_display.at:80' \
  "DISPLAY: Sign ASCII (2)" "                        " 5
at_xfail=no
(
  $as_echo "1069. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X(10).
         02 X-S99       REDEFINES X PIC S99.
         02 X-S9        REDEFINES X PIC S9 OCCURS 10.
       PROCEDURE        DIVISION.
           MOVE 0 TO X-S9(1).
           MOVE 1 TO X-S9(2).
           MOVE 2 TO X-S9(3).
           MOVE 3 TO X-S9(4).
           MOVE 4 TO X-S9(5).
           MOVE 5 TO X-S9(6).
           MOVE 6 TO X-S9(7).
           MOVE 7 TO X-S9(8).
           MOVE 8 TO X-S9(9).
           MOVE 9 TO X-S9(10).
           DISPLAY X NO ADVANCING
           END-DISPLAY.
           MOVE -10 TO X-S99. MOVE X(2:1) TO X(1:1).
           MOVE -1 TO X-S9(2).
           MOVE -2 TO X-S9(3).
           MOVE -3 TO X-S9(4).
           MOVE -4 TO X-S9(5).
           MOVE -5 TO X-S9(6).
           MOVE -6 TO X-S9(7).
           MOVE -7 TO X-S9(8).
           MOVE -8 TO X-S9(9).
           MOVE -9 TO X-S9(10).
           DISPLAY X NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_display.at:120: \$COMPILE -fsign=ascii prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fsign=ascii prog.cob" "data_display.at:120"
( $at_check_trace; $COMPILE -fsign=ascii 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/data_display.at:120"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_display.at:121: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_display.at:121"
( $at_check_trace; $COBCRUN_DIRECT ./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/data_display.at:121"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1069
#AT_START_1070
at_fn_group_banner 1070 'data_display.at:126' \
  "DISPLAY: Sign EBCDIC" "                           " 5
at_xfail=no
(
  $as_echo "1070. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X           PIC X(10).
         02 X-S99       REDEFINES X PIC S99.
         02 X-S9        REDEFINES X PIC S9 OCCURS 10.
       PROCEDURE        DIVISION.
           MOVE 0 TO X-S9(1).
           MOVE 1 TO X-S9(2).
           MOVE 2 TO X-S9(3).
           MOVE 3 TO X-S9(4).
           MOVE 4 TO X-S9(5).
           MOVE 5 TO X-S9(6).
           MOVE 6 TO X-S9(7).
           MOVE 7 TO X-S9(8).
           MOVE 8 TO X-S9(9).
           MOVE 9 TO X-S9(10).
           DISPLAY X NO ADVANCING
           END-DISPLAY.
           MOVE -10 TO X-S99. MOVE X(2:1) TO X(1:1).
           MOVE -1 TO X-S9(2).
           MOVE -2 TO X-S9(3).
           MOVE -3 TO X-S9(4).
           MOVE -4 TO X-S9(5).
           MOVE -5 TO X-S9(6).
           MOVE -6 TO X-S9(7).
           MOVE -7 TO X-S9(8).
           MOVE -8 TO X-S9(9).
           MOVE -9 TO X-S9(10).
           DISPLAY X NO ADVANCING
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_display.at:166: \$COMPILE -fsign=ebcdic prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -fsign=ebcdic prog.cob" "data_display.at:166"
( $at_check_trace; $COMPILE -fsign=ebcdic 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/data_display.at:166"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_display.at:167: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_display.at:167"
( $at_check_trace; $COBCRUN_DIRECT ./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/data_display.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1070
#AT_START_1071
at_fn_group_banner 1071 'data_display.at:171' \
  "DISPLAY: unsigned" "                              " 5
at_xfail=no
(
  $as_echo "1071. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-BCU         BINARY-CHAR   UNSIGNED.
       01 X-BSU         BINARY-SHORT  UNSIGNED.
       01 X-BIU         BINARY-INT    UNSIGNED.
       01 X-BLU         BINARY-LONG   UNSIGNED.
       01 X-BDU         BINARY-DOUBLE UNSIGNED.
       01 X-US          UNSIGNED-SHORT.
       01 X-UI          UNSIGNED-INT.
       PROCEDURE        DIVISION.
           MOVE 127 TO X-BCU.               DISPLAY X-BCU END-DISPLAY.
           ADD 1 TO X-BCU END-ADD.          DISPLAY X-BCU END-DISPLAY.
           MOVE 32767 TO X-BSU.             DISPLAY X-BSU END-DISPLAY.
           ADD 1 TO X-BSU END-ADD.          DISPLAY X-BSU END-DISPLAY.
           MOVE 2147483647 TO X-BIU.        DISPLAY X-BIU END-DISPLAY.
           ADD 1 TO X-BIU END-ADD.          DISPLAY X-BIU END-DISPLAY.
           MOVE 2147483647 TO X-BLU.        DISPLAY X-BLU END-DISPLAY.
           ADD 1 TO X-BLU END-ADD.          DISPLAY X-BLU END-DISPLAY.
           MOVE 9223372036854775807 TO X-BDU. DISPLAY X-BDU END-DISPLAY.
           ADD 1 TO X-BDU END-ADD.          DISPLAY X-BDU END-DISPLAY.
           MOVE 32767 TO X-US.              DISPLAY X-US  END-DISPLAY.
           ADD 1 TO X-US END-ADD.           DISPLAY X-US  END-DISPLAY.
           MOVE 2147483647 TO X-UI.         DISPLAY X-UI  END-DISPLAY.
           ADD 1 TO X-UI END-ADD.           DISPLAY X-UI  END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_display.at:204: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_display.at:204"
( $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/data_display.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_display.at:205: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_display.at:205"
( $at_check_trace; $COBCRUN_DIRECT ./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 "127
128
32767
32768
2147483647
2147483648
2147483647
2147483648
09223372036854775807
09223372036854775808
32767
32768
2147483647
2147483648
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_display.at:205"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1071
#AT_START_1072
at_fn_group_banner 1072 'data_packed.at:25' \
  "PACKED-DECIMAL dump" "                            " 5
at_xfail=no
(
  $as_echo "1072. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >dump.c <<'_ATEOF'

#include <stdio.h>
#include <libcob.h>

COB_EXT_EXPORT int
dump (unsigned char *data)
{
  int i;
  for (i = 0; i < 10; i++)
    printf ("%02x", data[i]);
  puts ("");
  return 0;
}
_ATEOF


sed -e 's/@USAGE@/PACKED-DECIMAL/' "${TEMPLATE}/numeric-dump.cob" > prog.cob

{ set +x
$as_echo "$at_srcdir/data_packed.at:45: \$COMPILE_MODULE dump.c"
at_fn_check_prepare_dynamic "$COMPILE_MODULE dump.c" "data_packed.at:45"
( $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/data_packed.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:46: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:46"
( $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/data_packed.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:47: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:47"
( $at_check_trace; $COBCRUN_DIRECT ./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
12345f20202020202020
0123456f202020202020
1234567f202020202020
012345678f2020202020
123456789f2020202020
01234567890f20202020
12345678901f20202020
0123456789012f202020
1234567890123f202020
012345678901234f2020
123456789012345f2020
01234567890123456f20
12345678901234567f20
0123456789012345678f
1d202020202020202020
012d2020202020202020
123d2020202020202020
01234d20202020202020
12345d20202020202020
0123456d202020202020
1234567d202020202020
012345678d2020202020
123456789d2020202020
01234567890d20202020
12345678901d20202020
0123456789012d202020
1234567890123d202020
012345678901234d2020
123456789012345d2020
01234567890123456d20
12345678901234567d20
0123456789012345678d
0f202020202020202020
000f2020202020202020
000f2020202020202020
00000f20202020202020
00000f20202020202020
0000000f202020202020
0000000f202020202020
000000000f2020202020
000000000f2020202020
00000000000f20202020
00000000000f20202020
0000000000000f202020
0000000000000f202020
000000000000000f2020
000000000000000f2020
00000000000000000f20
00000000000000000f20
0000000000000000000f
0c202020202020202020
000c2020202020202020
000c2020202020202020
00000c20202020202020
00000c20202020202020
0000000c202020202020
0000000c202020202020
000000000c2020202020
000000000c2020202020
00000000000c20202020
00000000000c20202020
0000000000000c202020
0000000000000c202020
000000000000000c2020
000000000000000c2020
00000000000000000c20
00000000000000000c20
0000000000000000000c
0f202020202020202020
000f2020202020202020
000f2020202020202020
00000f20202020202020
00000f20202020202020
0000000f202020202020
0000000f202020202020
000000000f2020202020
000000000f2020202020
00000000000f20202020
00000000000f20202020
0000000000000f202020
0000000000000f202020
000000000000000f2020
000000000000000f2020
00000000000000000f20
00000000000000000f20
0000000000000000000f
0c202020202020202020
000c2020202020202020
000c2020202020202020
00000c20202020202020
00000c20202020202020
0000000c202020202020
0000000c202020202020
000000000c2020202020
000000000c2020202020
00000000000c20202020
00000000000c20202020
0000000000000c202020
0000000000000c202020
000000000000000c2020
000000000000000c2020
00000000000000000c20
00000000000000000c20
0000000000000000000c
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:47"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1072
#AT_START_1073
at_fn_group_banner 1073 'data_packed.at:161' \
  "PACKED-DECIMAL used with DISPLAY" "               " 5
at_xfail=no
(
  $as_echo "1073. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-99          PIC 99   USAGE PACKED-DECIMAL.
       01 X-S99         PIC S99  USAGE PACKED-DECIMAL.
       01 X-999         PIC 999  USAGE PACKED-DECIMAL.
       01 X-S999        PIC S999 USAGE PACKED-DECIMAL.
       PROCEDURE        DIVISION.
           MOVE    0 TO X-99.
           DISPLAY X-99
           END-DISPLAY.
           MOVE   99 TO X-99.
           DISPLAY X-99
           END-DISPLAY.
           MOVE    0 TO X-S99.
           DISPLAY X-S99
           END-DISPLAY.
           MOVE   -1 TO X-S99.
           DISPLAY X-S99
           END-DISPLAY.
           MOVE    0 TO X-999.
           DISPLAY X-999
           END-DISPLAY.
           MOVE  123 TO X-999.
           DISPLAY X-999
           END-DISPLAY.
           MOVE    0 TO X-S999.
           DISPLAY X-S999
           END-DISPLAY.
           MOVE -123 TO X-S999.
           DISPLAY X-S999
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_packed.at:201: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:201"
( $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/data_packed.at:201"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:202: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:202"
( $at_check_trace; $COBCRUN_DIRECT ./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
000
123
+000
-123
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:202"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1073
#AT_START_1074
at_fn_group_banner 1074 'data_packed.at:216' \
  "PACKED-DECIMAL used with MOVE" "                  " 5
at_xfail=no
(
  $as_echo "1074. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-99          PIC 99   USAGE PACKED-DECIMAL.
       01 X-S99         PIC S99  USAGE PACKED-DECIMAL.
       01 X-999         PIC 999  USAGE PACKED-DECIMAL.
       01 X-S999        PIC S999 USAGE PACKED-DECIMAL.
       01 C-P1234       PIC 9999  VALUE 1234.
       01 C-N1234       PIC S9999 VALUE -1234.
       PROCEDURE        DIVISION.
           MOVE C-P1234 TO X-99.
           DISPLAY X-99
           END-DISPLAY.
           MOVE C-P1234 TO X-S99.
           DISPLAY X-S99
           END-DISPLAY.
           MOVE C-P1234 TO X-999.
           DISPLAY X-999
           END-DISPLAY.
           MOVE C-P1234 TO X-S999.
           DISPLAY X-S999
           END-DISPLAY.
           MOVE C-N1234 TO X-99.
           DISPLAY X-99
           END-DISPLAY.
           MOVE C-N1234 TO X-S99.
           DISPLAY X-S99
           END-DISPLAY.
           MOVE C-N1234 TO X-999.
           DISPLAY X-999
           END-DISPLAY.
           MOVE C-N1234 TO X-S999.
           DISPLAY X-S999
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_packed.at:258: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:258"
( $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/data_packed.at:258"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:259: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:259"
( $at_check_trace; $COBCRUN_DIRECT ./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
34
-34
234
-234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:259"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1074
#AT_START_1075
at_fn_group_banner 1075 'data_packed.at:273' \
  "PACKED-DECIMAL used with INITIALIZE" "            " 5
at_xfail=no
(
  $as_echo "1075. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-99          PIC 99   USAGE PACKED-DECIMAL.
       01 X-S99         PIC S99  USAGE PACKED-DECIMAL.
       01 X-999         PIC 999  USAGE PACKED-DECIMAL.
       01 X-S999        PIC S999 USAGE PACKED-DECIMAL.
       PROCEDURE        DIVISION.
           INITIALIZE X-99.
           DISPLAY X-99
           END-DISPLAY.
           INITIALIZE X-S99.
           DISPLAY X-S99
           END-DISPLAY.
           INITIALIZE X-999.
           DISPLAY X-999
           END-DISPLAY.
           INITIALIZE X-S999.
           DISPLAY X-S999
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_packed.at:301: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:301"
( $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/data_packed.at:301"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:302: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:302"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:302"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1075
#AT_START_1076
at_fn_group_banner 1076 'data_packed.at:312' \
  "PACKED-DECIMAL arithmetic" "                      " 5
at_xfail=no
(
  $as_echo "1076. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X             PIC 99 USAGE PACKED-DECIMAL VALUE 0.
       01 Y             PIC 99 USAGE PACKED-DECIMAL VALUE 9.
       PROCEDURE        DIVISION.
           COMPUTE X = 1
           END-COMPUTE.
           DISPLAY X
           END-DISPLAY.
           COMPUTE X = Y
           END-COMPUTE.
           DISPLAY X
           END-DISPLAY.
           COMPUTE X = X + Y
           END-COMPUTE.
           DISPLAY X
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_packed.at:338: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:338"
( $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/data_packed.at:338"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:339: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:339"
( $at_check_trace; $COBCRUN_DIRECT ./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=:
at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:339"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1076
#AT_START_1077
at_fn_group_banner 1077 'data_packed.at:348' \
  "PACKED-DECIMAL numeric test (1)" "                " 5
at_xfail=no
(
  $as_echo "1077. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X-2         PIC X(2).
         02 N-2         REDEFINES X-2 PIC 999  USAGE PACKED-DECIMAL.
         02 N-S2        REDEFINES X-2 PIC S999 USAGE PACKED-DECIMAL.
       PROCEDURE        DIVISION.
           MOVE X"0000" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           MOVE X"000c" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "OK"
            END-DISPLAY
           ELSE
            DISPLAY "NG"
            END-DISPLAY
           END-IF.
           MOVE X"000d" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "OK"
            END-DISPLAY
           ELSE
            DISPLAY "NG"
            END-DISPLAY
           END-IF.
           MOVE X"000f" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "OK"
            END-DISPLAY
           ELSE
            DISPLAY "NG"
            END-DISPLAY
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           MOVE X"1234" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           MOVE X"999f" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "OK"
            END-DISPLAY
           ELSE
            DISPLAY "NG"
            END-DISPLAY
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           MOVE X"ffff" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_packed.at:469: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:469"
( $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/data_packed.at:469"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:470: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:470"
( $at_check_trace; $COBCRUN_DIRECT ./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
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:470"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1077
#AT_START_1078
at_fn_group_banner 1078 'data_packed.at:490' \
  "PACKED-DECIMAL numeric test (2)" "                " 5
at_xfail=no
(
  $as_echo "1078. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
         02 X-2         PIC X(2).
         02 N-2         REDEFINES X-2 PIC 999  USAGE PACKED-DECIMAL.
         02 N-S2        REDEFINES X-2 PIC S999 USAGE PACKED-DECIMAL.
       PROCEDURE        DIVISION.
           MOVE X"0000" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "NG"
           ELSE
            DISPLAY "OK"
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "NG"
           ELSE
            DISPLAY "OK"
           END-IF.
           MOVE X"000c" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "NG"
           ELSE
            DISPLAY "OK"
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "OK"
           ELSE
            DISPLAY "NG"
           END-IF.
           MOVE X"000d" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "NG"
           ELSE
            DISPLAY "OK"
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "OK"
           ELSE
            DISPLAY "NG"
           END-IF.
           MOVE X"000f" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "OK"
           ELSE
            DISPLAY "NG"
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "OK"
           ELSE
            DISPLAY "NG"
           END-IF.
           MOVE X"1234" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "NG"
           ELSE
            DISPLAY "OK"
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "NG"
           ELSE
            DISPLAY "OK"
           END-IF.
           MOVE X"999f" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "OK"
           ELSE
            DISPLAY "NG"
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "OK"
           ELSE
            DISPLAY "NG"
           END-IF.
           MOVE X"ffff" TO X-2.
           IF N-2  IS NUMERIC
            DISPLAY "NG"
           ELSE
            DISPLAY "OK"
           END-IF.
           IF N-S2 IS NUMERIC
            DISPLAY "NG"
           ELSE
            DISPLAY "OK"
           END-IF.
           STOP RUN.
_ATEOF


# TODO: Check what actual option is tested here
#       and directly use it
{ set +x
$as_echo "$at_srcdir/data_packed.at:585: \$COMPILE -std=ibm prog.cob"
at_fn_check_prepare_dynamic "$COMPILE -std=ibm prog.cob" "data_packed.at:585"
( $at_check_trace; $COMPILE -std=ibm 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/data_packed.at:585"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:586: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:586"
( $at_check_trace; $COBCRUN_DIRECT ./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
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:586"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1078
#AT_START_1079
at_fn_group_banner 1079 'data_packed.at:606' \
  "COMP-6 used with DISPLAY" "                       " 5
at_xfail=no
(
  $as_echo "1079. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-99          PIC 99   USAGE COMP-6.
       01 X-999         PIC 999  USAGE COMP-6.
       PROCEDURE        DIVISION.
           MOVE    0 TO X-99.
           DISPLAY X-99
           END-DISPLAY.
           MOVE   99 TO X-99.
           DISPLAY X-99
           END-DISPLAY.
           MOVE    0 TO X-999.
           DISPLAY X-999
           END-DISPLAY.
           MOVE  123 TO X-999.
           DISPLAY X-999
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_packed.at:632: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:632"
( $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/data_packed.at:632"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:633: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:633"
( $at_check_trace; $COBCRUN_DIRECT ./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
000
123
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:633"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1079
#AT_START_1080
at_fn_group_banner 1080 'data_packed.at:643' \
  "COMP-6 used with MOVE" "                          " 5
at_xfail=no
(
  $as_echo "1080. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-99          PIC 99   USAGE COMP-6.
       01 X-999         PIC 999  USAGE COMP-6.
       01 B-99          USAGE BINARY-LONG.
       01 B-999         USAGE BINARY-LONG.
       PROCEDURE        DIVISION.
           MOVE    0 TO B-99.
           MOVE B-99 TO X-99.
           DISPLAY X-99
           END-DISPLAY.
           MOVE   99 TO B-99.
           MOVE B-99 TO X-99.
           DISPLAY X-99
           END-DISPLAY.
           MOVE    0  TO B-999.
           MOVE B-999 TO X-999.
           DISPLAY X-999
           END-DISPLAY.
           MOVE  123  TO B-999.
           MOVE B-999 TO X-999.
           DISPLAY X-999
           END-DISPLAY.
           MOVE B-999 TO X-99.
           DISPLAY X-99
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_packed.at:678: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:678"
( $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/data_packed.at:678"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:679: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:679"
( $at_check_trace; $COBCRUN_DIRECT ./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
000
123
23
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:679"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1080
#AT_START_1081
at_fn_group_banner 1081 'data_packed.at:690' \
  "COMP-6 arithmetic" "                              " 5
at_xfail=no
(
  $as_echo "1081. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 X-99          PIC 99   USAGE COMP-6.
       01 X-999         PIC 999  USAGE COMP-6.
       01 B-99          USAGE BINARY-LONG UNSIGNED.
       01 B-999         USAGE BINARY-LONG UNSIGNED.
       PROCEDURE        DIVISION.
           MOVE   99  TO B-99
           MOVE B-99  TO X-99
           MOVE  123  TO B-999
           MOVE B-999 TO X-999
           ADD  X-99  X-999 GIVING B-99
           END-ADD
           DISPLAY B-99
           END-DISPLAY
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_packed.at:714: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:714"
( $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/data_packed.at:714"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:715: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:715"
( $at_check_trace; $COBCRUN_DIRECT ./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 "0000000222
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:715"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1081
#AT_START_1082
at_fn_group_banner 1082 'data_packed.at:722' \
  "COMP-6 numeric test" "                            " 5
at_xfail=no
(
  $as_echo "1082. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 G.
          02 X-2         PIC X(2).
          02 N-3         REDEFINES X-2 PIC 999  USAGE COMP-6.
          02 N-4         REDEFINES X-2 PIC 9999 USAGE COMP-6.
       PROCEDURE        DIVISION.
           MOVE X"0000" TO X-2.
           IF N-3  IS NUMERIC
            DISPLAY "OK"
            END-DISPLAY
           ELSE
            DISPLAY "NG"
            END-DISPLAY
           END-IF.
           IF N-4  IS NUMERIC
            DISPLAY "OK"
            END-DISPLAY
           ELSE
            DISPLAY "NG"
            END-DISPLAY
           END-IF.
           MOVE X"000c" TO X-2.
           IF N-3  IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           IF N-4  IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           MOVE X"1234" TO X-2.
           IF N-3  IS NUMERIC
            DISPLAY "OK"
            END-DISPLAY
           ELSE
            DISPLAY "NG"
            END-DISPLAY
           END-IF.
           IF N-4  IS NUMERIC
            DISPLAY "OK"
            END-DISPLAY
           ELSE
            DISPLAY "NG"
            END-DISPLAY
           END-IF.
           MOVE X"ffff" TO X-2.
           IF N-3  IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           IF N-4  IS NUMERIC
            DISPLAY "NG"
            END-DISPLAY
           ELSE
            DISPLAY "OK"
            END-DISPLAY
           END-IF.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_packed.at:798: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_packed.at:798"
( $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/data_packed.at:798"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/data_packed.at:799: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_packed.at:799"
( $at_check_trace; $COBCRUN_DIRECT ./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
OK
OK
OK
OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_packed.at:799"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1082
#AT_START_1083
at_fn_group_banner 1083 'data_pointer.at:21' \
  "POINTER: display" "                               " 5
at_xfail=no
(
  $as_echo "1083. $at_setup_line: testing $at_desc ..."
  $at_traceon



cat >prog.cob <<'_ATEOF'

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 PTR           USAGE POINTER VALUE NULL.
       PROCEDURE        DIVISION.
           DISPLAY PTR
           END-DISPLAY.
           SET PTR UP BY 1
           DISPLAY PTR
           SET PTR DOWN BY 1
           DISPLAY PTR
           END-DISPLAY.
           STOP RUN.
_ATEOF


{ set +x
$as_echo "$at_srcdir/data_pointer.at:41: \$COMPILE prog.cob"
at_fn_check_prepare_dynamic "$COMPILE prog.cob" "data_pointer.at:41"
( $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/data_pointer.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/data_pointer.at:43: test \"\$COB_HAS_64_BIT_POINTER\" = \"yes\""
at_fn_check_prepare_dynamic "test \"$COB_HAS_64_BIT_POINTER\" = \"yes\"" "data_pointer.at:43"
( $at_check_trace; test "$COB_HAS_64_BIT_POINTER" = "yes"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_pointer.at:43"
if $at_failed; then :
  # Previous test "failed" --> 32 bit

{ set +x
$as_echo "$at_srcdir/data_pointer.at:43: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_pointer.at:43"
( $at_check_trace; $COBCRUN_DIRECT ./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 "0x00000000
0x00000001
0x00000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_pointer.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }



else
  # Previous test "passed" --> 64 bit

{ set +x
$as_echo "$at_srcdir/data_pointer.at:43: \$COBCRUN_DIRECT ./prog"
at_fn_check_prepare_dynamic "$COBCRUN_DIRECT ./prog" "data_pointer.at:43"
( $at_check_trace; $COBCRUN_DIRECT ./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 "0x0000000000000000
0x0000000000000001
0x0000000000000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/data_pointer.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

fi
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1083
